MLD: Pre-Trained Models

I/O の talk より: Open Source TensorFlow Models.

TensorFlow の人たちが公開している pre-trained なモデルを使って面白いことをしようという話。その中でも CNN の pre-trained model のうち最後のほうのレイヤだけを捨てて自分のデータセットでトレーニングし直すテクニックが面白かった。CS231N の lecture notes に同じ話題を扱った節がある。TensorFlow にもサンプルと解説が入っている。有名な話っぽい。

Goodfellow 本でもちらほら pre-training を議論するものの、それらは大体過去の話として扱われている。特に CNN の章には最近はぜんぶ train するのが主流と書いてある。たぶん state-of-the-art の結果を狙うならそれで正しいのだろうだけれど、金もデータもなく他人の成果にあやかりたい庶民の観点だと pre-trained なモデルを使い回せるならそれに越したことはない。

Transfer Learning, もっと cutting edge で難しい話題なのかと思っていた。でもこの例に限るとなかなかわかりやすいし実用的だね。


TensorFlow にもぽつぽつと pre-trained model はあるものの、この点 Caffe/Caffe2 は Model Zoo というのを保守していてえらい。NN のフレームワークとしては使えるモデルをいっぱい持っている方が良いと思うので TF にも見習って欲しいなあ。モデル欲しさにみんな Caffe 使うようになったらどうすんの。

Google やその他のクラウド業者と違って Facebook は AI を直接売り物にしていない。だから遠慮なくモデルをオープンにできるのかもしれない。戦略的に Caffe のモデルをバンバン公開してマインドシェアを狙う。Open Compute と同じアプローチか。

などと感心していたら、最新の成果たる CNN translation のモデルは Torch ベースだった。邪推してすまぬ・・・他の会社は隣の芝で、なんかすごい戦略を持ってるように見えるのだよ・・・。


それはさておき自分のデータセットでモデルを fine tune できるのだとすると、世間の画像認識 API みたいな切り口はちょっと制限が強すぎる気がする。将来は課金すると追加で training data を登録できるようになると面白いね。