こんにちは。
ニューラルネットワークでは活性化関数を設定する必要があるわけなんですが、その活性化関数の種類は知っていてもどんなときにどんなものを使うといいか、なんかそのイメージがぱっとわくものがないかなぁと思って、調べてみました。
○活性化関数の種類
以下に代表的なものを載せます。
- Step function
- Linear function
- softplus function
- sigmoid function
- hard sigmoid
- tanh (hyperbolic function)
- softsign function
- ReLU (Rectified Linear Unit) function
- Leaky ReLU function
- PReLU (Parametrized ReLU) function
- Thresholded ReLU
- Exponential Linear Units(eLU)
- SeLU
- Gumbel-Softmax
- Swish
式を書こうかなぁと思ったのですが、上の関数のほとんど全部が以下のサイトで可視化されていて、すごくわかりやすいのでもうこれでいいやとなりました笑(手抜きw)。
各活性化関数の値と式がでているので、わからなくなったらここに立ち返ればよいかと。
■参考文献
- 【ReLU, PReLU, シグモイド etc...】ニューラルネットでよく使う活性化関数の効果をKerasで調べてみた - プロクラシスト
- [ディープラーニング] 活性化関数 – Tech Memo
- 深層学習と活性化関数
- シンプルなNNで SeLU と eLU と ReLU を見比べてみる - Qiita
- Add example to compare RELU with SELU by zafarali · Pull Request #6990 · fchollet/keras · GitHub
- [1710.05941] Swish: a Self-Gated Activation Function
○Google Play Groundで活性化関数の影響を見る
以下のサイトで、インタラクティブにNeural Networkにおける活性化関数の影響を見ることができます。
活性化関数の影響を見るために、色々活性化関数を変えながら出力結果がどのように変化するかためせて普通におもしろい。
それでは。