Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[第4回 全国医療AIコンテスト] Kaggleから学んだ医療画像データ解析の取り組み方

Inoichan
March 19, 2022

[第4回 全国医療AIコンテスト] Kaggleから学んだ医療画像データ解析の取り組み方

第4回 全国医療AIコンテストの講演「Kaggleから学んだ医療画像データ解析の取り組み方」で用いた発表資料です。
Kaggleの画像コンペに取り組んでみたい/取り組んだけどいまいち進め方が分からない、といった方を対象に自分がどういう風に取り組んでいるかをまとめました。基本的な内容ではありますが少しでも参考になれば幸いです。
イベントリンク:https://medical-ai-contest.org/index.php/program/

Inoichan

March 19, 2022
Tweet

More Decks by Inoichan

Other Decks in Programming

Transcript

  1. 自己紹介 ❖ 井ノ上雄一 (@inoichan) ❖ 京都大学薬学研究科 博士 ❖ TURING株式会社 インターン(正社員 4月〜) ❖

    Rist株式会社 AIエンジニアインターン ❖ 松尾研究所 チーフAIエンジニア ❖ Kaggle Competition Grandmaster
  2. A good CV is half of success. I won’t go

    to the next step if I can’t find a good way to evaluate my model. *CV: cross validation, モデルを評価するためにデータを分割する方法の一つで非常によく使われる。 コンペに参加したらすること ➔ とても重要!特にモデルの評価系を確立することは何よりも大切! まずはシンプルなパターンで作る。次に1つだけ変更を加えて手元でモニターしてい る指標の変化を確認する(画像サイズ、Augmentation)。SubmitしてLeader board のスコア(通称Public LB)の値と見比べる。手元とPublic LBで極力近い値が出てい るか?相関しているか?念入りに検証する。 ★ ベースラインモデルを作成する! Kaggle Blog, Profiling Top Kagglers: Bestfitting, Currently #1 in the World, https://medium.com/kaggle-blog/profiling-top-kagglers-bestfitting-currently-1-in-the-world-58cc0e187b
  3. コンペに参加したらすること ➔ とても重要!特にモデルの評価系を確立することは何よりも大切! まずはシンプルなパターンで作る。次に1つだけ変更を加えて手元でモニターしてい る指標の変化を確認する(画像サイズ、Augmentation)。SubmitしてLeader board のスコア(通称Public LB)の値と見比べる。手元とPublic LBで極力近い値が出てい るか?相関しているか?念入りに検証する。

    ➔ 公開されているNotebookを活用する。はじめはNotebookを参考にしてもいいし、 自分で作ってNotebookと照らし合わせながら要所を確認していくのもあり。 NakamaさんやTitoさんのように強い方が素晴らしいベースラインを公開してくれる ことも多いので、積極的に活用して自分のベースラインの質を上げる。 ★ ベースラインモデルを作成する!
  4. 良いベンチマークができたら ➔ まずはパラメタを変更するだけでも良いから、とにかく実験を回して感覚を掴んでい く。 ◆ 画像サイズ ◆ Augmentation ◆ モデルサイズ(Efficientnet

    B0 ~ B7) これがうまくいったから金メダル!とはいかないけど、強い人たちはちゃんと抑えている。 ★ とにかく実験する! ベースライン+大きい画像サイズで銅メダルくらいはとれるこ とも...(あまり誇れることではないが ..)
  5. 良いベンチマークができたら ➔ まずはパラメタを変更するだけでも良いから、とにかく実験を回して感覚を掴んでい く。 ◆ 画像サイズ ◆ Augmentation ◆ モデルサイズ(Efficientnet

    B0 ~ B7) これがうまくいったから金メダル!とはいかないけど、強い人たちはちゃんと抑えている。 ★ とにかく実験する! メインアイディアとして画像サイズを大きく設定していた。もち ろんそれだけではないが、基本的なところをちゃんと試してお くことは重要。 Kaggle, 6th place solution, https://www.kaggle.com/c/ranzcr-clip-catheter-line-classification/discussion/226616
  6. 良いベンチマークができたら ➔ まずはパラメタを変更するだけでも良いから、とにかく実験を回して感覚を掴んでい く。 ◆ 画像サイズ ◆ Augmentation ◆ モデルサイズ(Efficientnet

    B0 ~ B7) これがうまくいったから金メダル!とはいかないけど、強い人たちはちゃんと抑えている。 ★ とにかく実験する! 解像度が重要と気づいた。解像度を稼ぐために、注目領域を クロップするようなDetectionモデルを作成した。 Kaggle, 1st place solution with code, https://www.kaggle.com/c/rsna-str-pulmonary-embolism-detection/discussion/194145
  7. 良いベンチマークができたら ➔ まずはパラメタを変更するだけでも良いから、とにかく実験を回して感覚を掴んでい く。 ◆ 画像サイズ ◆ Augmentation ◆ モデルサイズ(Efficientnet

    B0 ~ B7) これがうまくいったから金メダル!とはいかないけど、強い人たちはちゃんと抑えている。 ★ とにかく実験する! メインアイディアとして、 Augmentationの最適化をあげてい る。 Kaggle, RANZCR 1st Place Soluiton Cls Model (small ver.), https://www.kaggle.com/haqishen/ranzcr-1st-place-soluiton-cls-model-small-ver
  8. 良いベンチマークができたら ➔ まずはパラメタを変更するだけでも良いから、とにかく実験を回して感覚を掴んでい く。 ◆ 画像サイズ ◆ Augmentation ◆ モデルサイズ(Efficientnet

    B0 ~ B7) これがうまくいったから金メダル!とはいかないけど、強い人たちはちゃんと抑えている。 ★ とにかく実験する! 肺のCT画像を用いた別のコンペティションでも、先程の Augmentationを使うことで安定して良い精度が出るように なった。 Kaggle, 12th place solution, https://www.kaggle.com/c/siim-covid19-detection/discussion/264311
  9. 良いベンチマークができたら ➔ 画像以外の情報は使えないか? ◆ メタデータの使用 ◆ マスクの使用 ★ とにかく実験する! Kaggle,

    2nd place solution, https://www.kaggle.com/c/trends-assessment-prediction/discussion/162765 3DCNNとテーブルデータの予測値を Stackingすることで精度 が大きく向上した。
  10. 良いベンチマークができたら ➔ 画像以外の情報は使えないか? ◆ メタデータの使用 ◆ マスクの使用 ★ とにかく実験する! Kaggle,

    2nd place solution, https://www.kaggle.com/c/trends-assessment-prediction/discussion/162765 CNNで特徴抽出したEmbeddingと、テーブルデータを 2層の ニューラルネットに通した Embeddingを結合して予測を行って いる。 さらに、外部データについて追加で評価指標をモニターするこ とで、より安定した評価系を構築している。
  11. 良いベンチマークができたら ➔ 画像以外の情報は使えないか? ◆ メタデータの使用 ◆ マスクの使用 ★ とにかく実験する! Kaggle,

    1st Place Solution. Sequential model wins, https://www.kaggle.com/c/rsna-intracranial-hemorrhage-detection/discussion/ 117210 CTの位置情報を用いて、前後の画像の情報を 1DCNN やRNNで加味したモデルを作成している。
  12. 良いベンチマークができたら ➔ 画像以外の情報は使えないか? ◆ メタデータの使用 ◆ マスクの使用 ★ とにかく実験する! Kaggle,

    1st Place Solution, https://www.kaggle.com/c/ranzcr-clip-catheter-line-classification/discussion/2 26633 訓練データの一部に追加のアノテーションが合った。 それを学習させ、マスクとして元の画像と合わせて入 力に使用している。
  13. 良いベンチマークができたら ➔ 画像以外の情報は使えないか? ◆ メタデータの使用 ◆ マスクの使用 ★ とにかく実験する! Kaggle,

    [placeholder] lb 0.450 (study only) starter kit!, https://www.kaggle.com/c/siim-covid19-detection/discussion/240233 Kaggle, 12th place solution, https://www.kaggle.com/c/siim-covid19-detection/discussion/264311 物体検出のBounding boxの情報をセグメンテーション のように用いて、注目したい領域も一緒に学習させる ことで精度を向上をさせた。
  14. 良いベンチマークができたら ➔ アイディアをコードに落とし込む。 ◆ 時間がかかるので、思いついたらとにかく早くコードを書いてみる。 ◆ 上がらなくて当たり前、当たったらチャンス。 ◆ 自分がやったこと無いことに挑戦する。うまくいかなくても経験として成長できる。 ◆

    素人思考大歓迎! ➔ Discussionを読む。 ◆ 重要なアイディアはコンペ中に共有されていることも多い ◆ 自分で投稿することで学びが得られることも ◆ (Upvoteされると嬉しい) ★ とにかく実験する!