next up previous
次へ: 多層パーセプトロンと非線形回帰 上へ: 多層パーセプトロン 戻る: 誤差逆伝搬学習法


最尤推定としての定式化

上記の誤差逆伝搬学習法では、2乗誤差を最小とするような結合荷重を最急降 下法により求めた。ここでは、これを最尤推定の観点から見てみることにする。

今、教師信号 $\mbox{\boldmath$u$}_p$ とネットワークの出力 $\mbox{\boldmath$z$}_p$ との誤差 $\mbox{\boldmath$e$}_p = \mbox{\boldmath$u$}_p - \mbox{\boldmath$z$}_p$ が、互いに独立な正規分布 $N(\mbox{\boldmath$0$},\sigma^2I)$ に従うとする。この時、学習データ集合に対する教師 信号とネットワーク出力の誤差の尤度は、

\begin{displaymath}
L = \prod_{p=1}^P (2\pi\sigma^2)^{\frac{K}{2}} \exp\{-\frac{1}{2\sigma^2}\mbox{\boldmath$e$}_p^T\mbox{\boldmath$e$}\}
\end{displaymath} (81)

となる。従って、その対数(対数尤度)は、
$\displaystyle l$ $\textstyle =$ $\displaystyle -\frac{KP}{2}\log(2\pi\sigma^2)-\frac{1}{2\sigma^2}\sum_{p=1}^P\mbox{\boldmath$e$}_p^T\mbox{\boldmath$e$}_p$  
  $\textstyle =$ $\displaystyle -\frac{KP}{2}\log(2\pi\sigma^2)-\frac{1}{2\sigma^2} \varepsilon^2_{emp}$ (82)

となる。これを最大にすることは、第2項の $\varepsilon^2_{emp}$ を最小 化することと同値になるので、上記の誤差逆伝搬学習法は最急降下法によりネッ トワークのパラメータ(結合荷重)を最尤推定しているとみなすことができる。

次に、ネットワークに対するフィッシャー情報行列を具体的に計算してみる。 ここで対数尤度の微分に関する関係

\begin{displaymath}
0 = \mbox{E}(\frac{\partial l_p}{\partial z_{pk}}) =
\frac{1}{2\sigma^2}\{\mbox{E}(t_{pk}) - z_{pk}\}
\end{displaymath} (83)

を用いて整理するとフィッシャーの情報行列の要素は、
$\displaystyle F_{a_{lm}a_{ij}}$ $\textstyle =$ $\displaystyle -\mbox{E} \{ \frac{\partial^2 l}{\partial a_{lm} \partial a_{ij}} \}$  
  $\textstyle =$ $\displaystyle \frac{1}{\sigma^2}
\{ \sum_{p=1}^P x_{pi} \nu_{pj} \chi_{jm} \nu_{pm} x_{pl} \}$  
$\displaystyle F_{a_{lm}b_{jk}}$ $\textstyle =$ $\displaystyle -\mbox{E} \{ \frac{\partial^2 l}{\partial a_{lm} \partial b_{jk}} \}$  
  $\textstyle =$ $\displaystyle \frac{1}{\sigma^2}
\{ \sum_{p=1}^P y_{pj} b_{km} \nu_{pm} x_{pl} \}$  
$\displaystyle F_{b_{mn}a_{ij}}$ $\textstyle =$ $\displaystyle -\mbox{E} \{ \frac{\partial^2 l}{\partial b_{mn} \partial a_{ij}} \}$  
  $\textstyle =$ $\displaystyle \frac{1}{\sigma^2}
\{ \sum_{p=1}^P y_{pm} b_{nj} \nu_{pj} x_{pi} \}$  
$\displaystyle F_{b_{mn}b_{jk}}$ $\textstyle =$ $\displaystyle -\mbox{E} \{ \frac{\partial^2 l}{\partial b_{mn} \partial b_{jk}} \}$  
  $\textstyle =$ $\displaystyle \left\{
\begin{array}{ll}
\frac{1}{\sigma^2} \{ \sum_{p=1}^P y_{pj} y_{pm} \} & \mbox{if $n=k$} \\
0 & \mbox{otherwise}
\end{array}\right.$  

となる。ただし、
\begin{displaymath}
\chi_{jm} = \sum_{k=1}^K b_{jk} b_{mk}
\end{displaymath} (84)

である。つまり、フィッシャー情報行列の結合荷重 $a_{ij}$ に関する部分は 入力ベクトル $\{\mbox{\boldmath$x$}_p\}$ の重みつき相関、結合荷重 $b_{jk}$ に関する 部分は中間層の出力 $\{\mbox{\boldmath$y$}_p\}$ の相関、結合荷重 $a_{ij}$$b_{jk}$ に関する部分は $\{\mbox{\boldmath$x$}_p\}$ $\{\mbox{\boldmath$y$}_p\}$ の重みつき相 関と関係している。

このフィッシャー情報行列 $F$ を利用してネットワークの結合荷重を学習す るアルゴリズムを構成することができる。今、ネットワークの結合荷重をまと めて $\mbox{\boldmath$\theta$} = (a_{01}, \ldots, a_{IJ}, b_{01}, \ldots, b_{JK})^T$ と書くとする。このとき、結合荷重の修正ベクトル $\delta\mbox{\boldmath$\theta$}$ を フィッシャー情報行列に関する線形方程式

\begin{displaymath}
F \delta \mbox{\boldmath$\theta$} = \nabla l
\end{displaymath} (85)

から求めて、結合荷重を
\begin{displaymath}
\mbox{\boldmath$\theta$} \Leftarrow \mbox{\boldmath$\theta$} + \delta \mbox{\boldmath$\theta$}
\end{displaymath} (86)

のように更新する。ただし、ここで $\nabla l$ は対数尤度 $l$ の結合荷重 に関する勾配を表す。これは最尤推定のためのフィッシャーのスコアリング法 として知られているアルゴリズムをニューラルネットの学習へ応用したもので ある[17,18]。

この学習アルゴリズムではフィッシャーの情報行列を完全な形で用いているが、 大きなネットワークに対してそれを計算するのはかなり大変であり、また、式 (85) の線形方程式を解くのはさらに大変である。そのため、実用 的にはなんらかの方法でこれをさぼる必要がある。また、並列計算機を利用す ることを考えると、各ユニットに関連する局所的な情報のみから学習できるこ とが望ましい。そこで、フィッシャー情報行列のブロック対角線分のみを用い て残りの部分を無視したアルゴリズムを考えてみる[17,18]。 この場合には、中間層の$j$番目のユニットへ入る結合荷重 $\mbox{\boldmath$a$}_j=(a_{0j},\ldots,a_{Ij})^T$ の更新式は、

\begin{displaymath}
\mbox{\boldmath$a$}_j = (X^TW_{\mbox{\boldmath$a$}_j}X)^{-1...
...ldmath$a$}_j}\mbox{\boldmath$\delta$}_{\mbox{\boldmath$a$}_j})
\end{displaymath} (87)

となり、出力層の$k$番目のユニットへ入る結合荷重 $\mbox{\boldmath$b$}_k=(b_{0k},\ldots,b_{Jk})^T$ の更新式は、
\begin{displaymath}
\mbox{\boldmath$b$}_k = (Y^TY)^{-1}Y^T(\mbox{\boldmath$\eta$}_k+\mbox{\boldmath$\delta$}_{\mbox{\boldmath$b$}_k})
\end{displaymath} (88)

となる。ただし、
$\displaystyle X$ $\textstyle =$ $\displaystyle [\mbox{\boldmath$x$}_1,\ldots,\mbox{\boldmath$x$}_P]^T$  
$\displaystyle Y$ $\textstyle =$ $\displaystyle [\mbox{\boldmath$y$}_1,\ldots,\mbox{\boldmath$y$}_P]^T$  
$\displaystyle W_{\mbox{\boldmath$a$}_j}$ $\textstyle =$ $\displaystyle \mbox{diag}(\nu_{pj} \chi_{jj} \nu_{pj})$  
$\displaystyle \mbox{\boldmath$\zeta$}_j$ $\textstyle =$ $\displaystyle (\zeta_{1j},\ldots,\zeta_{Pj})^T$  
$\displaystyle \mbox{\boldmath$\eta$}_k$ $\textstyle =$ $\displaystyle (\eta_{1k},\ldots,\eta_{Pk})^T$  
$\displaystyle \mbox{\boldmath$\delta$}_{\mbox{\boldmath$a$}_j}$ $\textstyle =$ $\displaystyle (\gamma_{1j}\nu_{1j},\ldots,\gamma_{Pj}\nu_{Pj})^T$  
$\displaystyle \mbox{\boldmath$\delta$}_{\mbox{\boldmath$b$}_k}$ $\textstyle =$ $\displaystyle (\delta_{1k},\ldots,\delta_{Pk})^T$  

である。これらは、各ユニット毎にそのユニットに入る結合荷重を重み付き最 小2乗法を繰り返すことにより更新していると解釈できる。


next up previous
次へ: 多層パーセプトロンと非線形回帰 上へ: 多層パーセプトロン 戻る: 誤差逆伝搬学習法
平成14年7月19日