シグモイド関数の微分

Page content

シグモイド関数(Sigmoid function)は f(x)=11+eax(a>0) の形をしている関数です。下の図で表しています。

png

値は(0, 1)の間にあるので、よく確率として使われています。例えば 0.7だったら70%の確率という意味をします。

ニューラルネットワークの中で、シグモイド関数はよくTrue/Falseの判定に使われています。例えば画像が猫なのか、猫じゃないなのかを判断する場合、0.7だったら、猫であると判定します。

このようなニューラルネットワークを実装する際に逆伝播(Back propagation)を実装する必要になります。その中の一部として、シグモイド関数の微分を求めることになります。

スクリーンショット 2018-05-29 17.44.47.png

シグモイド関数の微分は 下の形をしています。これを方程式を使えば、Numpyでかなり簡単に実装できるようなります。

f(x)=11+eax(a>0)f(x)=af(x)(1f(x))

上の方程式を導いてみると

(11+eax)=1(1+eax)2(1+eax)=1(1+eax)2(eax)(ax)=1(1+eax)2(eax)(a)=aeax(1+eax)2= a(1+eax)eax(1+eax)= a(1+eax)1+eax1(1+eax)= af(x)(1f(x))

a=1の時に f(x)=f(x)(1f(x)) になります。

About Wang Zhijun
機械学習好きなプログラマー