G検定 ニューラルネットワークと活性化関数 #4

 株式会社リュディアです。G検定対策として G検定 ニューラルネットワーク #3 に続き活性化関数についてまとめていきたいと思います。活性化関数まとめの最後として ReLU についてまとめます。


ReLUについて一言で書くと f(x) = max(0, x) が ReLU です。何を言ってるかというと入力 x が負の値の場合は f(x) = 0、入力 x が 正の値の場合は f(x) = x となります。グラフは以下のようになります。

画像1

活性化関数は各ニューロンが「自分が発火すべきかどうかを判断する関数である」ということは何度か記載しました。実際のニューラルネットワークでは1つのニューラルネットワーク中のすべてのニューロンで同じ活性化関数を使うのではなく、ニューラルネットワークの層単位で適用する活性化関数を変えるのが一般的です。例えば中間層には活性化関数 F を使う、出力層には活性化関数 G を使うといった感じです。

ReLU は「中間層の活性化関数として適用するとよい結果が得られる」という論文があります。興味がある方は Deep Sparse Rectifier Neural Networks から PDFを入手可能です。公式テキストにも書かれているように逆誤差伝搬の際に勾配が小さくなりにくい、という利点があることから理にかなっていることもわかります。また実際、ReLUを使うことで劇的な精度の向上をもたらしたことから有名になったという経緯があります。

最後に出力層で使う活性化関数は中間層で使う活性化関数とは区別する必要があります。公式テキストを注意深く読み込むと、中間層に向いている、出力層に向いている、という記述もあるのですが、最初に読んだときにそこまで意識できるか、というと正直難しいと思います。出力層は「結果」を得るための層なので、たとえば Yes or No が欲しいのか、出現確率が欲しいのか、というレベルでも活性化関数を変更する必要があります。

私どものまとめとしては、活性化関数はあくまでニューロンが発火すかどうかの基準として用いる、ただし活性化関数を利用する層によって、適する活性化関数は変わる、ということになります。これらを意識して再度、テキストを読み直すと「確かに書いてる」となるのですが初めて読んだときは結局どの活性化関数がよいのか?という読み方をしてしまいがちです。注意してください。

では、ごきげんよう。



この記事が気に入ったらサポートをしてみませんか?