1. HOME
  2. ブログ
  3. IT技術
  4. 【準備編】肺のCT画像からCOVID19かどうかの判断は可能か?【機械学習】

【準備編】肺のCT画像からCOVID19かどうかの判断は可能か?【機械学習】

準備編~肺のCT画像からCOVID19か予想できるのか?

肺のCT画像

今回は、前回に引き続き、肺の CT 画像から、COVID 19か否かを予測する深層学習モデルを、「PyTorch」で実装してみたいと思います。

PyTorch を採用した理由は、「Kaggle」での実装例も多く、公式ドキュメントも充実しているためです。

ちなみに、こちらの記事は「プログラミングで分類に挑戦する」ということが目的で、COVID 19を確実に分類できるわけではありませんので、予めご了承をお願い致します。

【下処理編】をお読みでない方は、まずは以下をお読みください。

こちらの記事もオススメ!



画像拡張をする

画像拡張」は、データ数の少なさを緩和するために、有効な手段です。

今回は、ライブラリとして、「albumentations」を用いました。

「albumentations」には、様々な拡張が搭載されています。

【 GitHub:albumentations 】
https://github.com/albumentations-team/albumentations

また、自作の画像拡張関数を作成することも可能です。

使用した augumentation は、以下の通りです。

Augmix

画像拡張の手法では、コーネル大学が公開している、「Augmix」というものがあります。

【コーネル大学:Augmix 】
https://arxiv.org/abs/1912.02781

これは、「train」と「test」でデータに違いがある場合に生じる、「堅牢性」と「不確実性」の問題を大幅改善できる手法です。

「Dataset」や「model」も準備する

Datasetは典型!

PyTorch では、「channel」「height」「width」の順に、Tensor の軸を並べ替える必要があります。

以下が、PyTorch における Dataset です。

画像は、OpenCV により「ndarray」で扱っているので、NumPy の「swapaxis」でも対応できるかと思います。

それ以外は、Keras と似たような、Dataset を書けば良いわけです。

モデルはお好みで!

深層学習のモデルの技術革新は凄まじく、2019年に Google から発表された「EfficientNet」は、Kaggle 上で大人気です。

その EfficientNet よりも、ImageNet での性能が良いとされているのが、「EfficientNet-Noisy-Student」。

これは、「Self-learning」に、画像拡張のようなノイズを加えたものです。

同じパラメーターで見た精度は、従来のものよりも向上していますね。

というわけで今回は、「EfficientNet-Noisy-Student」の B2 を使用しました。

ImageNet では、出力が1000次元なので、出力が1次元の FC 層に付け替えます。

重みを読み込んでからでないと、エラーが出るので、注意が必要です。

コード

精度を向上させるためには、以下のような手順を踏むのが、一般的です。

  1. 軽いモデルで試す
  2. 画像拡張の探索を行う
  3. 重いモデルを複数学習させる
  4. アンサンブル

EfficientNet 以外では、「SE-ResNeXt」などの SE 系モデルも、試す価値があるかもしれませんね。

評価指標はAUCを選択

モデルの出力は「0~1」ですが、ラベルは「0」か「1」。

そのため、F1-score などを用いると、閾値によっては精度のスコアが変してしまいます。

ですが、ROC 曲線の曲線下面積である「AUC」を用いれば、閾値によらない精度を考えることができるのです。

AUC は、QWK と並んで、医療データでよく扱われます。

実装編へつづく!

こちらの記事は、【実装編】へつづきます。

こちらの記事もオススメ!



ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

書いた人はこんな人

ライトコードメディア編集部
ライトコードメディア編集部
「好きなことを仕事にするエンジニア集団」の(株)ライトコードのメディア編集部が書いている記事です。

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界はお前の手の中に・・・ /

モバイルエンジニア

\ サービスの守り神! /

インフラエンジニア