google-site-verification: googlec11dd3c59de6bdc4.html
人工知能はどこまで人間に迫るのか
How close will artificial intelligence get to humans?
深層学習

12)活性化関数(activation function)

活性化関数とは、ニューラルネットワークにおいて入力信号の総和を出力信号に変換する非線形な関数である。かつては単純パーセプトロンの出力層ではステップ関数が用いられ、中間層では正規化機能のあるシグモイド関数(Han & Moraga, 1995)などが用いられた。現在では誤差逆伝播で勾配が消失しやすいという問題点から中間層にはReLU(Rectified Linear Unit)関数(Nair, V. & Hinton, G. E., 2010)が用いられることが多い。勾配消失問題は、勾配(微分)が数値計算上極めて小さくなってしまい、学習が進まなくなってしまうという現象である。誤差逆伝播法では、積の形で勾配を求めていくため、途中の勾配が小さいと入力層付近の勾配は次第に0に近づいていく。
ニューラルネットワークは、分類問題では2値分類ではシグモイド関数、多値問題ではReLU関数、softmax関数(Bouchard, 2007)を用いる。特に出力層ではsoftmax関数は必須であり、下記の式で表される。

exp(x)はe^xを表す指数関数であり、出力数がn個ある場合、k番目の出力y_kを求める計算式を示している。softmax関数の分子は入力信号a_kの指数関数、分母はすべての入力信号の指数関数の和から構成される。softmax関数の出力は0.0から1.0の間の実数になり、出力の総和は1になる。この総和が1になるということは重要なことで、この性質によりsoftmax関数は確率として取り扱えることになる。出力値が最大のものを示したユニットが選択される。図にsoftmax関数を示す。

                 softmax 関数

ニューラルネットワークでは活性化関数に非線形関数を用いる必要がある。もし線形関数を用いると多層の利点を表すことができない。本研究で中間層にReLU関数を用いている。図にReLU関数を示す。ReLU関数を数式で表すと下記のようになる。

ReLU関数を微分するとわかるようにxが0より大きい場合、微分値は常に最大値である1が得られる。すなわち勾配消失しにくいといえる。なお、負の部分はゼロに成っている。

 ReLU function
ReLU関数は既存の活性化関数と比べて劇的に精度の向上があったために様々な派生系も考案された。そのひとつはLeaky ReLU関数(Xu et al.2015)である。

h(x)={█(x (x>0)@0.01x (x≤0) )┤

トップページへ