多層型NNでの文字認識

が、できたよー
中間層の数や、学習係数、安定化定数にはまだまだ検討の余地があるけど、一応完成した。


以下が仕様

  • 5*5のマス目で入力を行う。数字の1を使って文字入力。

こんな感じ(1の場合)
00100
01100
10100
00100
11111

  • 出力は入力文字の2進数表記
  • 以上の条件で学習を行って適当な0〜10までの数字を入力してやると入力文字が何か分かる。


ロバスト性(学習時の入力と全く同一ではなく、ノイズが含む未知入力について)についての検討は行ってないのでわからず。
しかし、実装のアルゴリズムだけ考えると、どうやらロバスト性はなさげ。
収束は割りと早かった。


NNは入出力のインターフェイスさえ工夫してやればいろいろ使えそうで面白いですね。
要は、入力と出力を符号化してやり、BPで学習をしてやれば、割と簡単に多クラス分類にも使えそうです。
この辺りがSVMより使い勝手がよくて、今だに人気がある理由なんでしょうね。


しかし、実装してみて分かったこととして、汎化性能についてはう〜ん、って感じですかね。