next up previous
次へ: 実験 上へ: 情報量基準によるニューラルネットの評価 戻る: AICとMDLP

ニューラルネットの評価

次に、情報量基準を用いて「中間層のニューロン数をいくつにするか」を決定 する方法について考察する。

例として、図4.3のような中間層が1層の階層型ネットワークを用い てパターンを識別する場合を考える。この場合、中間層のニューロンを多くすると 学習データに対する識別率は良くなるが、未知データに対する識別率は必ずしも単調 に良くなるわけではない[14,176]。現在、妥当な一般化能力を持つネット ワークを設計するためには、ネットワークの設計者がその経験と勘をたよりに、試行 錯誤的に中間層のニューロン数を変えて、ネットワークの学習を試みているのが普通 である。これを自動化するためには、中間層のニューロン数をいくつにすべきかに関 するなんらかの目安を与える必要がある。ここでは、そのためにAICあるいはMDLPを 用いる。すなわち、中間層のニューロン数の異なるネットワークの候補をいくつか用 意し、学習データに対して各ネットワークのパラメータ(結合荷重)を前述の学習ア ルゴリズムによって学習し、その結果に基づいて各ネットワークを AIC あるいは MLDPで評価し最良のネットワークを決定する。

今、ネットワークの入力層のニューロン数を $I$、中間層のニューロン数を $J$、出力 層のユニット数を $K$ とする。4.2.2 と 同様に、ネットワークの入出力関係は、

$\displaystyle \zeta_{p}$ $\textstyle =$ $\displaystyle \sum_{i=1}^I a_{ji} x_{i} - a_{j0}$ (255)
$\displaystyle y_{j}$ $\textstyle =$ $\displaystyle f(\zeta_{j}) = \frac{exp(\zeta_{j})}{1 + exp(\zeta_{j})}$ (256)
$\displaystyle \eta_{k}$ $\textstyle =$ $\displaystyle \sum_{j=1}^J b_{kj} y_{j} - b_{k0}$ (257)
$\displaystyle z_{k}$ $\textstyle =$ $\displaystyle f(\eta_{k}) = \frac{exp(\eta_{k})}{1 + exp(\eta_{k})}$ (258)

で表されるものとする。また、教師ベクトルとしては、各クラスを代表するベクトル を取り、クラスに対応する要素は $1$ でそれ以外のようそは $1$$K$ 次元の2 値ベクトルで与えられるものとする。ここで、 $a_{ji}$ は、第 $i$ 番目の入力か ら中間層の第 $j$ 番目のニューロンへの結合荷重であり、$b_{kj}$ は、中間層の第 $j$ 番目のニューロンから出力層の第 $k$ 番目のニューロンへの結合荷重である。 また、$a_{j0}$ および $b_{k0}$ はそれぞれニューロン $j$ および $k$ のしきい 値である。以下では、これらのパラメータをまとめて$\theta$と書くことにする。

このネットワークは、$IJ+JK$ 個の重みと $J+K$ 個のしきい値によって完全に記述 できるので、このネットワークの自由度は $IJ+JK+J+K$ である。

今、第$p$番目の学習データの入力ベクトルを $\mbox{\boldmath$x$}_p$、その入力に対する望みの 出力ベクトル(教師ベクトル)を $\mbox{\boldmath$t$}_p$、ネットワークに入力 $\mbox{\boldmath$x$}_p$を入力 した時の出力ベクトルを $\mbox{\boldmath$z$}_p$と書くことにする。このとき、4.2.2 で 示したように出力の各要素の条件付き独立性を仮定すると、互に独立な $P$ 個の学 習データに対して、望みの出力 $\{\mbox{\boldmath$t$}_p\vert p=1,\ldots,P\}$ が得られるもっとも らしさ(尤度)は、

\begin{eqnarray*}
L &=& \prod_{p=1}^P \prod_{k=1}^K z_{pk}^{t_{pk}} (1 - z_{pk}...
...)]}
{\prod_{p=1}^P \prod_{k=1}^K \{1+\mbox{exp}(-\eta_{pk})\}}
\end{eqnarray*}



となる。尤度 $L$ を最大とするパラメータ $\hat{\theta}$ が最尤推定値である。 式(4.61)の対数を取ると、対数尤度は、
\begin{displaymath}
l = -\sum_{p=1}^P \sum_{k=1}^K \eta_{pk}(1-t_{pk})
-\sum_{p=1}^P \sum_{k=1}^K \log(1+\mbox{exp}(-\eta_{pk}))
\end{displaymath} (259)

となる。

前述の学習アルゴリズムは尤度を最大とする学習アルゴリズムであるが、無限回の繰 り返しを行うことは難しく、また、局所最適解に陥ることもあり、推定されたネット ワークのパラメータ $\theta$ は最尤推定値 $\hat{\theta}$ に収束しないことも ある。ここでは、学習が十分に進んだネットワークのパラメータ $\tilde{\theta}$を 用いて AIC あるいは MDL を計算することにする。

考えているネットワークの自由度は $IJ+JK+J+K$ であるから、AIC および MDL の値 は、それぞれ、

$\displaystyle AIC$ $\textstyle =$ $\displaystyle -2\tilde{l} + 2(IJ+JK+H+K)$ (260)
$\displaystyle MDL$ $\textstyle =$ $\displaystyle -\tilde{l} + \frac{1}{2} (IJ+JK+H+K)\log(P)$ (261)

で与えられる。ただし、$\tilde{l}$ は、十分に学習が進んだネットワークのパラメー タを用いて計算した対数尤度である。

以上をまとめると、中間層が1層のネットワークの中間層のニューロン数を決定する ための手続きは、次のようになる。

中間層のニューロン数を決定するための手順

  1. 中間層のニューロン数の異なるいくつかのネットワークを用意し、各ネットワー クを十分学習させる。
  2. 各ネットワークの学習後のパラメータを用いて、AIC あるいはMDLを近似的に計算する。

  3. 最も小さいAICあるいはMDLを与えるネットワークを最良 のものと判定する。

以上はパターン認識のためのニューラルネットの中間層のニューロンの個数を決 定するために情報量基準をもちいる手法についてであるが、連続関数を近似する ネットワークの中間層のニューロン数の決定や何層のネットワーク にすべきかあるいはもっと複雑な構造をもつネットワークの候補の中から最良の ネットワークを選ぶ場合にも、同様に情報量基準を計算することによって 評価できるであろう。

最後に、ここでは、情報量基準として特に有名な AIC と MDL の2つの基準を用いる 手法について述べたが、これらふたつの基準の違いについて簡単に触れておく。 式(4.62)と式(4.63)を比べると明らかなように、$log(P)>2$、つまり、 $P > 8$の場合には、MDL の方が AIC よりも第2項の効果が大きくなる。 通常、学習に用いるデータの個数は、$8$ よりもかなり大きいので、 MDL は AIC に比べパラメータ数の多いモデルに対してより大きなペナルティを与え ることになる。従って、MDL は AIC よりも少ないパラメータ数のモデルを好む 基準であるといえる。


next up previous
次へ: 実験 上へ: 情報量基準によるニューラルネットの評価 戻る: AICとMDLP
Takio Kurita 平成14年7月3日