4層以上のパーセプトロン。
2015/4/15
はじめに実装した3層パーセプトロンを4層以上に対応させる。 隠れ層が増えたときにバックプロパゲーションのδの計算方法がどうなるのか実装がわからないので、というか想像はつくけれどそれでいいのかどうか確かめてみる。
↓ | 出力層 | δ1=y-t |
↓ | 隠れ層2 | δ2=f'(z)Σw3・δ1 |
↓ | 隠れ層1 | δ3=f'(z)Σw2・δ2 これでいいのか? |
プログラム。
ユニット数 NUM[] の定義を変更すれば何層にでも対応できる。ここでは5層(隠れ3層)に設定している。
実行結果。
どうやらこれでいいらしい。隠れ層1,2,3,4はそれぞれ、グレー、水色、緑、オレンジ色の線。
隠れ1層目はシグモイドだが、2層目以降はより複雑な曲線が表現できることが視覚的にわかる。多層化するほど収束(伝播)は遅くなり、かといって学習率ETAを上げると振動しやすい。多層化により認識力が高まるかわりに学習が困難になることが体感できる。