ニューラルネットワークによく使われるシグモイド関数。
前回はRで使ってみたが、今回はpythonコードで表してみよう。
まず式はこちら。
f(x) = 1 / (1 + e ^ -x)
pythonコードはこちら。
[py] ####ここから # coding: utf-8 import numpy as np import matplotlib.pylab as mplt def sigmoid(x): return 1 / (1 + np.exp(-x)) #インデントを忘れずに X = np.arange(-5.0, 5.0, 0.1) Y = sigmoid(X) mplt.plot(X, Y) mplt.ylim(0, 1.0) mplt.show() ########### [/py]
上記コードを実行すると、下記の画像が現れる。
こいつを使えば、入力信号が重要であれば大きな値を出力し、
たいして重要でなければ小さな値を出力する。
で、常に0以上1以下の値を出してくれると。
ここら辺がスイッチ変わりに使える関数ってことですなあ。