Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
atmaCup_5__review-meeting.pdf
Search
Yamaguchi Takahiro
June 14, 2020
Technology
0
150
atmaCup_5__review-meeting.pdf
atmaCup#5 振り返り会でお話したコンペ設計の話です。
Yamaguchi Takahiro
June 14, 2020
Tweet
Share
More Decks by Yamaguchi Takahiro
See All by Yamaguchi Takahiro
コンペを気楽に開催しよーぜ!@関西Kaggler会
nyk510
0
1.3k
Django のセキュリティリリースを見る
nyk510
0
100
3分でMLアプリを作る 〜推論コードにちょっとのStreamlitを添えて〜
nyk510
1
1.1k
硬派で真面目なグラフを描く
nyk510
0
530
CORSをちゃんと理解する atmaバックエンド勉強会#4
nyk510
0
420
pythonで気軽にパッケージを作るのは良いという話。
nyk510
14
9.8k
RestAPIのページネーション atma バックエンド勉強会 #3
nyk510
1
990
AWS CPU Credit を完全に理解する
nyk510
0
470
atmaCup#8 Opening
nyk510
0
280
Other Decks in Technology
See All in Technology
嗚呼、当時の本番環境の状態で AI Agentを再評価したいなぁ...
po3rin
0
400
日々のSlackアラート確認運用をCustom Chat Modesで楽にした話 / 日々のSlackアラート確認運用をCustom Chat Modesで楽にした話
imamotohikaru
0
430
バクラクの AI-BPO を支える AI エージェント 〜とそれを支える Bet AI Guild〜
tomoaki25
2
480
us-east-1 の障害が 起きると なぜ ソワソワするのか
miu_crescent
PRO
2
780
今日から使える AWS Step Functions 小技集 / AWS Step Functions Tips
kinunori
7
650
Flutter DevToolsで発見! 本番アプリのパフォーマンス問題と改善の実践
goto_tsl
1
340
ユーザーストーリー x AI / User Stories x AI
oomatomo
0
170
ソフトウェアエンジニアとデータエンジニアの違い・キャリアチェンジ
mtpooh
1
740
LINE公式アカウントの技術スタックと開発の裏側
lycorptech_jp
PRO
0
350
Rubyist入門: The Way to The Timeless Way of Programming
snoozer05
PRO
3
170
マウントとるやつ、リリースするやつ
otsuki
1
120
Design and implementation of "Markdown to Google Slides" / phpconfuk 2025
k1low
1
390
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Balancing Empowerment & Direction
lara
5
740
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
BBQ
matthewcrist
89
9.9k
GitHub's CSS Performance
jonrohan
1032
470k
KATA
mclloyd
PRO
32
15k
Designing for humans not robots
tammielis
254
26k
Bash Introduction
62gerente
615
210k
Transcript
atmaCup#5 Review Meeting 2020/06/14 @atmaCup
Hello! 山口貴大 twitter @nyker_goto atma(アートマ)株式会社 取締役 / DS / ふろんと
/ ばっくえんど / いんふら 京都大学大学院 最適化数理卒 SGDが好き Kaggle Master kaggle.com/nyk510 2
もくじ 1. コンペ設計の話 2. Solutionまとめ 3. LT 3
あらすじ @oyorocoさん・@hattan0523さんの「光の機械学習」ス ラックにいつの間にか招待されていた 面白いデータができたらコンペしたいですね〜と話をして いて面白いデータができた(らしい)ので開催に 4
データのおさらい • 光学装置の実験結果を推定する2値分類 > 発光が共振器にうまくマッチしたものを,機械学習を 使って効率的に探し出すことが今回の問題です. 利用データ • 実験条件座標・レーザー波長など •
発光スペクトルデータ (観測ごと512次元の数値ベクト ル) 5
コンペ開催に必要な要件 データ • どんなデータを提供すれば面白くかつ意味がある? train/testの分割 • 応用時に使えるモデルが選ばれる切り方? 評価指標とprivate/publicの分割 • 実際の実験に即した評価・分割になっている?
• 相関が取れている? 6
どんなデータを提供すれば良い? 波形データをどの段階のものを渡すか (元データは1つだけではない) • 発光スペクトルに加工する前の生データ • ピークカットした1次元情報 • … フィッティング情報を与えるかどうか
• 作るのに時間がかかる。できれば使わないほうが嬉しい 7
どんなデータを提供すれば良い? 各フェーズの波形 (+fitting ありなし)でモデリングをして 予測ができるかどうかのチェック 意外と波形だけでも予測できそうなことがわかり一安心 8
9 しかし!
10 @oyorocoさん、 結果を見ているうちに 気がついてしまう
11 「これ target 間違って ませんかね ?」
12 これ target 間違ってま せんかね ? 何が間違いかさっぱりわからん ……
[解説] Target間違っている問題 ※アノテーションする作業ではバイアスがかかる (chipごとに数を揃えたい、などなど) • 機械学習で予測された確率のほうがバイアスなく公平 に判断されていて、こちらが正しいと思えるケースが 出現。なお僕には判断不能。 @oyorocoさんに再アノテーションを頼む (開催1週間前)
(もちろんモデル再作成. ) 性能も安定。一安心。 13
Target間違っている問題 ※アノテーションする作業ではバイアスがかかる (chipごとに数を揃えたい、などなど) • 機械学習で予測された確率のほうがバイアスなく公平 に判断されていて、こちらが正しいと思えるケースが 出現。なお僕には判断不能。 やましたさんに再アノテーションを頼む (開催1週間前) (もちろんモデル再作成.
) 性能も安定。一安心。 14 まだおわりません。
まだ終わらない! 飽くなき探求 「面白いデータ」にしたいという思いが強すぎて、 開催前日に新しいデータを作成 & 再々モデリング • ぎりぎり検証が間に合う(当日15:00頃) • 結局このデータを実際に使用しています
データ準備は計画的に。 15
コンペ開催に必要な要件 データ • どんなデータを提供すれば面白くかつ意味がある? train/testの分割 • 応用時に使えるモデルが選ばれる切り方? 評価指標とprivate/publicの分割 • 相関が取れている?
16 データ • どんなデータを提供すれば面白くかつ意味がある? train/testの分割 • 応用時に使えるモデルが選ばれる切り方? 評価指標とprivate/publicの分割 • 相関が取れている?
train/testの分割 コンペで終わらせない、実応用を考えた設計をしたい 応用上新しい chip で予測性能が高いモデルがほしい • ChipIDで分割するのがよさ気 • しかし chip
ID ごとに特性がかなり違う • 適当に選ぶと train/test でどえらい乖離する → 良さそうな組み合わせを手で選んで全部解いて検証 17
コンペ開催に必要な要件 データ • どんなデータを提供すれば面白くかつ意味がある? train/testの分割 • 応用時に使えるモデルが選ばれる切り方? 18 データ •
どんなデータを提供すれば面白くかつ意味がある? train/testの分割 • 応用時に使えるモデルが選ばれる切り方? 評価指標とprivate/publicの分割 • 実際の実験に即した評価・分割になっている? • 相関が取れている?
Private/Publicの分割 理想… Chip IDで分割, だが流石に乖離が激しい 緩和… 同じchipでの実験を増やした時にスコアが良いモデル が選ばれるようにしたい 実験をしても target
の割合が一定になるとは限らないので target では分割したくない → Chip IDごとのサンプル数が一定になるような分割を採用 19
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 こんな感じでモデルの予測値を plot して相関を見ていました。 ちなみに • Random • Chip Stratify
(chipごとのサンプル数が同数になるよ うな分割) • Target Stratify のうち最もprivate/publicの相関が取れないの は target stratify でした。 意外。 Private Public Public Private ChipId Stratifed Split Random Split
評価指標の選定 private/publicの相関で言うとloglossが圧倒的に良いが 「できるだけPOSデータを見逃したくない」という応用時 の要望を優先 最終的にPR-AUCを採用。 (1週間と短いので問題自体に集中できるようF1-betaなど 閾値が必要な指標は見送り) 22
まとめ みんなが楽しく課題に集中できて 結果が応用時に使えるような課題設計を考えてい ました。 23
24 さいごに
企画中です atmaCup #6
THANKS! Arigato Gozaimashita !! 26