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
MoAコンペで気づいたこと
Search
fkubota
December 19, 2020
Programming
810
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MoAコンペで気づいたこと
fkubota
December 19, 2020
More Decks by fkubota
See All by fkubota
相対性理論の入門の入門
fkubota
0
130
データドリブンな組織の不正検知
fkubota
0
2.4k
JupyterNotebookでのdebug入門(サンプルは説明欄にあります)
fkubota
6
14k
ルールベース画像処理のススメ
fkubota
17
16k
Kaggle日記について
fkubota
2
2.8k
鳥コンペで惨敗した話とコンペの取り組み方
fkubota
1
7k
クロマベクトルって何?
fkubota
3
2.7k
生産性と戦った僕の1年の記録とツールたち
fkubota
6
6.8k
Other Decks in Programming
See All in Programming
テーブルをDELETEした
yuzneri
0
150
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
960
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
190
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
480
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
180
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
640
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
210
SlackアプリとLambdaの 連携を構築した話
pawn_4_s
1
120
React本体のコードリーディング
high_g_engineer
1
150
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
820
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
160
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
240
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
5.1k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
660
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
870
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
260
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
370
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
500
Mobile First: as difficult as doing things right
swwweet
225
10k
How GitHub (no longer) Works
holman
316
150k
Transcript
MoAコンペで気づいたこと fkubota https://www.kaggle.com/fkubota
さっそくですが モデルの性能をtarget_columnごとで評価したことありますか? 僕はあります。 今回のコンペのmetricを見てみましょう。 これを変形してみます。 https://www.kaggle.com/c/lish-moa/overview/evaluation
row方向 column方向 mのみに依存
各カラム毎にscoreを出力できた!
ターゲットカラム毎に評価はできました。 1つ1つ結果を確認するのもいいですが、 もう少しおもしろいことをしましょう。
1の数(n)を数えてみる 17 18 24 190 301 仮説: nが小さいほど(学習が困難になって)lossが大きいのでは? n =
n vs logloss でプロット nが小さいほどうまく学習ができていない? ---> nが小さいほどloglossは大きくなる? 右のグラフを見る限りそうでもない。 仮説は否定された。なんでこうなるの? あと、右上に単調増加する意味ありげな形
これはなにかあるぞ。。。
そもそも、nが1とかだったら、 モデルに予測させるのではなく、 全部0埋めすればいいのでは? こいつら学習させることで きるんですか?
0で埋めるのが最適かはわからない。 0に近い値で埋めたほうがいいのは確か。 どの程度の一定値で埋めればいい? n=1, 2, 3, 4, 5のときに、様々な一定値で埋めて score_colを計算した。 横軸は、埋めた一定値の値。
縦軸はscore_col の値。 最適な一定値はnによって変わる。
実はこの最適な一定値は解析的に計算できる。 簡単に紹介(自分で計算してみてね)。
score_colを最小とするようなCをC_0とする (記号の雑さ、数学的な厳密性の欠如は今は目を瞑ってください m(_ _)m) これを解くと... 美しい感じの解出た! 直感的!!
求めた解を使って、nごとにプロットしてみる おっ??
いっしょにプロット おおおおおおお!
つまり? 計算したloglossを赤色でプロットした。 見事に一致している部分が多くある。 赤色と重なっている青い部分はこう解釈できる。 「1は予測できないが、たまに1がtargetにある。すべて0 にpredictしてしまうとペナルティが大きくなってしまうの で、ちょうどいい感じの値を出しておこう」 モデルは、1を頑張って予測しようとしているのではな く、ペナルティが最小限になるような値を出力しているに 過ぎないと言える。
赤い線に近い値を取っているカラムは 全く学習していない!!!
シェイクの予感 - ほとんどの参加者は、この事に気づいていない - スコアに大きな影響があるのはnが大きいターゲット - おそらくほとんどのモデルはnが小さいターゲットはほとんど学習で きていない - モデルは、nが小さなターゲットではn(1が何個含まれているか?)し
か見ていない。 - testとtrainでnの数に大きな差があれば性能は極端に落ちる。 nが小さいtargetで性能を出せればシェイクアップはできる!!
コンペ後半は、n<200の部分だけの性能アップに注力 - focal loss - mixup - LabelSmoothing - etc….
mixupが一番効く!!
cool_rabbitさんによる実験 黄色: mixup なし 青色: mixupあり 良くなってる 悪くなってる アンサンブルの時、 このモデルはN<200
の部分だけを使うなどの工 夫をした
シェイクアップ!!!!
None