MachineLearning
Function
NeuralNetwork

ニューラルネット、活性化関数とは?

深層学習ど素人のメモです。


活性化関数


活性化関数とは

・ニューラルネットワークにおいて、線形変換をした後に適用する非線形関数もしくは恒等関数のこと。

・出力層における活性化関数は確率を出力する関数でなければならない。

通常はシグモイド関数またはソフトマックス関数。

・隠れ層における活性化関数は「受け取る値が小さければ小さい値を出力、受ける値が大きければ大きい値を出力する」関数であれば理論上問題ない。

・シグモイド関数を用いることで勾配が消失していまう可能性もある。


順伝播・・・入力層→中間層→出力層に向けて計算。

学習タイプ
活性化関数

分類
ソフトマックス関数

回帰
恒等写像

逆伝播・・・出力層→中間層→入力層に向けて計算。

学習タイプ
活性化関数

分類
 交差エントロピー

回帰
恒等写像


双曲線正接関数 tanh


「シグモイド関数と似た形をしているが、勾配が消失しにくい関数」

graphhyperbolictangentfunctionexample_01_ja_JP.png



ReLU(ランプ関数)


一変数の実関数であり、独立変数とその絶対値の平均として容易に求められる。

"ramp function"の名は、グラフの形状が傾斜路(英: ramp)に似ていることに由来する。

単純だけど最有力。Gradient vanishingも起きない。 softplusと比べてexpやlogを含まない分高速に計算できるので、 膨大で複雑なデータセットに対して多くの層を用いることができる。

 



シグモイド関数

xが大きいときに微分係数が小さくなるため、何層もこの関数を適用するとき、バックプロバゲーションで微分係数を掛けた結果、勾配が消滅(Gradient vanishing)する問題があり、あまり使われないようだ。


参考

https://www.sambaiz.net/article/133/