#はじめに
機械学習をはじめて1年くらいの初心者ですが、最近Kaggleを使って勉強をしたりしています。
Kaggleはガチなデータサイエンティストも大勢いらっしゃるのですが、
実際やってみて、私のような超初心者や、ちょっとやってみたいな~くらいの軽い気持ちの人が
勉強のとっかかりにするのにもいいんじゃないかと思いました。
この記事はKaggleをやってない人に向けてKaggleはこんなところがいいよ!という記事なので、技術の話は一切触れません。
#私のこと
入社前は大学で生物の研究をしていて自然を満喫?しておりました。
プログラミングを初めてもうすぐ2年、機械学習初めて1年程になります。
今は画像処理の仕事をしているので、この記事も画像中心の考え方になっていると思いますがご了承ください。
Kaggleは今年の夏初めてコンペに参加し、上位20%以内にはなんとか入ったくらいの微妙な腕前です。
#Kaggleとは
Kaggleは企業や研究者がデータを投稿し、世界中の統計家やデータ分析家がその最適モデルを競い合う、予測モデリング及び分析手法関連プラットフォーム及びその運営会社である。
Wikiより引用。ちなみに親会社はGoogle。
Kaggleでは常にいくつかコンペが開催されていて、参加者は好きな課題に挑戦してその腕を競い合います。
日本からのコンペには過去にメルカリ、リクルート、くずし字認識のコンペがありました。
#Kaggleのいいところ
##1. すぐ始められる!
環境構築って面倒くさいですよね。やりたいことがあってもまずそのハードルを越えなきゃと思うと腰が重くなる。。
Kaggleではブラウザ上でPythonとRのカーネルを使うことができます。
Rは使わないのでPythonカーネルしかわかりませんが、機械学習に定番なライブラリはほとんど入っています。
ライブラリを追加したい場合はpipかcondaが使えるようです。
GCPも連携して使えるんですね。今知った。
##2. GPU貸してくれる!
↑の画像でお気づきだと思いますがGPUを貸してくれます。とてもありがたい。
ただし、色々と制限があます。
- 30h / week
- GPU Onにすると CPU 16GB ⇒ 13GB
(Sessionに 9 hours と書かれているのは、カーネルの実行時間の制限らしいです。9時間以上の処理はできません。)
ただ、コンペで上位を狙おうと思うとこの無料分では足らなくなってくるとは思います。。
##3. データ用意しなくていい!アノテーションもしなくていい!
機械学習では通常大量にデータを用意する必要があります。
自分で集めたりタグ付けしたりするの、結構大変です。
かといってVOCやCOCO(論文などでよく使われるアノテーション付きデータセット)は大きすぎて死。。。という時にお借りしました。
(初めてKaggleに登録したときは、データセット目当てでした)
私が初めて使ったのは”Dogs vs. Cats”。犬と猫を分ける、基本的な分類問題です。
既に閉じたコンペですが、過去のコンペのデータも使えますし、後から投稿して自分のスコアを確認することもできます。
##4. 初心者レベルのお題から上級者向けのお題まで!
コンペの分類については他にまとめてくださっている方がたくさんいるので、ここではさらっとだけ。
他にも色々あるみたいですが、今確認した分類には下7分類がありました。
- Featured
- Research
- Recruitment
- Getting started
- Playground
- Masters
- Analytics
この記事は入門者向けなので、入門者がまずやるべきは
-
Getting started
画像だとDigit Recognizer(MNIST)、統計問題だとTitanic といった有名な問題があります。 -
Playground
Getting Startより一歩難しいけど、基本的な問題という感じ。
Dog vs. Cat もここです。たまに賞金付きのコンペがあります。
このあたりでしょうか。初心者におすすめのコンペとかも色々な人がまとめてくださってます。
入門レベルから上級者向けの問題まであって、ステップアップしていけるのも良いところだと思います。
##5. 他の人のコードが見られる!
各コンペでは、自分のカーネルを投稿することできます。
コンペ参加者がこんな風にやったらこのくらいできたよ!と自分のカーネルを投稿してくれています。
これは初心者にはとてもありがたく、他人のコードを読むのはとても勉強になりますし、Forkしてコンペに参加することもできます。
なぜ敵に塩を送るようなことができるの?
よくKaggleを知らない方から聞かれますが、この理由は Kaggle Progression System にあります。
カーネルの評価が良いと、メダルが貰えます。メダルを集めるとKaggle内の称号(?)が上がっていきます。
5つの称号がありますが、例えば最上位の Grandmaster になるにはカーネルだけで金15枚が必要です。
話が脱線しましたが、こういう理由もあり、参加者は自分のカーネルを公開したりディスカッションしたりして、みんなで切磋琢磨できる仕組みになっています。
#おわり
Kaggleを使えば、外側にあるハードル乗り越えてすぐ機械学習はじめられるよ!という話でした。
(Kaggleの回し者ではありません)
この記事を読んで少しでもはじめてみようかな、という気持ちになってくれる方がいましたら幸いです。
勉強目的と言ってますが、あわよくば賞金をいただきたいですね