IT is IT.

空想イノベーション

シグモイド関数とtanh関数

ディープニューラルネットワークにおいて、隠れ層を増やすと、誤差逆伝播で勾配消失することがわかっている。
これは、活性化関数であるシグモイド関数の微分の最大値に問題があるためだ。

シグモイド関数の微分の最大値は0.25である。
これにより勾配消失が発生してしまう。
隠れ層における活性化関数を工夫、つまり、任意の実数を非線形に変換することはできる関数であれば、シグモイド関数以外のものを使ってもよく、さらに勾配消失の問題に対処できる、ということになる。
ここで、一つ重要なのが、誤差逆伝播を行ううえで、活性化関数が微分できる必要がある、ということだ。
それ以外の制約は特にない。

スポンサーリンク
 

様々な研究の結果、tanh(ハイパボリックタンジェント)関数が、よい結果が得られることがわかった。
f:id:itry:20190209224420p:plain
シグモイド関数での微分の最大値が0.25であったのに対し、tanh関数の微分の最大値は1である。
このことから、勾配が消失しにくいということがわかる。
しかし、シグモイド関数よりも高い精度が出やすい、というだけで、tanh関数もまた、微分の最大値が1であり、1より小さい数になるケースが大半であるため、深いネットワークでは、やはり勾配消失は防ぎきれない、ということになってしまう。