Udacity の Deep Learning 講義 を途中までやって、ははーんこれが CNN ね〜、という気持ちになった。
課題 4 では Tensorflow で CNN に notMNIST を学習させるのだけど、なかなか思ったとおりに精度が上がらない一方、層を増やすたびに重みやバイアスの変数を定義する必要があって試行錯誤するのが面倒だったので、Keras を使ってみたところ、コードを書くのはかなり楽になった。
ごちゃごちゃやっていると正答率 97.6% という数字が出たものの、本当にこれがあってるのかどうか自信がない……というか、数字ばかり見ていて、自分が何やってるのかわからなくなってきたので、インタラクティブに判定を試せる装置を作って遊んでみた。推定のところは、Tensorflow.js を使うと簡単にできる(この記事も参考にした)。ソースは GitHub にある。今見たら Chrome じゃないと縮小がうまくいってなさそうだった……。
https://motemen.github.io/ml-keras-cnn-notmnist/
ほんとは正答率の推移なんかを追ってかなきゃいけないんだろうけど、そのへんの知識はあいまいなまま。
今回は「貧者の GPU」こと Google の Colaboratory にたいへんお世話になった。とりあえずこんなものを作ってるだけじゃ虚無だなということがわかったので、もっと面白いことやりたいな……。