70
55

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

KaggleAdvent Calendar 2022

Day 1

【Kaggle】コンペの選び方

Last updated at Posted at 2022-11-30

今年、念願のKaggle competition masterになれました!

そこで、masterになるまでの知見、自分流コンペの選び方をご紹介します。

先に結論

私は、以下の項目を調べ、上位に食い込めそう!と感じたら、そのコンペは参加するようにしています。

  • ホストを調べる
  • CVとLBの連動をチェックする
  • 類似コンペを調査する
  • アイデアを練る

コンペ選びが6割

私は初subを決めるまで、かなり時間を要します。これは、コンペをかなり吟味しているためです。自分にとって、コンペ選びは成績の6割を占めると感じていて、かなり重要な要素となっています。(当然、subしながら、コンペを吟味する人もいると思います。)

Kaggleでは、データの分析力も大事ですが、それと同じくらいコンペの良し悪しを見極める目も大事です。例えば、いくら分析力があっても、コンペ設計が崩壊していると、スコアを伸ばせず、「どうしてこんなコンペ選んだだろう・・・」と後悔することがあります。

そこで、本稿では良い成績を残せそうな(自分流)コンペの選び方を書きたいと思います。

基礎編

ホストを調べる

Kaggleでは、ホスト(Kaggle スタッフ含む)に当たり外れがあり、「この人には気を付けろ!」的なホストがいます。

なぜ、ホストに気を付ける必要があるのか?それは、「publicとprivateが乖離している」とか、「そもそも無理ゲー」とか、コンペ設計の段階で破綻しているものがあり、ホストによっては毎回トラブルが発生することがあるからです。

そのため、ホストの開催履歴は調査した方が良いです。

コンペ設計については、arutemaさんのクソコンペオブザイヤー2021を参照されると良い知見が得られます。

CV vs LB

ディスカッションでは、よく「CV vs LB」が話題になっています。これは、色んな理由がありますが、話題になる理由の一つは、CVとpublicLBが連動していると、良コンペである可能性が高いからです。

うまく連動している場合、手元のデータで精度を上げることで、最終的にprivate上位にいける可能性が高くなります。

ところが、CVとpublicLBが連動していないと、手元のデータをいくら分析しても、最終順位に全く影響しない可能性が出てきます。この場合、手元のデータは全く役に立たず、最後は運ゲーになる可能性すらあります。

一例として、BirdCLEF2021とBirdCLEF2022が挙げられます。
image.png

二つのコンペの題材はほぼ同じで、鳥の声を聞いて、どの鳥が鳴いているのか推定するものでした。これらのコンペは運ゲーではなかったのですが、上位にいるGMの数が全然違います(上図参照)。2021では10人、2022では4人。昔のコンペ順位表ほど、GMが増えるのは当たり前ですが、それにしても2倍以上差が開いているのは少し不自然です。

二つのコンペの大きな特徴は、学習データとテストデータで集音環境が違うこと(domain shift)が挙げられます。その上で、2021では、テスト環境の集音データがある程度与えられていました。しかし、2022では与えられず、多くの参加者がvalidation(CV)で苦しんでいました。

結果的に

  • 2021では、CVとLBがよく連動していた
  • 2022では、CVとLBが連動していなかった

となりました。興味深いことに、2022でこんなフィードバックをしている人がいました。

I feel that the num of GM participation this time was slightly lesser. The reason "could" be the lack of validation strategies as compared to BC2021. Their time and investment would be worthwhile with a solid CV strategy. However without that perhaps the effort and results becomes unpredictable. So maybe providing avenues for a good validation strategy is important to attract more seniors.

つまり、良いバリデーション(CV)ができるコンペほど、GM達を惹きつけるということです。
これは、個人的に真理のような気がしています。

まとめると、CVとLBが良く連動しているものは、GM達を惹きつけ、良コンペの可能性が高いです。

類似コンペ(論文)を調査する

Kaggleの歴史も10年を超え、多くの解法が共有されています。そして、もはや定石となっているのが、現行コンペと類似したコンペを調べ、その解法を応用することです。さらに、Kaggleの良いところとして、それらの情報はDiscussionで共有されているため、自分で調べなくてもある程度知ることができます。私の場合、調査した結果、自分には合わないと思ったら、参加していません。

合う合わないは一概には言えませんが、例えば、手法が初見過ぎて分からないとか、得意な領域が違い過ぎるとか、必要な技術力が足りなさ過ぎるとか、色々あります。

アイデアを練る

類似コンペの手法を応用し、公開ノートブックを参考にすれば、通常銀メダルは取れます。ただ、金圏に到達するには、誰も思いつかないようなアイデアが必要です。アイデアは突然降ってくるイメージがありますが、私の経験上、データを見ることでアイデアが降ってきます。そして、データの見方にはコツがあり、私の場合は、以下、3つの視点でデータを見ています。

  • データ対象の視点
    データ対象の視点に立って、データのクセを見抜く方法です。例えば、購買活動を予測するコンペであれば、人間の活動を想像します。また、動物であれば、習性や行動パターンを想像します。

  • データ収集の視点
    これは、データの収集方法のクセを見抜く方法です。State Farm Distracted Driver Detectionはドライバーの画像を見て、ドライバーが危険運転(スマホを見たり、よそ見をしている)をしていないか分類するものでした(下図参照)。学習データの静止画は、一見、独立しているように見えましたが、実は動画から静止画を切り取ったものであり、時間的な関係性を持つものでした。そこで、上位解法では、K近傍法で近い画像群は同じラベルを持っている特性を生かし、スコアを大きく伸ばしました。つまり、学習データは一見「時間的な関係性はない」と考えがちですが、データ集めの容易さを考えると、動画を切り取った方が効率的だし、過不足なくデータを集めることができます。そして、これこそが、データ収集方法のクセでした。
    image.png

画像はこちらから転載

  • ラベル付けの視点
    この視点は、ラベル付け誤差のクセを見抜く方法です。多くのコンペでは、ラベル付けは人の手によって行われます。そのため、ラベルには人間による誤差が含まれています。例えば、鳥コンペでは鳥愛好家が鳥の声を集め、ラベル付けしたデータが提供されました。そして、愛好家には判別できないくらいの、小さな鳥の声はラベルがありませんでした。そのため、「鳴いているのに鳴いていない」鳥の声が多くありました。その視点に立つと、学習データのラベル付け直しが有力になってきます。この6位解法は、人間によるラベル誤差に積極的に向き合った一例です。

実践編

ここからは実践編です。題材として通称、クジラコンペ2を例にします。このコンペは、クジラやイルカの背中(背びれや尾ひれを含む)の画像からidを推定するものでした。

ホストの調査・CVとLBの連動を見る

ホストは前回コンペ(クジラコンペ)を見る限り、波乱もなく良さそうでした。また、CVとLBも連動してそうな感じで、この項目はクリアしました。

Validationを構築する

CVとLBに関係して、このコンペはvalidationをうまく構築するのが一つのポイントでした。このコンペの特徴として

  • 全てのtrain dataには、idが割り振られている
  • test dataには、train dataにはないidがあり、それはnew_individualとして検出する

となっていました。つまり、trainとtestで環境が違いました。そこで、train dataから、あるidを意図的に抜いて、それをnew_individualにすることで、test dataと同じ環境にする方法を思いつきました。

ただ、後に分かったことですが、公開ノートブックもこの方法を採用しており、私じゃなくても、皆思いつくことでした(^^;

いずれにしても、良いValidationが構築でき、CVとLBを連動させることができました。

類似コンペを調査する・アイデアを練る

結論から言うと、類似コンペの調査が十分ではなかったため、上位には食い込めませんでした(他にも要因はあります)。shopeeをメインに調べていましたが、Landmarkコンペに多くのヒントがあったようです。

アイデアとしては、

  • State Farm Distracted Driver Detectionコンペと同じように、動画形式の静止画があり、精度を高められそう
  • 画像から、イルカやクジラの部分を切り出す方法が主流だが、背景(砂漠や氷河が写っている)にもidを特定する手がかりがある

があり、二つ目のアイデアは、上位陣がうまく取り込んでいました。いつか同じようなコンペが開かれ、そしてリベンジしたいです!

まとめ

コンペのチェックポイントは以下4つ。

  • ホストを調べる
  • CVとLBの連動をチェックする
  • 類似コンペを調査する
  • アイデアを練る

「アイデアを練る」は特に大切で、私の場合、多くの時間をここに割いています。アイデアは、文中に示した3つの視点を使って、データを見つめ続けると、ある日突然降ってくることがあります。

70
55
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
70
55

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?