2012-11-10

ニューラルネットの活性化関数 その1

ニューラルネットの活性化関数 (activation function) としては次のようなものがある。
  1. 標準シグモイド関数 (standard sigmoid function):   y = 1 / (1 + exp(-x))   【グラフ】
  2. 双曲線正接関数:   y = tanh(x)   【グラフ】
  3. abs を使った関数:   y = x / (1 + abs(x))   【グラフ】
それぞれの導関数 (derivative) は次のとおり。
  1. y * (1 - y)
  2. 1 - y * y
  3. 1 / pow(1 + abs(x), 2) または pow(1 - abs(y), 2)
上記の活性化関数とその導関数は次の論文から引用した。
A Better Activation Function for Artificial Neural Networks, David Elliott, 1993
http://drum.lib.umd.edu/handle/1903/5355
次のサイトによると、活性化関数の計算の速さは (3) の abs を使った関数の方が (1) の標準シグモイド関数よりも2倍以上速いらしい。
※ 2004年の結果なので、最近の CPU では異なるかも知れない。
Neural Network Code Optimizations
http://sharpneat.sourceforge.net/network_optimization.html
その他、参考にしたサイト。
Backpropagator's Review
http://www.dontveter.com/bpr/activate.html

[追記]

[関連記事]