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
64
BFが動くCPUを作りたい! @第3回CPUを語る会
chizuchizu
1
250
aranami_idea.pdf
chizuchizu
0
43
DiffType KIH2023
chizuchizu
0
220
週刊タイピングは役に立たない
chizuchizu
0
270
【発表資料】どこやったっけなぁ?
chizuchizu
1
220
アニーリングマシンを使った論理式学習モデルの開発(2021未踏ターゲット事業成果報告会)
chizuchizu
0
1.8k
浅(くて広い)層学習 (Amplifyハッカソン)
chizuchizu
1
620
configのすゝめ
chizuchizu
1
220
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Happy Clients
brianwarren
98
6.7k
Designing for Performance
lara
604
68k
Optimizing for Happiness
mojombo
376
70k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
380
A Tale of Four Properties
chriscoyier
156
23k
Making Projects Easy
brettharned
115
5.9k
Done Done
chrislema
181
16k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
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!