next up previous
Next: NETtalk 系列情報の処理 Up: 階層型のネットワーク 補足 Previous: 中間層の素子数

Pruning

中間層の素子数をネットワークに学習させるという手法も開発されています。最 初は十分な数の素子を用意して、全結合させます。学習中に不要な結合を刈り込 む pruning することを目指すものです。すなわち結合強度 wijが徐々に 0 になるような傾向を持たせて、学習によって結合強度が補強されない限り不必 要な結合が除去されるようにするものです。具体的には wij の更新後に

 \begin{displaymath}w_{ij}^{\mbox{new}} = (1-\epsilon)w_{ij}^{\mbox{old}}
\end{displaymath} (5)

このことはバックプロパゲーションで使われる誤差の 2 乗和 E0wij の 2 乗和を加えた

 \begin{displaymath}E=E_0 + \gamma\frac{1}{2}\sum w_{ij}^2
\end{displaymath} (6)

を新たに誤差関数として誤差逆伝播アルゴリズムによる結合荷重の更新式

\begin{displaymath}\Delta w_{ij}=-\eta\frac{\partial E}{\partial w_{ij}}
\end{displaymath} (7)

を適用するのと定数項を除いて等価です。

(5) は大きな値を持つ wij に対して大きな減衰傾向を持たせているので、 不必要な結合はなるべく早く 0 に近付くように

 \begin{displaymath}w_{ij}^{\mbox{new}} = \Brc{1-\frac{\gamma}{\Brc{1+w_{ij}^2}^2}}w_{ij}^{\mbox{old}}
\end{displaymath} (8)

とする手があります。

Pruning は最適なネットワーク構造を探索するための手段として用いられることがあります。

Pruning 学習手続きのように、最初は全結合を作っておいて、あとで不要なもの を刈り取ることは網膜から外側膝状体への投射、外側膝状体から第一次視覚野の 間でも観測されている事実です。つまり脳内でどのニューロンがどの役割を果た すかが出生直後から決まっているわけではありません。出生後の環境によって柔 軟に対応できるようにするためにはこのほうが有利なのでしょう。

課題 3:
1.
XOR 問題を解く program を改造して、結合荷重の初期値を予め学習済の結合荷 重にセットできるようにしてください。 さらに、中間層ニューロンの一つを絶対反応しないように修正してください。 これは脳損傷のシミュレーションの手法の一つです。 中間層のニューロン数が 4,6,8 個のときに、一つの中間層のニューロンが損傷を受けると 成績はどのようになるか。

2.
上の課題で、損傷を受けるニューロンのうちで成績に影響がでやすいものと出にくいものとがある 違いは何か? このような中間層のニューロンの性格はどのように評価したらよいか考えなさい。

3.
上の課題で 4, 6, 8 個の中間層の中の 1 個の素子が損傷を受けたあとで 再学習が可能かどうかプログラムを実行して誤差の減少の様子をグラフにしなさい。 誤差の減少にパターンが見られるかどうかを検討してください。

4.
pruning alogorithm を実装して XOR 問題を解かせてみなさい。 中間層の数を多くして結果としていくつの結合が消去できるたかを示しなさい。 結果は結合荷重を提出してください。

5.
同様のことを gabor 関数でも試してください。



Shinichi ASAKAWA
1999-11-10