Classification of melanoma and lentigo by CNN

データセットについて

Kaggleでダウンロードしたデータセットでは,良性が32542枚,悪性が584枚でとても偏りが多いものとなっていて,過学習の原因となってしまいます.そのため,メラノーマのデータ数に合わせて学習を進めていきます.

データセットに付属しているメタデータは図の様になっており,以下の事が読み取れます.

  • 年齢
    • 高齢者の方がメラノーマの確率が高くなる
    • ガンは高齢者の方が罹患しやすい
  • 性別
    • 女性に比べて男性の方が罹患しやすい
  • 部位
    • 粘膜の部分や頭部のものはメラノーマの割合が極端に高い
    • 掌,足の裏,下半身や胴体に出来たものは良性のものが多い

ROIの抽出

実験で用いるKaggleからダウンロードした画像は

  • ROIが中央
  • ROIが1つ
  • 体毛が写っている
という様な写真となっています.

実際にメラノーマか否かを判断するのに必要な領域は,肌を含まない茶色に変色した部分です.

そのため,ネットワークを用いた学習時には,OpenCVの findContours() を使用して対象となる領域を抽出し,その他の必要とならない皮膚の部分を黒く塗りつぶすことで過学習を抑制した学習を進めることができます.

しかし,抽出後の画像の中にはいくつか想定をしていない抽出をされた画像も存在していました.全てを確認した訳ではありませんが,3割程度が想定していない抽出のされ方をしていました.これが,学習の精度を妨げる要因となり得るため

  • 今回採用したものとは異なる関数を用いる
  • findContours()を医用に最適化する

等のアルゴリズムの改善が求められ,それが今後の課題の1つとなります.

ResNet18を用いた学習

ResNet18で学習を行った結果,メタデータを用いた場合の方がvalidationにおいて高精度であることが確認できます.また,メタデータだけでなく全結合層に隠れ層を追加して実験を行ったことで以下のことも確認できます.

  • 高精度
    • 畳み込み層の重みを変える
    • 隠れ層を追加
  • 過学習が軽減された
ResNet18のAcc
conv層の重み メタデータ fc層 accuracy
可変 無し 76.39%
固定 無し 67.96%
可変 有り hidden層を追加 79.17%
固定 有り hidden層を追加 73.96%

EfficientNet-B1を用いた学習

EfficientNet-B1で学習を行った結果,メタデータを用いた場合の方がvalidationにおいて高精度であることが確認できます.また,メタデータだけでなく全結合層に隠れ層を追加して実験を行ったことで以下のことが確認できます.

  • 高精度
    • メタデータの追加
    • 隠れ層の追加
  • ResNetよりも学習の収束が早い
EfficientNet-B1のAcc
conv層の重み メタデータ fc層 accuracy
可変 無し 70.83%
固定 無し 73.26%
可変 有り hidden層を追加 76.74%
固定 有り hidden層を追加 75.00%

まとめ

今回の研究で,ResNet18とEfficientNet-B1の双方で医者の平均識別率を超えることができました.しかし,80%程度では実用性はないので,更なる改善が必要であると考えます.具体的にはCNN以外に

  • Vision Transformer
  • Attention

の様な畳み込み処理のない手法を使用し,細部における情報の欠損をさせることのない学習をさせていきたいと思っています.