活性化関数

活性化関数

執筆済 AIニューラルネットワーク

層の出力にかける非線形関数。これが無ければ深くする意味がない。

W2(W1x)=(W2W1)x

線形変換をいくら重ねても 1 つの線形変換に潰れてしまう。

主な関数#

関数 特徴
シグモイド 1/(1+ez) 出力が (0,1)勾配消失しやすい
tanh tanhz 出力が (1,1)。ゼロ中心
ReLU max(0,z) 計算が速い。勾配消失しにくい
Leaky ReLU max(0.01z,z) 死んだ ReLU を防ぐ
GELU zΦ(z) Transformer で標準

勾配消失#

シグモイドの導関数は最大 0.25。 連鎖律で層を遡ると

0.2510106

深い層まで勾配が届かない。 これが深層学習が長く困難だった主因のひとつ。

ReLU が変えたこと#

z>0 での導関数が 1。掛け算しても減衰しない。 これにより深いネットワークの学習が現実的になった。

z<0 で勾配が 0 になるので、 一度その領域に入ると更新されなくなる(死んだ ReLU)。 Leaky ReLU や GELU はこれを緩和する。

なお ReLU は z=0微分できないが、 劣勾配として 0 か 1 を使えば実用上問題ない。

参考文献#

ノート一覧を閉じる