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

  • 図2

今度考えるネットワークでは、今までとは異なって出力が複数あります。ニューロンの数がq個あるとします。出力もq個あることになります。j番目のニューロンn_jで表し、その出力をy_jで表すことにします。入力の個数はnであって、出力の個数qとは一般には等しくありません。i番目の入力は今までと同じようにx_iで表します。ニューロンn_jにおけるx_iに対応するシナプス係数をs_{ji}で表します。今までと同じように常にx_0=1とします。

  • u_j=\Bigsum_{i=0}^ns_{ji}x_i・・・・(24)

u_jを定義します。u_jy_jの関係は

  • y_j=f(u_j)・・・・(25)

で表されるとします。ここにf(u)シグモイド関数

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

で定義されます。教師信号も各々のニューロン毎に存在するとし、ニューロンn_jの教師信号をr_jとします。誤差E

  • E=\Bigsum_{j=1}^q(r_j-y_j)^2

で定義することにします。


  • \frac{\partial{E}}{\partial{s}_{ji}}

を考えます。s_{ji}ニューロンn_j内のシナプス係数の1つであり、n_jy_j以外の出力にまったく寄与していないので

  • \frac{\partial{E}}{\partial{s}_{ji}}=\frac{\partial{E}}{\partial{y_j}}\cdot\frac{\partial{y_j}}{\partial{s}_{ji}}・・・・(26)

が成り立ちます。よって

  • \frac{\partial{E}}{\partial{s}_{ji}}=-2(r_j-y_j)\frac{\partial{y_j}}{\partial{s}_{ji}}
  • \frac{\partial{E}}{\partial{s}_{ji}}=-2(r_j-y_j)\frac{dy_j}{du_j}\cdot\frac{\partial{u_j}}{\partial{s}_{ji}}・・・・(27)

ここで「バックプロパゲーションに向けて(2)」の式

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

と式(25)から

  • \frac{dy_j}{du_j}=y_j(1-y_j)・・・・(28)

また、式(24)から

  • \frac{\partial{u_j}}{\partial{s}_{ji}}=x_i・・・・(29)

なので、式(28)(29)を式(27)に入れて

  • \frac{\partial{E}}{\partial{s}_{ji}}=-2(r_j-y_j)y_j(1-y_j)x_i・・・・(30)

バックプロパゲーションに向けて(3)」の式(20)

  • \Delta{s_i}=-\eta\frac{\partial{E}}{\partial{s_i}}・・・・(20)

を今回の場合に拡張して

  • \Delta{s_{ji}}=-\eta\frac{\partial{E}}{\partial{s_{ji}}}・・・・(31)

となりますので、式(31)と(30)から

  • \Delta{s_{ji}}=2\eta(r_j-y_j)y_j(1-y_j)x_i・・・・(32)

となります。


このように1個のニューロンから図2のニューラルネットワークにした場合のバックプロパゲーションの適用はすんなり学習則を導くことが出来ました。