バックプロパゲーション(1)

ここからバックプロパゲーションの検討に入ります。まず、以下のような2層のニューラルネットワークを考察します。

  • 図1

中間層のニューロンp個あり、j番目のニューロンn_{1j}で表します。出力層のニューロンq個あり、k番目のニューロンn_{2k}で表します。ニューロンn_{2k}の入力z_jに対応するシナプス係数をs_{2k}(j)で表すことにします。z_0は常にz_0=1であるとします。ニューロンn_{2k}の入力z_jと出力y_kの関係は

  • y_k=f(u_{2k})・・・・(1)
  • u_{2k}=\Bigsum_{j=0}^ps_{2k}(j)z_j・・・・(2)

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

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

で定義されます。次にニューロンn_{1j}の入力x_iに対応するシナプス係数をs_{1j}(i)で表すことにします。x_0は常にx_0=1であるとします。ニューロンn_{1j}の入力x_iと出力z_jの関係は

  • z_j=f(u_{1j})・・・・(4)
  • u_{1j}=\Bigsum_{i=0}^ns_{1j}(i)z_i・・・・(5)

で表されます。また、出力y_kに対応する教師信号をr_kで表すことにし、出力\vec{y}と教師信号\vec{r}との誤差E

  • E=\Bigsum_{k=1}^q(r_k-y_k)^2・・・・(6)

で定義します。



s_{kj}(i)を1回の学習で変化させる変化分を\Delta{s}_{kj}(i)で表すことにします。バックプロパゲーションの考え方では

  • \Delta{s}_{kj}(i)=-\eta\frac{\partial{E}}{\partial{s}_{kj}(i)}・・・・(7)

\Delta{s}_{kj}(i)を決定することになります。ただし\etaは正の定数です。



まず、\Delta{s}_{2k}(j)を求めるために

  • \frac{\partial{E}}{\partial{s}_{2k}(j)}

を計算します。s_{2k}(j)ニューロンn_{2k}シナプス係数なのでその変化はy_kを変化させますが\vec{y}の他の成分を変化させません。よって

  • \frac{\partial{E}}{\partial{s}_{2k}(j)}=\frac{\partial{E}}{\partial{y_k}}\cdot\frac{\partial{y_k}}{\partial{u}_{2k}}\cdot\frac{\partial{u}_{2k}}{\partial{s}_{2k}(j)}・・・・(8)

ここで式(6)から

  • \frac{\partial{E}}{\partial{y_k}}=-2(r_k-y_k)

また式(1)から

  • \frac{\partial{y_k}}{\partial{u}_{2k}}=y_k(1-y_k)

また、式(2)から

  • \frac{\partial{u}_{2k}}{\partial{s}_{2k}(j)}=z_j

なので式(8)は

  • \frac{\partial{E}}{\partial{s}_{2k}(j)}=-2(r_k-y_k)y_k(1-y_k)z_j・・・・(9)

となります。式(7)と(9)から

  • \Delta{s}_{2k}(j)=2\eta(r_k-y_k)y_k(1-y_k)z_j・・・・(10)

となります。これで\Delta{s}_{2k}(j)を決定することが出来ました。



次に、\Delta{s}_{1j}(i)を求めていきます。上と同じようにEs_{1j}(i)による偏微分を計算します。今度はs_{1j}(i)ニューロンn_{1i}シナプス係数ですが、n_{1j}の出力であるz_jの変化は、図1を見れば分かるように全てのy_kに変化を与えます。よって偏微分は以下のように変形されます。

  • \frac{\partial{E}}{\partial{s}_{1j}(i)}=\Bigsum_{k=1}^q\left[\frac{\partial{E}}{\partial{y_k}}\cdot\frac{\partial{y_k}}{\partial{u}_{2k}}\cdot\frac{\partial{u}_{2k}}{\partial{s}_{1j}(i)}\right]
  • \frac{\partial{E}}{\partial{s}_{1j}(i)}=-2\Bigsum_{k=1}^q\left[(r_k-y_k)y_k(1-y_k)\frac{\partial{u}_{2k}}{\partial{s}_{1j}(i)}\right]・・・・(11)

ここで

  • \frac{\partial{u}_{2k}}{\partial{s}_{1j}(i)}

ですが、シナプス係数s_{1j}ニューロンn_{1j}シナプス係数であるため、影響を与えるのはz_jであって\vec{z}の他の成分には影響を与えないので

  • \frac{\partial{u}_{2k}}{\partial{s}_{1j}(i)}=\frac{\partial{u}_{2k}}{\partial{z}_j}\cdot\frac{\partial{z}_j}{\partial{s}_{1j}(i)}・・・・(12)

ここで式(2)から

  • \frac{\partial{u}_{2k}}{\partial{z}_j}=s_{2k}(j)・・・・(13)

また

  • \frac{\partial{z}_j}{\partial{s}_{1j}(i)}=\frac{\partial{z}_j}{\partial{u}_{1j}}\cdot\frac{\partial{u}_{1j}}{\partial{s}_{1j}(i)}・・・・(14)

ここで式(4)から

  • \frac{\partial{z}_j}{\partial{u}_{1j}}=z_j(1-z_j)・・・・(15)

また式(5)から

  • \frac{\partial{u}_{1j}}{\partial{s}_{1j}(i)}=x_i・・・・(16)

式(14)(15)(16)から

  • \frac{\partial{z}_j}{\partial{s}_{1j}(i)}=z_j(1-z_j)x_i・・・・(17)

式(12)(13)(17)から

  • \frac{\partial{u}_{2k}}{\partial{s}_{1j}(i)}=s_{2k}(j)z_j(1-z_j)x_i・・・・(18)

式(11)(18)から

  • \frac{\partial{E}}{\partial{s}_{1j}(i)}=-2\Bigsum_{k=1}^q\left[(r_k-y_k)y_k(1-y_k)s_{2k}(j)\right]z_j(1-z_j)x_i・・・・(19)

となります。式(7)(19)から

  • \Delta{s}_{1j}(i)=2\eta\Bigsum_{k=1}^q\left[(r_k-y_k)y_k(1-y_k)s_{2k}(j)\right]z_j(1-z_j)x_i・・・・(20)

となります。これで\Delta{s}_{1j}(i)を決定することが出来ました。


ここで

  • 2(r_k-y_k)y_k(1-y_k)=\delta_{2k}・・・・(21)

とおくと式(9)は

  • \frac{\partial{E}}{\partial{s}_{2k}(j)}=-\delta_{2k}z_j・・・・(22)

となります。また式(19)は

  • \frac{\partial{E}}{\partial{s}_{1j}(i)}=-\Bigsum_{k=1}^q\delta_{2k}s_{2k}(j)\cdot{z}_j(1-z_j)x_i・・・・(23)

となります。さらにここで

  • \delta_{1j}=\Bigsum_{k=1}^q\delta_{2k}s_{2k}(j)\cdot{z}_j(1-z_j)・・・・(24)

とおけば式(23)は

  • \frac{\partial{E}}{\partial{s}_{1j}(i)}=-\delta_{1j}x_i・・・・(25)

となります。式(22)と(25)は同じ形をしています。そして出力層の\delta_{2k}が入力層の\delta_{1j}の計算式の中に入っている点が、バックプロパゲーション(後ろに伝達する)という名前の由来ではないかと思います。