stMind

about Tech, Computer vision and Machine learning

cxxnetでKaggleのプランクトン画像分類に取り組んだ話

www.kaggle.com

最終結果は286th / 1049でした。

f:id:satojkovic:20150318224423p:plain

今回、初めてKaggleのコンペティションに参加しましたが、やってみて思ったことを書き留めておきます。

  • Forumに投稿されているDeep LearningベースのStarter Codeを使うことでそこそこの順位に位置することが出来る
    • エラーが出てビルド出来ないよ!って言ってる人もたくさんいるので、ビルド&実行して結果をSubmit出来るだけでもDeep Learningではない手法よりも上位にいける
    • ただし、Deep Learningの手法同士の競争はむしろそこから
  • 次のアプローチとしてデータ増強(Data Augmentation)をまずはやってみると良さげ
    • 自分がやったのは、画像の上下、左右フリップ
    • 回転もやってみたが、むしろ順位は下がってしまった
    • Kaggle CIFAR-10の話 - デーが参考になった
    • Forumにも同じ話題があるので
  • GPU必須
    • 最初、自分のMacbookProで実行していたけれど、データ増強で学習画像数を増やせば増やすほど時間がかかってやってらんない
    • cxxnetはGPUで実行するオプションがある
    • GPUのマシンとか持ってなければ、AWSのEC2にNVIDIAが用意しているGPUインスタンスがあるのでそれを使うと良い
    • 1日以上かかっていたのが、1、2時間で学習できるようになった

とかやってたら、Yosemiteをアップデートしたタイミングで、起動しなくなるというトラブルに見まわれ、 復旧に時間がかかってこれ以上は出来ませんでした(若干言い訳)。

一応Starter Codeの素の状態で1.382285ということなんで、0.3くらいのスコア改善は出来たかなという感じです。

参考資料

今回のコンペティションで1位を取ったチームのまとめエントリーがありました。

benanne.github.io