今回は主に「オフラインコンペ」について紹介したいと思います。オフラインコンペとは、Kaggleなどのオンライン上で競い合うコンペとは異なり、会場に足を運んで参加者が顔を合わせながらスコアを競うものです。筆者は、Kaggleで最高位となる「Kaggle Grandmaster」の称号を持っています。オフラインコンペにも幾つか参加しており、直近3つのコンテストでは全て優勝しています。オンライン/オフラインのコンペに取り組む中で、オフライン特有の面白さや勝ち方を紹介できればと思います。
オフラインコンペ特有の面白さ
筆者は普段、Kaggleでオンラインコンペに取り組んでいますが、なぜわざわざ足を運んでオフラインコンペに参加するのでしょうか。そこには、オンラインコンペとは違った楽しさがあるからです。
1.終わった後の参加者同士の交流が盛り上がる
多くのオフラインコンペでは、終わった後にご飯やお酒を楽しみながら参加者同士が交流する時間があります。そこでは、同じ問題を解いた後なので、「あそこ難しかったよね」とか、「ここどう解いた?」というような話がとても盛り上がります。将棋などで言う「感想戦」のようなものですね。私はオフラインコンペが終わった後にできるだけ多くの参加者と解法について話すようにしています。そうすることで、自分では思いつかないような方法や知らないやり方を学ぶきっかけとなり、明日以降の自分の糧になります。もちろん、自分の解法もみんなと共有して、同じように他の参加者の気づきになればなと思っています。
2.コンペに付随して旅行も楽しめる
過去6回のうち東京の開催が多いですが、大阪、韓国、北京にも赴きました。大阪での大会では前日に奈良でシカと戯れ、北京ではパンダを見に行きました。現地のおいしい料理も楽しみました。大阪の串カツ、韓国のダッカルビやキムチ、北京の北京ダックなど、どれもとてもおいしくて、また食べたいものばかりです。観光や食事を堪能しつつ、コンペも楽しめるので、オフラインコンペはコンペ初心者にもおすすめだと思います。
3.結果の速さ
普段Kaggleで取り組むコンペだと、終了まで平均して2~3カ月程度かかります。一方、オフラインコンペだと1~2日で結果が出るので満足感・達成感を素早く感じられます。またKaggleのコンペでよくある、スコアが伸びなくて辛い時間を長く過ごさなくて良いという点も大きいですね。コンペの楽しい部分だけを抜き出したようなイベントだと思います。
オフラインコンペの必勝パターン
3つのオフラインコンペで優勝している筆者ですが、最初から優勝できたわけではありません。もともとKaggleでコンペに参加していたものの、初めて参加したオフラインコンペでは優勝のスコアに遠く及びませんでした。というのも、限られた時間で効率的に実験を回すための準備ができていなかったのです。オフラインコンペに参加して以来、この重要性に気づき、テーブル・画像・テキストについてはある程度ベースとなるコードや型を用意しています。このベースの型に当てはめた実験をすることで、限られた時間でも効率的に実験を進められます。第1回のAtma杯では何千もの特徴を作り出し、ついに優勝できました。後述するKaggle Daysでも既に用意してある画像分類用の実験コードを使って、素早く高精度なモデルを実現できました。
また、このベースのコードに関しては常にアップデートを怠らないのも重要です。例えば、画像分類のコードに関しては直近のKaggleで同様の問題があれば、そのソリューションを全て読み、組み込みたいと思ったものは全て内蔵するようにしています。そうすることで、モデルの部分をあまり改善しなくても高いスコアが出るという自信を持てるようになり、他のデータ特有の部分、他チームと差分を作る部分に注力できます。