Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
atmaCup#5 solutionまとめ
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yamaguchi Takahiro
June 14, 2020
Technology
1.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
atmaCup#5 solutionまとめ
atmaCup#5 の解法サーベイです。
https://www.guruguru.ml/competitions/10
Yamaguchi Takahiro
June 14, 2020
More Decks by Yamaguchi Takahiro
See All by Yamaguchi Takahiro
関西Kaggler会_不確実性最適化ゲーム入門
nyk510
1
1.1k
コンペを気楽に開催しよーぜ!@関西Kaggler会
nyk510
0
1.5k
Django のセキュリティリリースを見る
nyk510
0
140
3分でMLアプリを作る 〜推論コードにちょっとのStreamlitを添えて〜
nyk510
1
1.2k
硬派で真面目なグラフを描く
nyk510
0
580
CORSをちゃんと理解する atmaバックエンド勉強会#4
nyk510
0
470
pythonで気軽にパッケージを作るのは良いという話。
nyk510
14
9.9k
RestAPIのページネーション atma バックエンド勉強会 #3
nyk510
1
1.1k
AWS CPU Credit を完全に理解する
nyk510
0
530
Other Decks in Technology
See All in Technology
Vibe Coding で作ったプロダクトをどう安全に動かすか / How to Safely Run Products Built with Vibe Coding
glidenote
0
460
白金鉱業Meetup Vol.25 アウトカムが二値のデータに対するCausal Impact
brainpadpr
0
270
Von-Neumann Machines, Dreams & The Futures of IT
ufried
0
120
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
180
俺の仕事は AIに奪われないし、たぶんその BIも要らない
hikaruri
0
540
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
5
25k
What the customer really needed
kawaguti
PRO
3
220
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
1
2.6k
AI時代の「技術的負債」の変質ー概念の終焉と再解釈、エージェントと共に向かう先
nwiizo
1
3.1k
LLMに渡さなかった仕事
nanaism
0
1.3k
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
2
1.5k
beyond jj: config & tools ecosystem
indirect
0
5.7k
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
600
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
230
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
700
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
From π to Pie charts
rasagy
1
380
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
360
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Claude Code のすすめ
schroneko
67
230k
Transcript
atmaCup#5 Solutions 2020/06/14 nyk510・atma株式会社
もくじ • はじめに • 上位陣手法まとめ • NeuralNetwork • Gradient Boosted
Decision Tree • その他の話題
はじめに 今回のコンペでdiscussionで共有されたソリュー ションについて紹介していきます。 atmaCup#5ではなんと31人も!!ソリューションを 共有してくださいました ありがとうございま す!! 個別具体的なものを見ていると無限に時間がか かるのでキーワード的に紹介していきたいと思 います。
ソリューションタグで検索を かけると便利です
データの整理 スペクトル観測データ + 観測条件から結合 かどうかを予測する問題 結合しているかどうかの特徴はスペクトルの ピーク部分に現れる. この特徴をうまく捉えら れるかどうかが鍵. positiveデータの数が少ない不均衡データ
Positive (Target==1) Negative (Target=0)
上位陣モデルのまとめ • CV は stratified (or stratified group) • NNは必須
◦ 1~9位(private/publicともに)は全員NNが何かしらで使用されている ◦ 多いのは 1DCNN ついで wavenet / 2d-cnn / transformer • GBDT (多いのは LightGBM )とのアンサンブルが多い. たまに NN 単体。 coupledかどうかの判定は波形のピークとその周辺の情報が必要なため いかにうまく特徴化・NNに認識させられるかが勝負になったと推察
Neural Network (1DCNN) • モデル構造 • 入力データ • Lossの設計 •
Optimizer • その他のモデル・工夫
1DCNNとは 1次元の入力に対して畳み込み(局所的な情報だけを使った情報抽出)を行なう構造を 持ったNetwork。前後関係に意味があるテキスト分類などで使用されることが多い。 今回の波形データではピーク周辺などの情報が大事 → CNNでの情報抽出が有効 参考 1D-CNN & Extract
Feature Vectors https://www.guruguru.ml/competitions/10/discussions /2f89df26-e5ad-4398-a2fe-df22512fa6ec/ kerasを使ったシンプルな1DCNN https://www.guruguru.ml/competitions/10/discussions/b85 f3167-efd6-4411-8baa-8d5ffda51fac/
モデル構造 > 大きい Kernel Size shimishige / amaotone / Moro
/ tereka114 / ほか多数 • 入力に近い層で大きいカーネルサイズを採用 (11, 15 など) • おそらく波形の局所的な特徴よりも、ピークの幅や鋭さの情報を利用することが 大切でそれを組み込むために大きめのカーネルが必要なのではないかと推察
入力データ 生波形をそのまま入れるだけでなく、何らかの加工をしたものを chennel 方向に追加 して利用しているsolutionが多く見られました。 波形情報を再構成して追加 • Denoising Auto Encoder/と残差
(nejumiさん) • Lorentzian Fitting から復元した波形/元との残差 (nyanpさん, e-toppoさん, shimishigeさん) • savitzky-golay filter で平滑化したもの + 微分 (amaotome さん) 正規化 • sample wize normalization (amaotomeさん, yukiさん) • sample wize min-max scaling (e-toppoさn)
入力データ Augmentation データの水増し。画像では回転・反転などが一般的 [note] 上位陣でもやっている人がいたりいなかったりする。効果は限定的? • flip/gaussian noise/shift • manifold
mixup (CVは上がったが LB は向上せず: teraka) • fitting/ground(背景ノイズ)からtarget==1のデータを人工的に作成(HanDog1) という大技も その他 • fittingなどのテーブル情報をマージ (多数)
Lossの設計 Focal Loss (inoichi/ishikei/) Focal Loss for Dense Object Detection:
https://arxiv.org/abs/1708.02002 • 簡単に分類できるデータのロスを小さくする(無視する)ことで分類が難しいデータ をより注意して最適化することが狙いのLoss • 良かった (CVの安定性に寄与) という意見がある (ishikei) 一方であまりワークし ない (upura) という意見も。アーキテクチャ依存? その他 • BCE+RMSE (yCarbon) • target以外の情報を予測するマルチタスクのloss, 学習済みモデルの予測値を soft target として利用 (oct_path)
Optimizer Stochastic Weight Averaging (SWA) Averaging Weights Leads to Wider
Optima and Better Generalization: https://arxiv.org/abs/1803.05407 katsu1110 / copasta 最適化途中の重みを保存してその平均値 を使う手法 • Foldごとに学習が不安定になるのを 防ぐ効果があった (copastaさん)
Optimizer Lookahead Lookahead Optimizer: k steps forward, 1 step back
https://arxiv.org/abs/1907.08610 たまにちょっと前の重みとの算術平均点 に戻るフェーズを加えたoptimizer. NIPS2019. • SWAと同様に学習の安定性に寄与し た (agatanさん)
その他のモデル Wavenet (copasta / lain / takoi / e-toppo 他)
• private 1st/3rd で利用されている • kernel_sizeは 1DCNN と違って 3 程度で十分で大きくしても性能はよくならな い (copast) ◦ [note] 畳み込むノードを離す(=Dilation)処理が入っているので小さくても 十分遠くの情報を使えている? • ためしたがうまく行かなかったとの報告も複数あるため、アーキテクチャ・入力 データになんらかの工夫は必要か
その他のモデル Transformer (inoichi) • 1D-CNNの出力をtransformerでまとめ上げるような構成 2DCNN • 元波形・DAEの再構成・残差の3chennelを入力画像とみなして2DCNN (nejumi_dqx) Bidirectional
LSTM • 1DCNNと組み合わせたInception likeな構造(shimishige)
GBDT (Gradient Boosted Decision Tree) • Overview • 特徴量
GBDT (Gradient Boosted Decision Tree) ご存知勾配ブースティング木。テーブルデータでは鉄板。 NNメインで補助的に使用している人が多い印象。 が、単体でprivate10th (public=0.9122/private=0.8704) のチームもある
(rookzeno)のでやりようによっては単体でも戦える アルゴリズム • LightGBM が一番人気・次に Catboost • LightGBM→Catboostで大幅にスコアが伸びたとの報告あり(yCarbon). データ が少ない分 Catboostのカテゴリ変数の取り扱いが有意に働いている?
GBDT > 特徴量 • tsfresh利用者多数 ◦ たくさん作ってimportanceで絞るパターンが一般的 ◦ あたたかみ特徴量がtsfreshに敗北してなくなった (nino_pira)
• フーリエ変換 (やメルスペクトログラム変換) ◦ fitting param2 より imporatnce が高く出ている (kaerururu) 事例も報告さ れており相当強力か • ピーク周辺の特徴 ◦ peak_near_sum (nyk510 チュートリアルver2) とその亜種 (見る幅を変える など) ◦ ピーク前後の情報をそのまま入れる (takoi)
GBDT > 特徴量 • CNNのembeddingを入れる ◦ DAEの hidden layer (nejumi_dqx)
• その他気になったもの ◦ 生波形のgradientの統計量 (rookzeno) ◦ ピーク点周辺の左右対称性 / セカンドピークの情報 (kurupical) ◦ 数値特徴と光強度値の四則演算 (nasuka) ◦ 効いている特徴量を exec_wl などカテゴリ系カラムでgroupby (kurupical) ◦ lowpass後tsfresh
その他の話題 • CV戦略 • Pseudo Labeling
CV 戦略 不均衡データゆえ悩ましいところが多い部分 多いのは stratified / ついで stratified group /
group はなし • groupはCV/LBの相関が見られなかったため不採用 (amaotone) • discussion で camaro さんが共有してくださったおかげで group stratified も3,4 個 fold間でのスコアのブレが小さくなるようなシードを探る (nyanp) (Foldごとの難易度が揃うように調整しているイメージ?)
Pseudo Labeling 学習したモデルのtestデータへの予測値を擬似的なラベルとみなし、テストデータ+擬 似ラベルを学習データに追加して学習する手法 効果の有無がケースバイケース / ありなし同数程度報告されている • 効果あり ◦
katsu1110/hakubishin3/upura/rookzeno • 効果なし (あっても限定的) ◦ copasta: public上昇には寄与したがprivateでは限定的 ◦ tereka: 最初だけ成功・運用が難しいとのコメント
Pseudo Labeling やり方が微妙に違うので良いやり方があるのかも? 効果があったチームの方法 • 閾値を定めてそれ以上のデータをpositiveとみなす (upura/katsu1110) • 予測ラベルの上位100個・下位3000個をそれぞれpos/negとみなす(rookzeno) 擬似ラベルデータの使い方
• 事前学習に擬似ラベルとテストデータを使う (hakubishin3)
まとめ • 上位入賞の鍵はNNにあったコンペ • 単に1DCNNを使うのではなく入力データや構造に工夫が必要 ◦ large kernel size やフィルタ・残差の追加
• GBDTを使う場合にも波形からの特徴をうまく入れる必要がある ◦ tsfreshは便利