今回は「Kaggle」の画像コンペに取り組む方法を紹介したいと思います。筆者は、2017年9月ごろにKaggleを始め、最初はECサイト向けの画像分類に挑戦しました。それ以降、画像コンペを中心に取り組んでいます。大学の専攻はオペレーションズリサーチで画像認識とは無縁でしたが、コンペを通じて知識や知見を得ながら、念願のKaggle Masterになることができました。本稿ではその取り組みを紹介し、少しでもイメージを持ってもらえればと思います。
Kaggleにおける画像コンペとは
Kaggleで行われる画像コンペでは、画像認識の分野においてオーソドックスな分類や検出、セグメンテーションといったタスクが多いです。例えば、「Human Protein Atlas Image Classification」というコンペでは画像に含まれるタンパク質のマルチラベル分類、「Carvana Image Masking Challenge」では自動車画像のセグメンテーションを行うタスクでした。
2019年に入ってから開催されている画像データ関連のコンペは(31件中※)13件あり、Kaggleではいつも何かしらの画像コンペが開催されている印象です。
※「Traveling Santa 2018 - Prime Paths」以降のFeatured、Researchコンペを集計
画像コンペの特徴
1.データサイズ
Kaggleの画像コンペでは数十GB以上のデータサイズになることが多いです。テーブルデータに比べるとデータサイズが大きくなるので、筆者はデータをダウンロードする際には横にコーヒーを準備してディスカッション(交流ページ)やカーネル(公開コード)を読んでいます。
2.計算資源
画像コンペではディープラーニングを用いた手法が基本になるのでGPUは必須だと思います。ここで「どのくらいのGPU性能が必要なのか?」という疑問を抱く方もいるかもしれません。もちろん参加したいコンペのデータサイズにもよりますが、個人的にはNVIDIAの「GeForce GTX 1080Ti」ぐらいのGPUがあれば最低限は戦えると思っています。また2019年3月にブラウザベースの実行環境「Kaggle Kernel」で使えるGPUがNVIDIAの「Tesla K80」から「Tesla P100」へと更新されたので、これを使って挑むこともオススメです。
3.学会ワークショップ主催のコンペ
国際学会のワークショップの一部としてKaggle上でコンペが開催されるケースも増えてきました。学会シーズンと連動するため、毎年6~7月に開催されるコンピュータービジョンの国際会議「Computer Vision and Pattern Recognition(CVPR)」の2~3カ月前には画像コンペが多く催される傾向にあります。
2019年も「Fine-Grained Visual Categorization」と「Landmark Recognition」というワークショップのコンペがKaggleで開催されました。他にもInternational Conference on Computer Vision(ICCV)や European Conference on Computer Vision (ECCV)、Neural Information Processing Systems(NeurIPS)などのワークショップが主催するコンペがこれまで開催されています。画像コンペはテーブルデータコンペに比べて研究色が強いため、画像認識を研究している研究者や学生も取り組みやすいかもしれません。
4.画像コンペの取り組み方の特徴
第8回の記事では「基礎的な部分はチュートリアル用のコンペで学べば、あとはどれだけデータと向き合い、重要な性質を発見して機械学習アルゴリズムに入力できるかが肝となります」と述べられています。データに向き合うことがテーブルコンペだとすれば、ニューラルネットに向き合うことが画像コンペかもしれません。また画像コンペの場合はディープラーニングを使うため、論文調査に充てる時間が多いこともテーブルデータとは違う点として挙げられます。