CC56

CC56: 567収束までに達成したい56リスト

Day-73 ツイートコンペで敗北した38の理由

ツイートコンペの敗因をまとめました。 全部で38個あります。

ほとんど原因しか書いていませんが、対策がほぼ自明なので書く必要もないと思っています。

内容が被っている部分や矛盾している部分もありますが、微妙にニュアンスが違ったりするので、両方残しておきます。

  1. 締切前日までちゃんとしたルールを把握しておらず、ネガポジ判定みたいなデータだと勘違いしていた
  2. Notebookを2種類しか参考にしなかった
  3. スコアの高いやつを適当にCopyすればいいやといった雑さがあった
  4. 締切前日までちゃんとデータを見ずに突っ込んでしまった
  5. EDAをちゃんとやってなかったのでデータの傾向が分かっていなかった
  6. データが英語なのでそもそもデータの気持ちを理解できなかった(これはチームを組む以外に解決方法が無かった気がする)
  7. 学習データ/テストデータを根拠を持ってクリーンナップするべきだった
  8. Discussionをそもそも見ていなかった
  9. Notebookの計算資源が思ったより少なかった(言語処理+PyTorchという組み合わせで、経験が足りず見積もりができなかった → 実践を積む)
  10. 30h/weekだと足りない → 根本的に長期的に戦う必要があった
  11. 必要に応じてTPUを使うこともアリだったかもしれない(長期戦になりそうなら、切り替えられるコードを作っておく)
  12. どのタイミングで30時間がリセットされるのか知らなかった → おそらく特定のタイミングではなく、その週で使った部分が記録され一週間後にリセットされる
  13. 他の計算資源も検討するべきだった(AWS, GCP, ほか)
  14. パラメータサーチやデバッグなどを高速な環境で試すべきだった(ハイパラサーチはそもそもしてないが)
  15. 本当に困っていたらColaboratoryなども使えるようにしておくべきだった(K80がもう一台あるだけでも心強いレベルの計算資源なので)
  16. 使ってない便利ツールが多い。今度からkaggle(PyPI)を使ってみる
  17. 知っている python モジュールが少ないので、自分のモノとして使えていない。ここぞというときに実装効率が落ちたり実装を諦めたりするので、普段から情報を集めておく必要がある
  18. 自然言語処理のセオリーを理解しないまま突っ込んでしまった
  19. 前処理を元Notebookに任せっぱなし
  20. 後処理も元Notebookに任せっぱなし
  21. PyTorchを書くのが初めてだったので、実装効率が落ちた
  22. デバッグしきれなかった
  23. 序盤はNotebookを写経するなど、迷走して時間を無駄にしていた
  24. PyTorchで実装方法がわからず諦めた部分がある
  25. 強引な実装が3-4箇所あり、どこかで意図していない動作をしている可能性がある
  26. Robertaが何なのかちゃんと調べずに突っ込んでしまった
  27. モデルがいまだに何をしているのか分かっていない
  28. 自分から論文を調べるという行為そのものをしていない
  29. アンサンブルの定石が分かっていない気がする(分かっていない部分が分かっていない)
  30. 適当に学習率を下げれば汎化性能が上がると勘違いしていた(PrivateScoreは下がり続けていた)
  31. 根拠なしに独自の理論を組めば性能が上がると勘違いし、時間を無駄にした(下がった)
  32. パラメータサーチさえしなかった(下がらないかもしれないが、探索している人に対して不利を取る)
  33. モデルの仕様が理解できなかったので実装を諦めた部分がある
  34. 絶対に勝てないと分かっていたのに朝まで続けてしまった(少し体調崩した)
  35. Shakeとかで雑にひっくり返ってワンチャン勝てると勘違いしていた
  36. Leaderboard上位者は必然的にSubmit数が多い。自分は1/10-1/20程度しか投げていない
  37. やりきるなら、最後はkaggleのGPUを並列で回せた。とりあえずやればいいやという怠惰な感情に気づかなかった
  38. ディープラーニングのことしか考えていなかった

負けるべくして負けたという感じ。

今まで支援していただいた方

並びは支援して頂いた順番です。