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
全国医療AIコンテスト 2021 1st place solution
Search
Yuma Ochi (chizuchizu)
March 27, 2021
0
4.4k
全国医療AIコンテスト 2021 1st place solution
修正、加筆しました
Yuma Ochi (chizuchizu)
March 27, 2021
Tweet
Share
More Decks by Yuma Ochi (chizuchizu)
See All by Yuma Ochi (chizuchizu)
IOAI Solution (NLP, CV) | Team Japan
chizuchizu
0
71
BFが動くCPUを作りたい! @第3回CPUを語る会
chizuchizu
1
260
aranami_idea.pdf
chizuchizu
0
46
DiffType KIH2023
chizuchizu
0
230
週刊タイピングは役に立たない
chizuchizu
0
280
【発表資料】どこやったっけなぁ?
chizuchizu
1
230
アニーリングマシンを使った論理式学習モデルの開発(2021未踏ターゲット事業成果報告会)
chizuchizu
0
1.8k
浅(くて広い)層学習 (Amplifyハッカソン)
chizuchizu
1
630
configのすゝめ
chizuchizu
1
230
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
222
9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
96
How STYLIGHT went responsive
nonsquared
95
5.2k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Statistics for Hackers
jakevdp
796
220k
Designing for Performance
lara
604
68k
Adopting Sorbet at Scale
ufuk
73
9.1k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
For a Future-Friendly Web
brad_frost
175
9.4k
Visualization
eitanlees
146
15k
Become a Pro
speakerdeck
PRO
26
5k
Transcript
全国医療AIコンテスト 1st place solution 2021/03/27 チズチズ abap34 team: 🦾😢
自己紹介 越智優真(チズチズ) • 千葉大学教育学部附属中学校 3年 • Kaggle Expert • 医学素人、機械学習素人
• 最近は量子コンピュータとギターにお熱 • 専攻分野 なんでも
自己紹介 abap34 - 東海高校二年生(春から受験生) - 機械学習に興味, 色々開発(コンペ少し) - 医学素人機械学習素人
モデリングのTips、全体的なアプローチ • Global Average Pooling ◦ 時間軸でたたむ • Multiple Input
◦ 年齢、性別 ◦ concat→Dense • SWA ◦ 重みを平均化(≠局所最適) • SAM ◦ ロバスト性が高まる(≠局所最適) • 多様性を意識 ◦ アンサンブルを想定 ◦ 色々なアーキテクチャ 最終層でage, sexを入力
最終的なアンサンブルに使ったモデル - ResNet的機構を導入したConv1Dモデル(https://arxiv.org/abs/1805.00794v1) - それのoptimizerにSWAを適用したバージョン - それのPseudoLabelingなどを適用したバージョンのモデル - LSTM -
よりResNet的なConv1dモデル - WaveNet
A Deep Transferable Representation Model(?) • ECG分類用に作られたアーキテクチャ • Kaggle Notebookにて発見
• ResNet的なブロックがある • 深さ Is All You Need (Baselineがマッチョになったイメージ) https://arxiv.org/abs/1805.00794v1 + Pseudo Labeling, Label Smoothing(後述)でPrivate 4位相当のスコア
LSTM • 終盤、アンサンブルのため急遽作成 (多様性のあるモデル作りの一貫 ) • あまり詰め切れていない (が、それなりのスコアが出たのでアンサンブルに採用 )
ECG分類のためのコード(ResBlock) • 今回と同じ12誘導心電図を使ったモデル • とてもResNetっぽい • Paper with codeで漁ってたら発見 kernel
size:12 → 5 層の数を数百まで減らしたらよく適合した https://www.nature.com/articles/s41467-020-15432-4
work approach - Cross Validation - Label Smoothing - WaveNet
- Pseudo Labeling
label-type train test
CV構築 ~label typeと年齢の関係 label typeによる分布の変化
label typeと性別 train-auto test train-human vs
CrossValidation - testデータは全てlabel_type==”human”(手動ラベリング) => これにvalidationを近づけたい - trainをauto/humanで分離 - validationはhumanのみから取り出す human
auto train ここをStratifiedKFold 常にtrain
label smoothing - autoでつけられたラベルは多少Noisyであると予想 => label smoothingでロバストなモデルに(↑0.002, 0.005)
結果 shake up!
WaveNet - 層が深くなるにつれて、「とびとびで」畳み込みを行うネットワーク https://qiita.com/MasaEguchi/items/cd5f7e9735a120f27e2a
WaveNet モデル全体 入力付近 出力付近(age, sex入力部)
WaveNet - 単モデルでPublic5位/Private3位相当のスコア - 学習の安定性、速度、精度どれも良く、非常に強力
Pseudo Labeling • 0.05を閾値に ◦ 約6000データ を追加 • 0.003程改善 0.05
0.95 Pseudo あり Pseudo なし private public
Not worked • NN以外のアプローチ ◦ tsfresh ◦ その他特徴抽出 • フィルタ
◦ 平滑化 ◦ 微分 ◦ 画像アプローチ (12方向からのデータを扱うのが難しい + 事前学習済みモデル使用不可) => NN以外は難しかった :ランダムフォレスト
役割分担など コンペの進め方 - 寝たら、多分負ける => 常に通話を繋ぎっぱなしにして作業 連続的に相互に役割を割り振る - お互い機械学習・医学系の専門的な教育を受けているわけではない =>
とにかく実験(理由づけは後からでも良い ) 反省点 - 最終盤の流れだけは「きっちりと」決めておくべきだった (最終的にアンサンブルが雑になってしまった ) - コードを共有する仕組みは短期間コンペでも整えておいた方が良い (バグを解決する一番の方法は、チームメイトに見せることかも )
まとめ - NNが強かった - 信頼できるCVで高速な実験 - ロバストモデル + pseudo labeling
+ 多様性のあるモデリング + でshake up!