next up previous
: BP法の逐次修正式 : 階層型ニューラルネットワーク : 階層型ニューラルネットワーク

階層型回路網とBP法

以下は3層の階層型ニューラルネットワークの例を図示したものです。 このニューラルネットワークの第1層(input layer)、第2層(hidden layer)、 第3層(output layer)の素子数はそれぞれ $n, l, m$ 個である。第 $i$ 層の $j$ 番の素子から第 $i+1$$k$ 番の素子への結合係数は $w_{k,j}^{(i+1)}$ で表しています。

このニューラルネットワークは$n$次元空間${\bf R^n}$の元

\begin{displaymath}
{\bf x}=\left(
\begin{array}{c}
x_1 \\
x_2 \\
x_3 \\
\end{array} \right)
\in
{\bf R^n}
\end{displaymath}

から$m$次元空間${\bf R^m}$の元

\begin{displaymath}
{\bf y}=\left(
\begin{array}{c}
y_1 \\
y_2 \\
y_3 \\
\end{array} \right)
\in
{\bf R^m}
\end{displaymath}

を対応させる写像を図示しています。


\begin{picture}(150,180)
\put(0,30){\vector(1,0){15}}
\put(0,60){\vector(1,0){...
...ut(45,-10){\makebox(60,6){Fig.1 \quad Three-layer neural network}}
\end{picture}

 具体的にどう

\begin{displaymath}
{\bf x} \in {\bf R^n} \mapsto {\bf y} \in {\bf R^n}
\end{displaymath}

をどう計算するのか一般の$m$層の階層型ニューラルネットワークで説明します。
図1の丸印○を細胞と呼びます。

$l \quad (l=1,\ldots,m)$に対し,第$l$層は$n_l$個の細胞(図中の○印)を持つものとすると, 第$l$層第$k$細胞の出力$y_k^{(l)}$

\begin{eqnarray*}
y_k^{(l)}
&=& f(\mbox{\boldmath$w$}_k^{(l)}\mbox{\boldmath$y$}^{(l-1)}) \\
&=& f(\sum_{j=1}^{n_{l-1}} w_{kj}^{(l)} y_j^{(l-1)})
\end{eqnarray*}



と定めます。
ここで $\mbox{\boldmath$w$}_k^{(l)}=(w_{k1}^{(l)},\ldots,w_{kn_{l-1}}^{(l)})$は第$l-1$層から第$l$層第$k$細胞への信号の伝播に関する荷重ベクトルとします。$f$は任意に固定された関数です。  以上の計算を入力層から出力層まで繰り返し計算することにより,出力層(第$m$層)の細胞の出力 $\mbox{\boldmath$y$}=\mbox{\boldmath$y$}^{(m)}$を求めることができます。

荷重 $\mbox{\boldmath$w$}$を変化させれば,この階層型ネットワークが望ましい出力を出すように調整できます。

例えば,こうして得られたシステムの出力 $\mbox{\boldmath$y$}$と出力すべき値 $\mbox{\boldmath$z$}$との2乗誤差を $\mbox{\boldmath$E$}$として,すなわち出力信号 $\mbox{\boldmath$y$}$に対し

\begin{eqnarray*}
\mbox{\boldmath$E$}(\mbox{\boldmath$y$})
&=& \frac{1}{2} \Ver...
...m)}\Vert^2 \\
&=& \frac{1}{2} \sum_{i=1}^{n_m}(y_i^{(m)}-z_i)^2
\end{eqnarray*}



で定義して, $\mbox{\boldmath$E$}$ の値が小さくなる方向に荷重 $\mbox{\boldmath$w$}$を変化させる方法があります。

修正には,${\bf E}$が上のネットワークに使われる荷重のベクトル${\bf w}$について2階微分可能ならば,

\begin{eqnarray*}
&&{\bf E}({\bf w_0}+{\bf\Delta w}) = {\bf E}({\bf w_0})
+ \le...
...\Delta w}\vert} \rightarrow 0
({\bf\Delta w} \rightarrow {\bf0})
\end{eqnarray*}



で, $o({\bf\Delta w})$が他の項と比較して十分小さくなるよう, 正数 $\varepsilon > 0$ を十分小さくして,

\begin{displaymath}
{\bf\Delta w}=-\varepsilon \frac{\partial {\bf E}({\bf w_0})}{\partial {\bf w}}\end{displaymath}

として

\begin{displaymath}
{\bf w_1}={\bf w_0}+{\bf\Delta w}
\end{displaymath}

と荷重のベクトル${\bf w}$を更新します。このとき

\begin{eqnarray*}
&&{\bf E}({\bf w_0})={\bf E}({\bf w_0}+{\bf\Delta w}) \\
&& \...
...\right)^T
\frac{\partial {\bf E}({\bf w_0})}{\partial {\bf w}}
\end{eqnarray*}



から

\begin{displaymath}
{\bf E}({\bf w_1}) \le {\bf E}({\bf w_0})
\end{displaymath}

となります。

次節で説明するBP法は,そのような手法の一つで, $\mbox{\boldmath$E$}$について最急降下法を用いて $\mbox{\boldmath$w$}$を変化させるものです。

${\bf R^n}$の有界な領域上の任意の連続関数が,このようなニューラルネットワークによって任意の精度で近似できることも知られています。($K. Funahashi$$K. Hornik$) これについては,後の章で述べます。




next up previous
: BP法の逐次修正式 : 階層型ニューラルネットワーク : 階層型ニューラルネットワーク
Yasunari SHIDAMA