学習方法1(後ろ向き演算)

バックプロパゲーションにおいて結合荷重を修正していく過程、つまり学習の過程を後ろ向き演算と呼ぶ。まずはFigure 4.1の変数において確認しておく。 $W_{ji}$とは、入力層-中間層の結合荷重、$W_{kj}$は中間層-出力層の結合荷重である。$T_j$は中間層のネット値で、式は式(4.1)で表される。


\begin{displaymath}
T_j = \sum_{i=0}^{n}W_{ji}X_i
\end{displaymath} (9)

$U_k$は出力層のネット値で、中間層と同じようにして求めることができる。 出力層の$i$番目のニューロンの教師信号は$t_i$である。

図 4.1: Backpropagation
\includegraphics[scale=1.0]{backpropagation.eps}

次に学習方法について説明する。ここで、学習するうえで必要な誤差$E$について定義する。定義式を式(4.2)に示す。


\begin{displaymath}
E=\frac{1}{2} \sum _{i=1}^{n} (t_i-O_i)^2
\end{displaymath} (10)

バックプロパゲーションの学習においては、この誤差が小さくなるように結合荷重を修正していく。

まずは、中間層-出力層の結合荷重の学習を見ていく。結合荷重$W_{kj}$に対する誤差の変化を見ればいいので、$E$$W_{kj}$で偏微分すればよい。式を式(4.3)に示す。


$\displaystyle \triangle W_{kj}$ $\textstyle =$ $\displaystyle -\eta \frac{\partial E}{\partial W_{kj}}$  
  $\textstyle =$ $\displaystyle -\eta \frac{\partial E}{\partial O_k} \frac{\partial O_k}{\partial U_k} \frac{\partial U_k}{\partial W_{kj}}$ (11)

$\eta$は学習係数と呼び、一度にどの程度結合荷重を変化させるかを示す。大きすぎると学習が大雑把になり、小さすぎると学習に膨大な回数がかかるようになるため調整が難しい。

まずは、それぞれの微分の計算をする。まず、誤差を出力で微分する式を式(4.4)に示す。


$\displaystyle \frac{\partial E}{\partial O_k}$ $\textstyle =$ $\displaystyle \frac{\partial}{\partial O_k}{\frac{1}{2}(t_k-O_k)^2}$  
  $\textstyle =$ $\displaystyle -(t_k-O_k)$ (12)

次に、出力をネット値で偏微分する式を式(4.5)に示す。


$\displaystyle \frac{\partial O_k}{\partial U_k}$ $\textstyle =$ $\displaystyle \frac{\partial}{\partial U_k}{\frac{1}{1+e^{-U_k}}}$  
  $\textstyle =$ $\displaystyle \frac{e^{-U_k}}{(1+e^{-U_k})^2}$  
  $\textstyle =$ $\displaystyle \frac{1}{1+e^{-U_k}}\left( 1-\frac{1}{1+e^{-U_k}}\right)$  
  $\textstyle =$ $\displaystyle O_k(1-O_k)$ (13)

最後に、ネット値を結合荷重で偏微分する式を式(4.6)に示す。


$\displaystyle \frac{\partial U_k}{\partial W_kj}$ $\textstyle =$ $\displaystyle \frac{\partial}{\partial W_kj}\left( H_1W_{k1}+H_2W_{k2}+...+H_jW_{kj}\right)$  
  $\textstyle =$ $\displaystyle H_j$ (14)

これらの式から、修正量 $\triangle W_{kj}$の式は式(4.7)のようになる。


$\displaystyle \triangle W_{kj}$ $\textstyle =$ $\displaystyle -\eta \frac{\partial E}{\partial W_kj}$  
  $\textstyle =$ $\displaystyle -\eta \frac{\partial E}{\partial O_k} \frac{\partial O_k}{\partial U_k} \frac{\partial U_k}{\partial W_{kj}}$  
  $\textstyle =$ $\displaystyle -\eta \{-(t_k-O_k)O_k(1-O_k)H_j\}$  
  $\textstyle =$ $\displaystyle \eta \delta _k H_j$ (15)

ここで、$\delta _k$は、式(4.15)と定義される。


\begin{displaymath}
\delta _k=(t_k-O_k)O_k(1-O_k)
\end{displaymath} (16)

このようにして、出力層の結合荷重を求める。

Deguchi Lab. 2017年3月6日