モデルを組んでいるとき,活性化関数がそもそも何なのか,どう使い分けるのか混乱したので,メモ.リンク先が分かりやすい.
そもそも活性化関数とは何なのか
入力と出力という一次関数の間に挟んだ,単純な非線形関数.
ディープニューラルネットワークの特徴.
なぜ必要なのか, 非線形なのか→「複雑」をたくさんの「単純」に分解する〜順伝播は「1次関数」と「単純な非線形」の繰り返し | Think IT(シンクイット)
活性化関数一覧
0. 結論
- 回帰問題における出力層→恒等関数
- 二値分類における出力層→シグモイド関数
- 多クラス分類における出力層→ソフトマックス関数
- DDNにおける中間層→ReLU関数(最新のものにSwish関数,Mish関数)
1. 恒等関数
回帰問題における出力層として用いる.
tensorflowでは,活性化関数を指定しないと恒等関数がデフォで指定される.
2. ステップ関数(階段関数)
かつては単純パーセプトロンの活性化関数として用いられていたが,以下のデメリットにより今は使われていない.
- 0か1しか出力できず,情報の大半が落ちる.
- x≦0において微分値が0となり,誤差逆伝播法によりパラメータの最適化ができない
[活性化関数]ステップ関数(Step function)とは?:AI・機械学習の用語辞典 - @IT
3. シグモイド関数
かつては中間層に用いられていたが,下記のデメリットにより使われなくなった
- 微分の最大値が0.25なので,誤差逆伝播の途中で勾配消失しやすい
また,シグモイド関数は二値分類問題における出力層として広く用いられている.メリット
- 0~1の間の確率値として利用できる.
[活性化関数]シグモイド関数(Sigmoid function)とは?:AI・機械学習の用語辞典 - @IT
4. tanh関数
最近まではシグモイド関数の後継として中間層で用いられていた.
メリット
- 微分の最大値が1なので勾配消失しづらい
デメリット - 入力が極端に大きい,または小さいと,依然として勾配消失する
[活性化関数]tanh関数(Hyperbolic tangent function: 双曲線正接関数)とは?:AI・機械学習の用語辞典 - @IT
5. ReLU関数
現在,中間層に広く用いられている.tanh関数の後継.
メリット
- 正の入力値に対して微分値が常に1なので勾配が消失しない.
- 微分値が定数なので計算量が少なくて済む
デメリット - 負の入力に対しては重みの更新がされない
[活性化関数]ReLU(Rectified Linear Unit)/ランプ関数とは?:AI・機械学習の用語辞典 - @IT
6. Swish関数
ReLUの後継として2017年に登場.まだ一般的ではないが,優れているとされている.
メリット
- 微分がReLUよりも滑らか
[活性化関数]Swish関数(スウィッシュ関数)とは?:AI・機械学習の用語辞典 - @IT
7. Mish関数
2019年,Swishの後継として登場.Swish関数とほとんど同じだが,滑らかさがやや増している.
[活性化関数]Mish関数(ミッシュ関数)とは?:AI・機械学習の用語辞典 - @IT
8. ソフトマックス関数
多クラス分類における出力層として用いられる.
シグモイド関数の一般化であり,複数入力と同じ数の出力を総和が1となるように返す.
[活性化関数]ソフトマックス関数(Softmax function)とは?:AI・機械学習の用語辞典 - @IT