atmaCup_5__review-meeting.pdf

 atmaCup_5__review-meeting.pdf

atmaCup#5 振り返り会でお話したコンペ設計の話です。

C4c6c7b4fdf9285bcf12c5caa58c8d53?s=128

Yamaguchi Takahiro

June 14, 2020
Tweet

Transcript

  1. atmaCup#5 Review Meeting 2020/06/14 @atmaCup

  2. Hello! 山口貴大 twitter @nyker_goto atma(アートマ)株式会社 取締役 / DS / ふろんと

    / ばっくえんど / いんふら 京都大学大学院 最適化数理卒 SGDが好き Kaggle Master kaggle.com/nyk510 2
  3. もくじ 1. コンペ設計の話 2. Solutionまとめ 3. LT 3

  4. あらすじ @oyorocoさん・@hattan0523さんの「光の機械学習」ス ラックにいつの間にか招待されていた 面白いデータができたらコンペしたいですね〜と話をして いて面白いデータができた(らしい)ので開催に 4

  5. データのおさらい • 光学装置の実験結果を推定する2値分類 > 発光が共振器にうまくマッチしたものを,機械学習を 使って効率的に探し出すことが今回の問題です. 利用データ • 実験条件座標・レーザー波長など •

    発光スペクトルデータ (観測ごと512次元の数値ベクト ル) 5
  6. コンペ開催に必要な要件 データ • どんなデータを提供すれば面白くかつ意味がある? train/testの分割 • 応用時に使えるモデルが選ばれる切り方? 評価指標とprivate/publicの分割 • 実際の実験に即した評価・分割になっている?

    • 相関が取れている? 6
  7. どんなデータを提供すれば良い? 波形データをどの段階のものを渡すか (元データは1つだけではない) • 発光スペクトルに加工する前の生データ • ピークカットした1次元情報 • … フィッティング情報を与えるかどうか

    • 作るのに時間がかかる。できれば使わないほうが嬉しい 7
  8. どんなデータを提供すれば良い? 各フェーズの波形 (+fitting ありなし)でモデリングをして 予測ができるかどうかのチェック 意外と波形だけでも予測できそうなことがわかり一安心 8

  9. 9 しかし!

  10. 10 @oyorocoさん、 結果を見ているうちに 気がついてしまう

  11. 11 「これ target 間違って ませんかね ?」

  12. 12 これ target 間違ってま せんかね ? 何が間違いかさっぱりわからん ……

  13. [解説] Target間違っている問題 ※アノテーションする作業ではバイアスがかかる (chipごとに数を揃えたい、などなど) • 機械学習で予測された確率のほうがバイアスなく公平 に判断されていて、こちらが正しいと思えるケースが 出現。なお僕には判断不能。 @oyorocoさんに再アノテーションを頼む (開催1週間前)

    (もちろんモデル再作成. ) 性能も安定。一安心。 13
  14. Target間違っている問題 ※アノテーションする作業ではバイアスがかかる (chipごとに数を揃えたい、などなど) • 機械学習で予測された確率のほうがバイアスなく公平 に判断されていて、こちらが正しいと思えるケースが 出現。なお僕には判断不能。 やましたさんに再アノテーションを頼む (開催1週間前) (もちろんモデル再作成.

    ) 性能も安定。一安心。 14 まだおわりません。
  15. まだ終わらない! 飽くなき探求 「面白いデータ」にしたいという思いが強すぎて、 開催前日に新しいデータを作成 & 再々モデリング • ぎりぎり検証が間に合う(当日15:00頃) • 結局このデータを実際に使用しています

    データ準備は計画的に。 15
  16. コンペ開催に必要な要件 データ • どんなデータを提供すれば面白くかつ意味がある? train/testの分割 • 応用時に使えるモデルが選ばれる切り方? 評価指標とprivate/publicの分割 • 相関が取れている?

    16 データ • どんなデータを提供すれば面白くかつ意味がある? train/testの分割 • 応用時に使えるモデルが選ばれる切り方? 評価指標とprivate/publicの分割 • 相関が取れている?
  17. train/testの分割 コンペで終わらせない、実応用を考えた設計をしたい 応用上新しい chip で予測性能が高いモデルがほしい • ChipIDで分割するのがよさ気 • しかし chip

    ID ごとに特性がかなり違う • 適当に選ぶと train/test でどえらい乖離する → 良さそうな組み合わせを手で選んで全部解いて検証 17
  18. コンペ開催に必要な要件 データ • どんなデータを提供すれば面白くかつ意味がある? train/testの分割 • 応用時に使えるモデルが選ばれる切り方? 18 データ •

    どんなデータを提供すれば面白くかつ意味がある? train/testの分割 • 応用時に使えるモデルが選ばれる切り方? 評価指標とprivate/publicの分割 • 実際の実験に即した評価・分割になっている? • 相関が取れている?
  19. Private/Publicの分割 理想… Chip IDで分割, だが流石に乖離が激しい 緩和… 同じchipでの実験を増やした時にスコアが良いモデル が選ばれるようにしたい 実験をしても target

    の割合が一定になるとは限らないので target では分割したくない → Chip IDごとのサンプル数が一定になるような分割を採用 19
  20. Private/Publicの分割 > 相関確認 多様性が出るような構成でモデルをいくつか作成 CV/public/privateの相関を確認 • 特徴量11set (fitting/スペクトル統計量/CNN Embedding/...) •

    RF/XGBoost/LightGBM(seed averaging)/1DCNN • 上記のアンサンブル + XGBoost/LightGBM/Ridgeによる stacking • CV: Group(by chipid)/Stratified/Random 20
  21. 21 こんな感じでモデルの予測値を plot して相関を見ていました。 ちなみに • Random • Chip Stratify

    (chipごとのサンプル数が同数になるよ うな分割) • Target Stratify のうち最もprivate/publicの相関が取れないの は target stratify でした。 意外。 Private Public Public Private ChipId Stratifed Split Random Split
  22. 評価指標の選定 private/publicの相関で言うとloglossが圧倒的に良いが 「できるだけPOSデータを見逃したくない」という応用時 の要望を優先 最終的にPR-AUCを採用。 (1週間と短いので問題自体に集中できるようF1-betaなど 閾値が必要な指標は見送り) 22

  23. まとめ みんなが楽しく課題に集中できて 結果が応用時に使えるような課題設計を考えてい ました。 23

  24. 24 さいごに

  25. 企画中です atmaCup #6

  26. THANKS! Arigato Gozaimashita !! 26