活性化関数
層の出力にかける非線形関数。これが無ければ深くする意味がない。
線形変換をいくら重ねても 1 つの線形変換に潰れてしまう。
主な関数#
| 関数 | 式 | 特徴 |
|---|---|---|
| シグモイド | 出力が 。勾配消失しやすい | |
| tanh | 出力が 。ゼロ中心 | |
| ReLU | 計算が速い。勾配消失しにくい | |
| Leaky ReLU | 死んだ ReLU を防ぐ | |
| GELU | Transformer で標準 |
勾配消失#
シグモイドの導関数は最大 0.25。 連鎖律で層を遡ると
深い層まで勾配が届かない。 これが深層学習が長く困難だった主因のひとつ。
ReLU が変えたこと#
での導関数が 1。掛け算しても減衰しない。 これにより深いネットワークの学習が現実的になった。
で勾配が 0 になるので、 一度その領域に入ると更新されなくなる(死んだ ReLU)。 Leaky ReLU や GELU はこれを緩和する。
なお ReLU は で微分できないが、 劣勾配として 0 か 1 を使えば実用上問題ない。
参考文献#
- Ian Goodfellow, Yoshua Bengio, Aaron Courville. Deep Learning. MIT Press, 2016.(全文公開) https://www.deeplearningbook.org/
- Xavier Glorot, Antoine Bordes, Yoshua Bengio. Deep Sparse Rectifier Neural Networks. AISTATS, 2011. https://proceedings.mlr.press/v15/glorot11a.html
- Dan Hendrycks, Kevin Gimpel. Gaussian Error Linear Units (GELUs). 2016. https://arxiv.org/abs/1606.08415