誤差逆伝播法を書いてみた

ニューラルネットについて、研究室で少し調べてみたら誤差逆伝播法(バックプロパゲーション)というものがあることを知り、テキストのサンプルを見つつ、適当に実装してみた。

処理の流れとしては、

  1. 訓練データをセット
  2. 入力に対する出力を、ニューラルネットを通して求める
  3. 目標値と出力の誤差を求める
  4. 誤差をニューラルネットの出力側から入力側へ伝えつつ、結線の重みを修正
  5. 誤差が十分小さくなるまで繰り返し
という感じです。

https://github.com/crakaC/back_propagation

サンプルだと、訓練データの入力と、誤差逆伝播法による結線重みの修正しかできなかったので、コマンドラインから色々操作出来るように改良した。

主な機能は、

もうちょい付け加えたいこともあったけど今回はもういいや。