Pythonの標準ライブラリだけでニューラルネットワークを実装してみた

最近は自然言語処理をちょいちょい勉強していたけど、機械学習にも手を出し始めてみた。
といってもPRMLを正面からとりくんでいるわけでもなく、使っているのはこの本。
  
 
というわけでこの本を参考に、表題どおりPythonの標準ライブラリだけでニューラルネットワークを実装してみた。
一応学習が終わった段階でREPLを起動して学習したNNを触れるようにIPythonのシェルを立ち上げるようにしておりここだけは標準ライブラリ以外を使ってしまっているけど…NN本体部分については全部標準ライブラリでできた。

例では1桁の2進数の足し算を2-3-2の3層ニューラルネットワークで求めるというのにしてみた。でも実装的には設定をちょこっと変えれば何層でもいけるはず。(計算速度がどうなるかはしらない)
とはいえ単純なバックプロパゲーションなのでこれを多層にしたところで出力層付近しか学習できないんでしょう。(事前学習とかなんとかそういうやつだっけ)