先日のJigsawコンペの銀メダルが確定して Kaggle Competitions Master になることができました。
twitterではたくさんのいいねとお祝いの言葉をいただき、承認欲求が満たされました。ありがとうございます。
これを目標にずっと頑張ってきたことなので報告的なポエムを書こうと思います。
※以下、competitionsは省略します。
kaggleの戦績は下記です。 運よく最初のコンペで銅メダルが取れて、鳥コンペでもとれたので意外といけるのか?というところから全然メダルが取れなくなり、ここ半年でいい流れのままmasterになったという流れですね。
時系列で振り返る
各々のコンペについては振り返り記事をそのときに描いているのでそちらを参考ください。
2018,2019年
気が付いたらkaggle master を目標にひたすらコンペに出ていたのですが、もともとは2019年頃(2018かも?)から"AI分かる人になりたい"というぼんやりとした目標で勉強をし始めていたみたいです。ただしカメラロールを見ても痕跡が残っていないためほとんど成果は出せていなかったのだと思います。主催してたアナログゲーム会の写真がたくさん出てきました。ちなみにおすすめのゲームは宿命の旅団です。
目標に対してダラダラしている現状を打破するために2020年は1000時間AIに関する勉強をするという具体的な目標をたてました。 1000時間のうちで下記の3つをやることも決めました。
- 3月にG検定
- 6月に統計2級
- kaggle始める
つまり2019年まではほぼ何もしていないです。
2020年
というわけで2020年から気合で勉強をしていく私ですが形から入りたいタイプなのでこの年から京都の北野天満宮さんに初詣に行くようになりました。学問のお守りと絵馬を書きます。こんな神頼みは大学受験依頼です。
まだkaggleの文字はないですね。
この年のことはよく覚えているのですが、1月にpythonの勉強をして、3月にG検定合格、統計検定2級もCBTで受験し合格、GWはゼロつく1と2、kaggleスタートブックを読んで満を持してkaggleデビューとなりました。
最終的に勉強時間1000時間クリア、kaggle expert(銅×2)で2020年は終わりました。
年末にはkaggleアドベントカレンダーにも参加させてもらいSNSでもkagglerとのつながりが徐々に増えてきました
https://teyoblog.hatenablog.com/entry/2020/12/19/000000
2021年
2021年も北野天満宮に、前年買った学問のお守りを返却して新しいものを購入ということもしました。
基本的には勉強になりそうな本を買って読みつつも基本的にコンペに出ていました。
真面目に取り組んだものだと鳥2(チーム銅)、MLB(ソロ銀)、圧力(チーム銀/ルール違反でLBからは消滅)、LuxAI(ソロ)とそれなりに上位にはいけるようになってきました。
Pytorch Lightning
この年の途中からPytorch Lightning を使うようになりコードが少しきれいになりました。Lightningで対応できない学習方法は本質ではないと割り切るようにしました。
Weights & Biases
Weights & Biases の導入もこの年にしました。実験間の学習曲線の比較につかっています。
2022年
2022年もやはり北野天満宮から始まりました。このときはちょうどpetfinderのチームを組んでいたのでそのコンペの勝利祈願もしてきました。
そのpetfinderで金メダルを獲得し、その後参加したJigsawで銀メダルを獲得しMasterになりました。
今年に入ってとんとん進んだため特筆することはないですが、2021年の圧力コンペやkaggler忘年会の円があってpetfinderのチーム
雑にテーマごとに書く
知ってることが増えた。理解してることが少し増えた
当たり前ですが知ってるものはとても増えました。それに伴い世間の事例もなんとなくわかるものも増えてきました。勉強を始める知人とかの質問にも答えれることが多いかなと実感しています。
理解してることが少し増えたというのは、知ってるけど理解までしてないことが結構多いためこれは今後理解してるものを増やしたいなと思ってます。
距離学習を頑張って理解したことが印象に残ってます。埋め込み表現すらわからなかったので大変でした。
コンペの理解度が深くなった
ソロ銀2枚とった要因はコンペへの理解が深く出来るようになったからかなと思ってます
MLBでは与えられたデータとテストデータの期間から追加データを使ってより直近のデータで学習出来る状態にすることが重要だと思いそれが銀につながったと思ってます。
Jigsawでは公開リーダーボードの性質からcvを信じてBERTモデルを数合わせる戦略にしたのが刺さったと思ってます。
論文サーベイはほとんどしなかった
全く推奨されたものではないですが、英語論文を必死に読んで理解して実装する時間を捻出できないため最新の技術は諦めて過去コンペの解法やdiscussions、公開ノートを読んで取り込めるものは取り込むことを優先していました。
特に参加していたコンペのコードや、atmacupのdiscussionはよく参考にしていました。
避けていたので論文の実装などのスキルは全くありません。
本について
人生で一番本にお金をかけてる時期だと思います。漫画や小説もあまり買わないのでそこら辺込みでも
私の中で特に印象に残っている本はゼロから作るシリーズの1-3とkaggleで勝つ本です。これらの本が土台にあったおかげで新しく学べたことや進めたことが多かったように思います。ここからは改善点になるのですが、他にも評判のいい技術書を買うことは多かったです。買って読むと達成感がありますからね。ただどうやら自分は本を読んで自分の力にする能力があまりないようで、その本読んだ割にはその状態?みたいなことが増えてきました。今後は買うからにはどうするか考えたり、INPUT/OUTPUTのバランスとかを考えていきたいです。
出来ないことを放置してきた
docker,Gitでのバージョン管理,スクリプトで実験,pipelineなどほとんどわからない状態でここまで来てしまいました。コード遺産もあまりないです。pythonの環境はanacondaのbase一個で仮想環境がないです。
今後は出来るようになりたいことを出来るようにすることを優先にコンペに取り組んでいきたいなと思っています。
今後について
あまりこういう事は言うべきではないのですが振り返ると勉強を頑張るぞと決めた2020年の頭から感染症がはやりはじめ、外での活動に制限がされ始めました。これが勉強には追い風になって、もともと旅行が好きな私が長期休暇に引きこもって勉強だけすることが(休みを旅行に割けなくて)もったいなく感じなくなりました。断る飲み会も遊びの予定もなく割とノンストレスに自粛期間を過ごしていました。
ちなみに私はmasterになったあとまさに今感染症の陽性ということで自宅療養しています。ことしはいろいろなことが起きそうです・・・
さて、現状の自分ができることが思ってたkaggle masterのそれとかけ離れています。上にもありますが出来るようになりたいことを出来るようにすることを優先に、kaggleに限らずいろんなコンペに出て学んでいきたいと考えています。
他にも色々我慢してきたので機械学習以外で学びたいことも学んでいけたらいいかなと思ってます。
終わりに
相変わらずの構成力のなさで行きあたりばったりな記事になってしまいました。本当に申し訳ない・・・
twitterなどでこういうこと効きたいとか要望いただいたら追記すると思いますのでご意見お待ちしております。
それではまたどこかのコンペのLBで!