charactersEBSがオンラインで拡張、タイプ変更、IOPSの変更ができるようになりました。サーバーワークスエンジニアブログのニュースを見てから、ディスク拡張の機会に恵まれなかったのですがついに今日その日がやってきました。Volume」メニューからさっくりと実行。Developers.IOの通りgrowpartすれば解決でした。リファクタリングした。第4章をベースにした素朴な実装だったが、第5章を参考にレイヤークラスで処理するようにした。predictに(勝手に)用意していたskip_activate_outputフラグは不要になった。必要な時にlastLayerを呼び出す形に。推論の時は生データ(スコア)でいいのでlastLayerは不要。Sigmoidのまま実装して、rspecが通ることを確認。その後、ReLUに切り替えた。0.9713%ReLUにしただけで認識精度が3%も上がった...!PyCallのバージョンも上がっていたので合わせてアップデート。Learning、1度読んだだけでまだ理解できてない部分もあるが、とても良い本。手書き数字認識ぐらいなら自分でも余裕でできるんじゃね?と思わせてくれる。Learningここまでの理解。16ピクセルの1と2という画像内の数字を認識したい場合。(2クラス分類問題)3層ニューラルネットワークを使うとする。入力層(第0層)は16×16で256個。隠れ層(第1層)は100個、隠れ層(第2層)は50個とか任意で。出力層(第3層)は1か2かなので2個。各ニューロン間の信号には重みが。それぞれの層にはバイアスも。各ニューロンでは活性化関数で入力を変換。訓練データをもとに、バイアスや重みの調整をひたすら繰り返して、いい感じになるものを探す。テストデータでも良い精度が出ればOK(汎化)。過学習ってとても人間っぽい。