ニューラルネットの実装
3層パーセプトロンのいわゆるバックプロパゲーションを実装してみた。
例によって jnlp で作ったサンプルを置いておく。
隠れ層が1000個ある3層ニューラルネットで2次関数の近似
をしてみる。
入力層から隠れ層への活性化関数はいわゆるシグモイド型、隠れ層から
出力層へは線形の活性化関数を用いて、入力値を -10 から 10 までの
一様乱数で2000回 y = 0.1 * x * x の関数を学習係数 0.001 で学習させてみた。
表示されているのは、座標平面の x 座標、y 座標がともに -10 から 10 までの
範囲の領域での学習結果のグラフである。
手動で学習ができるようにテキストボックスから x と y の値をいれて
学習させることができる。最後の学習に用いた値を画面上では青い点で表示
している。
隠れ層の個数を小さくすると、うまく近似できないことはすぐにわかる。
それならばいくつぐらいが適当か?これはよく知りません。
シゴモイド型の関数のパラメータをどのようにするのが最適か?
これも知りません。調べないとね。知っている人いたらアドバイスください。