next up previous contents
Next: 遅れ学習法 Up: 学習 Previous: 教師あり学習   目次

バックプロパゲーション

 まずバックプロバゲーションを理解する為にその基礎となる最急降下法についての説明を行なう。 最急降下法のイメージを図 3.1で示す。

図 3.1: 最急降下法
\includegraphics[scale=0.5]{ENERGY.eps}

説明する上で誤差の関数$E$(ネットワークの出力と教師信号との誤差)と結合荷重$W$(入力層と出力層をつなぐ荷重)を定義しておく。 最急降下法とは誤差の関数$E$が小さくなるように結合荷重$W$を求めるための方法の一つである。 この方法は、関数のある一点の勾配を算出し、誤差$E$が小さくなる方向に結合荷重を変化させる。 最急降下法を使用するためには、勾配を求める、 即ち微分をする必要があるため微分可能で連続である関数を準備しなければならない。 この方法には問題点があり、それが必ず誤差が一番小さくなる$W$の値にならないという事である。 実際は微分を用いるため、極小値(ローカルミニマム)に収束する。

実際にバックプロパゲーションを適応させる場合についての説明を行なう。 いくつかの中間層を持つ階層型のネットワークを考える。 同じ層の素子間に結合はなく、 どの素子も1つ前の層からのみ入力を受け、 次の層へのみ出力を送るものとする。 このようなネットワークの中間層に対して学習則を導くとき、 $\partial E / \partial y_j$ (学習信号)の値は すぐには求めることが出来ない。 そのため、この学習信号を出力層から逆向きに順々に計算していく。 すなわち出力の誤差を前の層へ、前の層へと伝えていく。 学習の評価基準として、次のような誤差関数$E$を定義する。


\begin{displaymath}
E = \frac{1}{2} \sum_{k,c} (y_{k,c} - \hat{y}_{k,c})^2
\end{displaymath} (3.1)

式 3.1での$ \hat{y}_{k,c}$とはある入力$c$に対して出力素子$k$出力がすべき望ましい出力、$y_{k,c}$はそのときの出力を指している。 この誤差を$y_k$について微分をすると


\begin{displaymath}
\frac{\partial E}{\partial y_{k}} = ( y_{k} - \hat{y}_{k})
\end{displaymath} (3.2)

よって、 ある層の素子 $j$ $\partial E / \partial y_j$ の計算は、 次の層の素子 $k$ $\partial E/\partial y_k$ を用いて


\begin{displaymath}
\frac{\partial E}{\partial y_j} = \sum_k \frac{\partial E}
...
...dot \frac{dy_k}{du_k} \cdot \frac{\partial u_k}{\partial y_j}
\end{displaymath} (3.3)

と展開することができる。 また、出力$y_i$と結合荷重$w_{kj}$の積和が入力総和$u_k$であることから

\begin{displaymath}
\frac{\partial u_k}{\partial y_j} = w_{kj}
\end{displaymath} (3.4)

となる。そして、この関係式を 代入すれば式(3.3)は
\begin{displaymath}
\frac{\partial E}{\partial y_j} = \sum_k \frac{\partial E}{\partial y_k} f'(u_k)
w_{kj}
\end{displaymath} (3.5)

となる。 これがバックプロパゲーションのアルゴリズムである。

バックプロパゲーションは、いかなる重みの初期値からでも誤差が極小となる (最小ではない)ことが保証されるわけだが、一般に誤差曲面は 極小値の近くでは非常に緩やかな谷底をもつため、学習は非常に遅くなる。 しかし、学習係数の $\eta$ を大きくすると、学習は振動してしまう。 振動させずに学習を早めるため幾つかの方法が提案されているが、例えば、 誤差曲面の傾きを結合荷重空間の位置でなく速度の変化に用いる。 即ち、

\begin{displaymath}
\Delta w_{ji}(t)=-\eta \frac{\partial E}{\partial w_{ji}} + \alpha \Delta w_
{ji}(t-1)   (0<\alpha<1)
\end{displaymath} (3.6)

という形の加速法がよく使われる。 ここで$\alpha$は安定化定数であり、$t$は学習の回数を表す。 また、重みが最初、すべて0であると、中間層の素子に個性が現れず、 中間層を用いる意味がなくなってしまう。 この対称性を破るために、重みに小さなランダム値を与えることが必要である。

3.2 に バックプロパゲーション法のネットワーク図を示す。 バックプロパゲーションの特徴としては、

図 3.2: バックプロパゲーション
\includegraphics[scale=0.7]{backpropagation.eps}

  1. 入力信号と正確な出力教師信号のセットを次々と与えるだけで、 個々の問題の特徴を抽出する内部構造が、 中間層の隠れニューロン群のシナプス結合として自己組織化される。

  2. 誤差計算が出力方向への情報の流れと類似している。
ということが挙げられる。 すなわち、ある素子の学習に使われている情報は、 後の素子から得られる情報のみであり、学習の局所性が保たれていることになる。 この学習の局所性は、人工的な神経回路型計算機をハードウェア化する時の 学習則に要求される性質である。実際の生体における神経回路においては、 $\partial E / \partial y_j$ といった学習信号が神経軸索を通って逆向きに伝わることはなく、 バックプロパゲーションは実際の脳の学習則の生理学的モデルには なりえないことになる。 実際の脳の多層神経回路において、どのような学習則が用いられているのかは 今だ解明されていない。


next up previous contents
Next: 遅れ学習法 Up: 学習 Previous: 教師あり学習   目次
Deguchi Lab. 2012年3月9日