Abnormally Distributed

統計解析担当のライフサイエンス研究者 -> データサイエンティスト@コンサル

Coursera:AI for Medicine Specializationの受講記録

CourseraでAI for Medicine Specializationを受講してみた。Andrew Ng先生で有名なdeeplearning.aiが提供している。
構成としては、AI for Medical Diagnosis. AI for Medical Prognosis, AI for Medical Treatmentの3つのコースからなり、受講目安時間はそれぞれ19時間、30時間、22時間となっている。 受講の流れは、まず講義ビデオを見た上で、Coruseraが提供する環境上でnotebookを動かしながらデータの理解やモデリングに必要なコーディングを進める。 各週の終わりには選択式のクイズがあり、合格すると評価対象となるnotebookでのプログラミング課題に進める。コードは自動で評価され、すべての週のプログラミング課題で合格できれば修了となる。

授業のビデオは1週あたり30分もあるかどうかで、基本的にはnotebookでの演習に時間を費やすことになる。とはいえ、かなり丁寧な導入もあるので、Pythonでの分析経験がある人の場合、難易度は高くないと思われる。

1. AI for Medical Diagnosis

コンテンツは3週分に分かれている。講義の主題としてはディープラーニングのモデルの解説というよりも、医療データの分析における注意点の解説が中心となっている。

1週目は胸部X線の画像を入力として、複数の疾患の有無を判定するmulti-class classificationが主題。pre-trainedのDensenetによる分類モデルを構築する。
主なテーマは不均衡なデータデットへの対応で、重みつきの損失関数を取り上げている。 また、データセットのサイズに応じた対応として、例えばpre-trained modelを使った転移学習やData augmentationを紹介している。

医療画像分析ならではのトピックとしては、正解ラベルの設定方法があった。複数の医師の多数決や追加検査(CT、バイオプシー)といった方法が考えられるとのこと。

2週目はモデルの様々な評価指標の解説のみで、軽めの内容。 sensitivity, specificity, PPV, NPVなどは確かに医療業界特有の用語なのかもしれない。個人的には特に目新しい内容はなかった。

3週目はMRI画像のセグメンテーションが主題。3D画像には触れたことがなかったので興味深かった。 モデルとしては自分ですら知っているほど定番のU-netを利用。kerasで簡単なU-netの実装を追えるnotebookなどもあり理解が深まったのが良かった。 入力データのサイズが大きいため、ランダムに小さい領域を切り取ってモデルに与えるといった工夫をする必要があるそう。 また、セグメンテーションの評価指標として、Dice coefficientを紹介していた。

全体として、分析のコードは便利なutil関数などが予め用意されており、自分で実装する部分はごく一部だった。自動で採点するシステムなので仕方ないのかもしれないが。 また、コーディング課題もテストケースが通れば良いものではなく、向こうが想定している関数を使わないと誤答になるケースが見られたのはネガティブ要素。 courseraのプラットフォームのスペックがあまり高くないようで、実際にモデルの学習を回せないのも気になる点。コードとデータセットをダウンロードしてcolabなどで動かしやすいようにして欲しかった。

以上のようにコースワークとしてできることは限られているが、参考リンクなどは豊富に提示されているので、この内容をベースに自分でいろいろやってみるのが良さそう。