Swishレイヤー
説明
入力値のSwishによる処理結果を出力します。
SwishはReLUに似た形をもつ関数です。しかしReLUと違い、原点において連続であり単調関数ではありません。Swishは複数の論文において提案されており、ReLUの代わりになる活性化関数を探すために強化学習を用いた探索を行い、その結果としてSwishが一番良い性能を発揮しましたと発表されています。
活性化関数の位置づけ
活性化関数は単純パーセプトンによる線形近似を非線形近似に変換します。
活性化関数の用途は大きくは2つあります。
- 中間層(隠れ層)の表現範囲を広げること
- 出力層の結果を求める答えににあった形式に変換すること
詳しくは以下の記事を参照ください。
数式
はシグモイド関数です。
つまりSwishはo = x × sigmoid(x) です。
参考) シグモイド関数のグラフ
プロパティ
なし
利用用途
Swish関数はReLUの代わりに中間層の活性化関数として用いることで、学習精度の向上する可能性があります。現在中間層で最も多く用いられる関数の一つです。
SwishとReLUの効果比較結果
以下の記事がとても参考になりましたのでリンクを掲載致します。
[https://www.renom.jp/ja/notebooks/tutorial/basic_algorithm/activation_swish/notebook.html]
出力サイズ
入力サイズと同様
サンプル構成
多層パーセプトロン
誤差関数の使い分けについて
中間層
PReLuなどのReLu系の関数を使うのが一般的です。
Sigmoid関数、Tanh関数は勾配消失問題があり、層が深くなると重みの調整が巧くいかなくなります。
出力層
回帰問題の場合
- 恒等関数(=出力層に関数を挟まない)が一般的です。
- 出力値を0~1の範囲に納めたい場合はシグモイド関数も使われる。
分類問題の場合
- 二値分類問題を解く場合はSigmoid関数が使われることが多い。
- 多値分類問題を解く場合はSoftmax関数が使われることが多い。
こちらのサイトが参考になりましたので、リンクを掲載いたします。
https://thinkit.co.jp/article/14103
![]() |
【送料無料】 ソニー開発のNeural Network Console入門 増補改訂・クラウド対応版--数式なし、コーディングなしのディープラーニング / 足立悠 【本】 価格:2,592円 |