活性化関数

活性化関数

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

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

W2(W1x)=(W2W1)x

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

主な関数#

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

勾配消失#

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

0.2510≈10−6

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

ReLU が変えたこと#

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

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

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

参考文献#

ノート一覧を閉じる