バックプロパゲーションに向けて(2)

そこでバックプロパゲーションでは1(u)の代わりにf(u)を使います。f(u)シグモイド関数

  • f(u)=\frac{1}{1+e^{-u}}・・・・(10)

で定義されます。1(u)f(u)の比較を下のグラフに示します。

  • グラフ1

このシグモイド関数は階段関数1(u)に似た形をしていながら、どこでも微分可能、そして

  • \frac{df(u)}{du}>0

なので、s_iをどう変更していけばよいかの情報を得ることが出来るというものです。式(10)からu\rightar-\inftyf(u)\rightar{0}u\rightar\inftyf(u)\rightar{1}u=0f(u)=0.5であることが分かります。また、u-uに置換えたものを\bar{f}(u)とすると

  • \bar{f}(u)=\frac{1}{1+e^u}=\frac{e^{-u}}{e^{-u}+1}=e^{-u}f(u)

つまり

  • \bar{f}(u)=e^{-u}f(u)・・・・(11)

となりますので

  • f(u)+\bar{f}(u)=(1+e^{-u})f(u)=\frac{1+e^{-u}}{1+e^{-u}}

よって

  • f(u)+\bar{f}(u)=1・・・・(12)

このことから、シグモイド関数をY軸で反転させたものと元のシグモイド関数を足すとuの値に関わらず1になることが分かります。ということはシグモイド関数とそれを反転した関数はy=0.5で線対象になっていることになります。ということはシグモイド関数それ自身は点(0, 0.5)で点対象になっていることになります。この点でも1(u)と似ています。


それにしても1(u)にこの程度似た関数ならばほかにもいろいろありそうなのになぜシグモイド関数を使うことにしたのでしょうか? それは、シグモイド関数微分シグモイド関数自身で表すことが出来る、というのが理由のようです。そこで、式(10)をu微分してこのことを確認してみましょう。

  • \frac{df(u)}{du}=\left(-\frac{1}{(1+e^{-u})^2}\right)(-e^{-u})=(-f(u)^2)(-e^{-u})=f(u)^2e^{-u}

よって

  • \frac{df(u)}{du}=f(u)^2e^{-u}・・・・(13)

ここで式(10)から

  • 1+e^{-u}=\frac{1}{f(u)}
  • e^{-u}=\frac{1}{f(u)}-1・・・・(14)

式(13)(14)
から

  • \frac{df(u)}{du}=f(u)^2\left(\frac{1}{f(u)}-1\right)

よって

  • \frac{df(u)}{du}=f(u)(1-f(u))・・・・(15)

と表すことが出来ます。