眼科AI学会_AIコンペティション_8thsolutionと上位解法

3.4K Views

December 08, 24

スライド概要

2024/12/01に開催された眼科AI学会でAIのコンペティションに参加した際の自身の解法と上位者のソリューションを共有しております。ラボやコミュニティで共有した内容を一部改変して共有しております。次回も開催されるそうですので興味のある方はぜひ参加してみてください。

profile-image

初めまして 医療AIに興味があります。 松尾研究室のDL輪読会やAcademiX Medicalに所属しています。 大学の研究室やいくつかのインターン先で、医療系のデータ(テキスト・画像・センサデータ)の解析に関する研究しております。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

眼科AI学会コンペ 24.12.03 眼科AI学会 AI コンペティション th 8 solution と上位解法 田代 勇希 九州大学 工学部 機械航空工学科 生体機能工学研究室 B4 LinkedIn

2.

Outline • コンペ概要 • 8th Solution • 解析結果 • データ・予測するもの・開催の背景(目的) • モデル概要図 • t-SNEの解析 • 相関関係 • 機械学習での予測 • データ・精度 • LGBMでの重要度 • 上位 solutions • • • • 特別賞 3位 2位 1位 2

3.

コンペ概要 コンテスト概要 • • • • • • 3 タスクテーマ • 『眼底写真を用いたメタボリックシンドローム推定』 データ • 収集方法:Japan ocular imaging registry (JOIR)からの健診データ 学習データ • • 5000名の眼底画像と臨床情報のテーブルデータ テーブルデータ • • 年齢、腹囲、血圧(収縮期、拡張期)、血糖、脂質 (HDLコレステロール, 中性脂肪) メタボの判定結果 テストデータ • 500名の画像のみ(臨床情報のテーブルデータなし) 共有前の前処理 • 解析や評価の複雑さを減らす目的で、男性に由来するデータのみを提供 眼底画像の一例 補足 • • • • 期間:2024年9月03日(火)~10月25日(金)の約7週間 メタボリックシンドローム(METS, メタボ) Prizes:1位:5万円、2~3位、特別賞:1万円(優れた解析の方) 次回も学会コンペ開催予定!(2025.06.27-28, 大阪) • https://2025.asiateleophth.org/ Ref: http://www.jsaio.jp/meeting/soukai/contest/index.html

4.

コンペ概要 メタボリックリンドロームの診断基準 4 メタボは腹囲+特定の2項目が基準値以上で診断 Ref: 厚生労働省 生活習慣病予防のための健康情報サイト メタボリックシンドロームの診断基準

5.

Solution 提出したモデル概要図 1. CenterCrop • 2. 不要な背景の切り取り 前処理 • 一般的な前処理を採用 3. 特徴量抽出 4. 補助損失 (Auxiliary Loss) 5. 複数モデル結果の加重平均 5

6.

Solution 補助ロス(Auxiliry Loss)について • 補助ロス(Auxiliry Loss)とは • 主損失(メインタスクのLoss)に加えてモデルに対する追加の損失関数 • 利点 • モデルの表現力向上 • 学習データのみにあるメタデータを活用可能 • 詳細 • 主損失 :メタボの予測(80%) • 補助損失:収縮期血圧の予測(20%) 6

7.

Solution 補助損失のAblation Study • 年齢で精度向上 • • • 先行研究で年齢を予測するタスクあり →年齢がメタボの予測の補助となった 拡張期血圧を20%で追加 • SBPは全体のlossのうち20% 7 データ(割合) val accuracy なし 0.63 age(0.2) 0.644 SBP(0.2) 0.657 表1:カラム別の補助損失の精度

8.

Solution 補助損失のAblation Study 8 補助損失の割合は探索する必要がある 今回は20%が最も精度が良かった データ(割合) val accuracy age(0.5) 0.634 age(0.2) 0.644 age(0.2), TG(0.2) 0.634 age(0.2), TG(0.1) 0.644 表2:補助損失の重み別の精度

9.

Solution 効かなかった手法 9 • 効かなかった手法 • LabelSmoothing、50epoch、スタッキング、入力チャネルを増やす(グ レースケール・ルールベースの血管マスク処理・HSVで6ch)、Pooling (MaxPooling・GEM)、特徴量抽出(GRU・LSTM・BiLSTM・ attention)、warmup、アンサンブル(全ての出力の平均・ブレンディン グ・スタッキング)、モデル(SwinT, MaxViT, EVA, ConvNeXt)・補助損 失でTGの追加。

10.

解析 次元削減(t-SNE)による画像データの可視化 10 1200x1200の画像を2次元に次元削減してプロットし、メタボで画像が明確に異なるか検証 症例別の可視化 年齢別の可視化 メタボでは明確な差は見られなかったが年齢では差があり

11.

解析 テーブルデータの相関係数 • 相関関係が高いカラム • • 0.76:収縮期血圧と拡張期血圧 0.58:腹囲とメタボのラベル 11

12.

解析 機械学習でのメタボの予測 • 学習方法 • • • • 12 train dataの8割 機械学習モデル:LGBM Accuracy:0.998 学習したカラム • • • • • • • • • • "age": "検査時年齢", "AC": "腹囲", “SBP”: “収縮期血圧", "DBP": "拡張期血圧", "HDLC": "HDLコレステロール", "TG": "トリグリセライド (中性脂肪)", "BS": "血糖", "METS": "メタボリックシンドロームの有無 (0: なし、1: あり)", "Component 1": "t-SNE 主成分1", "Component 2": "t-SNE 主成分2” 図:LGBMの重要度の可視化 機械学習の予測には拡張期血圧が最も寄与

13.

解析 機械学習モデルをSHAPで解釈 13

14.

上位者解法 Test Time Augmentation(TTA)とは 14 • Test Time Augmentation(TTA) • • テストデータに対して、データ拡張(回転・反転など)を行い、それぞれ の精度のアンサンブルする手法 メリット • Robust • 特にデータが少ない時 • 実装コストが低い • 計算コストも別実験するより低い • データが少ないほど効果は大きい • 論文 • • Better Aggregation in Test-Time Augmentation https://arxiv.org/abs/2011.11156v2 特別賞と3位の方のSolution Ref: https://github.com/andrewekhalel/edafa

15.

上位者解法 特別賞 解法 • 解法がspeakerdeckで公開 • 前処理 • • 詳細はそちらを参照してください Ben’s Preprocessing • 画像の各ピクセルについて、その周囲の一定範囲内のピクセルの平均的な色(局所平均) を計算し、その値を各ピクセルから引く • • • https://kaggl e-forum-messageattachments.storage.googleapi s.com/88655/2795/competitionreport.pdf CenterCrop モデル • • 精度の良かった複数モデルのアンサンブル 眼底画像のFoundation Modelから1次元特徴 量を取得し年齢とともにアンサンブル • • • 15 RETFound RET-CLIP その他 • TTA(Test Time Augmentation) • AutoGluon:簡単に機械学習してくれる AutoMLツール • 予測時にもデータ拡張を実施する手法 • https://auto.gluon.ai/stable/index.html Ref: https://speakerdeck.com/pon0matsu/yan-ke-aikontesuto2024-te-bie-shang-6wei-solution

16.

上位者解法 3位 • 解法がspeakerdeckに公開 • • • • • • 眼底部の切り抜き(左図参照) テーブルデータの0〜1MinMax Scaling 強力なデータ拡張(+0.03) • RandomHorizontalFlip, RandomVerticalFlip, RandomRotation, RandomAffine, ColorJitter, RandomPerspectiv 補助損失(+0.01) • 全データを利用 モデル • • • 詳細はそちらを参照してください 前処理 • • 16 1段階目(単一で0.680) • • • serenext26t_32x4d.bt_in1k maxvit_tiny_tf_224.in1k 2つを5foldでアンサンブル • • 1段階目の結果+testデータを含めて学習 50modelのアンサンブル 2段階目 • • 2model x 5fold x 5seed Ref: CommonLit Solutionの紹介と考え方- Fulltrain戦略と (Seed/Model)Ensembleの可視化 - 前処理:眼底部の切り抜き 推論 • TTA(Test Time Augmentation) • 元画像+上下反転+左右反転で行い、単純加算平均 その他 • GitHubでコードの公開 • https://github.com/Neilsaw/jsaio_2024_solution Ref: https://speakerdeck.com/neilsaw/di-5hui-ri-ben-yan-ke-aixue-hui-zong-hui-aikontesuto-3wei-jie-fa

17.

上位者解法 2位 • 前処理 • • 眼底画像の黒の背景を中間色で埋める 20 hold • データを均一に分割するために、主成分分析で次元削減後、クラスタリングを用いて 20分割 • 損失関数:BCEとMSEを使用 • アンサンブル学習ではMSEが良い • データ拡張:通常の方法に加え、上下反転など • Model • • • • EVA, EfficientNet, ViT, ResNeXtのモデルを使用 メタボの有無と、メタボ以外の特徴量を同時に推測 推測結果を結合し、LightGBMとXGBoostで学習 約4000〜5000個のモデルをアンサンブル • Model, Seed アンサンブル 17

18.

上位者解法 1位 • 前処理 • • 表データの解析から腹囲に注目 学習に不適切と判断したデータを削除 • • • • (明らかにおかしいものやアステロイド硝子体症) 5000枚を確認し251枚削除? • (全体の5%) 層化k分割交差検証で分割 Model 1. 2. 3. 4. 5. 6. 7. Backbone • • • 18 seresnext, convnext-base, swin T Pooling(num_feature→256) Linear BatchNorm1d Dropout Relu Linear 256→1(メタボと腹囲の予測) 補助損失を利用 アステロイド硝子体症 • • • 片眼性かつ非炎症性の変化で、小さなカルシウム等 の球状の粒子が正常な硝子体の中に蓄積する疾患 人口の約1%の患者数で特に高齢者・男性に多く発 症 糖尿病・高血圧などに合併して発症することが特徴 アステロイド硝子体症の眼底画像

19.

まとめ • 19 上位者解法の共通点 • 機械学習の基本的な手法は全て試す必要あり • データ拡張・アンサンブルなどなど • • • • • これをすることで上位に入れる可能性が高い 補助損失(Auxiliry Loss)←ほぼ全員 Seed, foldアンサンブル←ほぼ全員 Test Time Augmentation←特別賞・3位解法 全データのアノテーション← 1位解法 • Kaggleなどのコンペでメダル獲得圏で使用されていた手法を実装 • 所感 • 医療分野のコンペであったため、非常に楽しかった • 運営の方々、ありがとうございました! • Leaderboardがなく、最後にcsvファイルの提出のみで自身の立ち位置が不透明と なり、モチベ管理が大変だった • KaggleのCommunity Competitionを使用したらいいかも • • • Discussion, Notebookでもっと盛り上がって初心者にもフレンドリーかも 準備で運営コストが上がる懸念 https://www.kaggle.com/c/about/community