機械学習の詰め合わせ

機械学習周りで考えたことやインプットしたことをまとめる場所。

1日目: Kaggleをやる動機

はじめに

ブログが続かないので、何かテーマを決めて書き始めることにした。ちょうどKaggle Masterまであと銀メダル1個なので、「3ヶ月あればワンチャンいけるか?」ということで、このブログのタイトルを『100日後にKaggle Masterになるトカゲ』に変更した1

Kaggle Masterになるまでに考えたことやインプットしたことについて言語化する場所としたい。

Kaggleをやる動機

本日のテーマであるKaggleをやる動機について書く。

データコンペを始めたての頃は、「ワンチャン賞金取れたらいいな」という動機が何割かあった。 しかし、最近はメダルや賞金といった外発的な動機とは別に、内発的な動機でやる方が続くのでは?と考えるようになった。メダルや賞金を目標にすると、実現しなかった時に精神的にきついとか、労力に対して割に合わないと感じることが多くなって継続できなくなると感じたからだ。

自分にとってのKaggleをやる内発的動機は以下のようなものだ:

  1. 競合相手もいる中で、自分が「どの程度頑張れる人なのか」を確認するため
  2. 公開ノートブックやディスカッションから刺激を得るため
  3. 問題解決プロセスの訓練の場として利用する

以下それぞれにの項目について説明する。

1. 自分が「どの程度頑張れる人なのか」を確認する

Kaggleをある程度の時間を確保して本気で取り組んだことがある人は経験済みかもしれないが、Kaggleでそれなりの結果を出そうと思うと、作業時間的にも認知リソースの消費的にもかなりハードである。正直、最初の頃は関連資料を調べたり公開ノートブックをいくつか読んだだけでサブミットまでいかなかったり、途中でやめてしまうことがあった。 これではいけないと考え、途中から「とりあえず最後までやり切る」ということを目標に取り組むことにした2。 というわけで、数ヶ月の間モチベーションを維持し、それなりの結果を残せるということは、それだけ「頑張れる人」であると言って良いと思うのでそれを目標にすることにした。

2. 公開ノートブックやディスカッションから刺激を得るため

これは他の多くの人も言っていることなので詳細は書かない。一言で言うと、Kaggleは他のコンペと比較しても群を抜いて集合知の恩恵が得られる場であると感じる。

3. 問題解決プロセスの訓練の場として

これまでに取得した金、銀メダルがなぜとれたかを考えると、次の2点に集約される(と思う)。

  • 競合相手よりも作業に充てられる時間が多かったこと
  • 競合相手よりもインプットの量が多かったこと

まず現在の自分は(幸運なことに)それなりの期間Kaggleにフルタイムで取り組むだけの時間的、金銭的余裕がある。このことは、会社や学業の合間で取り組んでいる競合相手と比べて優位な条件である。さらに、関連手法に関する学術論文やオープンソースのツールのソースコードについてそれなりの時間をかけて読むことができたので、インプットの面で公開ノートブックを少しいじった程度の競合相手と差をつけることができたのだと思う。

ところがこれらの要因はKaggleでさらに上を目指すには十分でないとも感じている。 上記に足りない観点は、Kaggleのタスクが本質的に「試行錯誤による問題解決」を必要とするタスクであることだ。つまり、既知のオーソドックスな手法を網羅的に適用したり、単に時間を多くかけるだけでは十分な競争力を得られないようなものが多いと感じる。

自分はこれまで企業で働いてきた経験を踏まえて考えても、特にこの辺りの成功率に課題を感じているので、Kaggleコンペに取り組むことで、そういった状況における問題解決の訓練をしたいと考えている。

まとめ

この投稿では自分がKaggleのコンペに取り組む動機について言語化した。最初なので少し頑張って書いたが、おそらく毎日この分量でやると続かないので、今後は適宜サボりながら継続していくと思う。

では、Happy Kaggling!


  1. ただし、後述するように100日後きっかりにKaggle Masterになることは本気で目指していない。もし100日後に実現しなかった場合は『N日後に...』とタイトルを変更する。
  2. なお、コンペ終了後にラベルの品質について議論が醸されたコンペだったので順位は参考でしかないが、そのコンペではPrivate LBで9位(ソロ金)の結果を残すことができた。継続が思わぬ結果をもたらすこともある。