Image Classification~医用画像分類のAI~

What is Image Classification?

Image Classificationとは画像データを用いた機械学習のタスクの一つで、画像の分類を予測するものです。正確には、入力された画像が複数の分類カテゴリ(以下、カテゴリ)の中でどのカテゴリに該当するかの予測確率を出力します。具体例を以下に示します。まず各カテゴリの画像とラベル(airplane、automobile…)のセットを準備します。これが学習データにあたります。次に機械学習モデルの構築を行います。モデルは学習データから同じラベルの付いた画像に共通する特徴(形状や色など)を抽出しラベルとの対応を学習します。[学習したモデルは新しい画像データに対してカテゴリの分類結果を予測します。この例では“dog”の予測確率が最も高いことから、正しく分類予測できていることがわかります。

●図1 画像分類のイメージ(参考URL:http://www.cs.toronto.edu/~kriz/cifar.html

How does Image Classification work?

画像分類のタスクは大きく学習データの準備とモデルによる学習の二つに分けられます。医療分野においては医師が学習データの準備を行い、データサイエンティスト(エンジニア)がモデルによる学習を行うのが一般的です。そのため、医用画像を用いた画像分類を行うためには医師の協力が欠かせません。

学習データの準備

学習データの準備は、さらにデータの収集と教師データの作成(アノテーション)の二つに分けられます。データ収集では、データドメインの設定やデータの取得方法を慎重に決定する必要があります。臨床現場で遭遇するデータを網羅的に収集するためには、症例数の量や偏りに注意したデータドメインの設定が必要です。また、予測の再現可能性を確保するため、診療ガイドラインの範囲内で撮像機器・撮影方法・撮影条件を統一することや、手技の差が生じない方法でデータを取得することが求められます。

教師データの作成では、カテゴリの数と種類を設定し、各画像データに対してラベル付けを行います。カテゴリ数やカテゴリ間の画像の類似度によって学習の難易度は変わるため、モデルの精度と臨床的有用性のバランスを考慮したカテゴリの設定が必要です。ラベル付けは医師が専門知識に基づいて行います。この際に留意すべきことは、画像一枚一枚に対してラベル付けを行う事です。同じ患者から撮影した画像だからという理由で同じラベルにしてしまうと、共通した特徴パターンを見つけられず、学習の精度が落ちてしまいます。

CNN

学習データの準備ができたら、モデルによる学習を行います。画像分類をはじめ、画像データを使った機械学習では主にCNN(Convolutional Neural Netowrk )と呼ばれるモデルが使用されます。

CNNの略図を図2に示します。CNNはConvolutions層、Pooling層、全結合層からなり、Convolution層とPooling層を繰り返した後にFlatteningという操作を行い、最後に全結合層を経て分類予測を出力します。

●図2 Convolution Neural Networkの略図

それぞれの層の役割と処理内容を説明します。

Convolution 層

●図3 Convolution層

図3のように Convolution層は入力画像に対してフィルタ処理と非線形変換(ReLU関数など)を行い特徴マップ(output)を出力します。フィルタ係数はそれぞれ異なり、フィルタの数に応じて異なる特徴マップを出力します。フィルタ処理では入力画像の画素値とフィルタ係数で畳み込み演算(Convolution)が行われます。

畳み込み演算

ダイアグラム

自動的に生成された説明
●図4 畳み込み演算

畳み込み演算とは対応する位置の入力画像の画素値とフィルタ係数をかけて足し合わせる処理です。図4のように、入力画像の左上箇所に対して畳み込み演算を行った値が出力画像の左上の画素値になります。入力画像がカラー画像の場合は3チャンネル(RBG)あるため、それぞれのチャンネルに対して畳み込み演算を行ない、各チャンネルの合計を出力します。この演算を入力画像に対してフィルタをスライドさせながら繰り返し行います。フィルタサイズやスライド幅は任意に決めることができ、フィルタサイズおよびスライド幅が大きくなるほど出力画像のサイズは小さくなります。

●図5 フィルタの効果

Convolution層ではフィルタ処理により画像の特徴を抽出します。 図5ではFilter1で垂直成分、Filter2で水平成分を抽出しています。他にも斜線を抽出するフィルタや交点を抽出するフィルタなどが存在します。さまざまなフィルタから抽出した特徴を組み合わせることによって、モデルは予測対象の形状や色調の特徴を学習します。

Pooling層

ダイアグラム

中程度の精度で自動的に生成された説明
●図6 Pooling層

Pooling層では画像サイズの縮小を行います。Poolingには主にMax PoolingとAverage Poolingがあります。Max Poolingはカーネル内の画素値の最大値を採用して出力します。図6では左上のカーネル(赤い四角)内の最大値は9なので、9を採用します。この操作をカーネルを重ならないようにスライドさせながら全ての入力画素に対して行います。そのため、カーネルサイズが大きいほど出力画像は小さくなります。Max Poolingはカーネル内の画素値の最大値を採用するのに対し、Average Poolingは平均値を採用します。図7では左上のカーネル内の平均値は6.0なので、6.0を採用します。CNNでは、精度が高い傾向にあるMax Poolingの使用が一般的です。Pooling層は特徴を失うことなく画像の位置情報を粗く整理します。そのため、予測対象の大まかな特徴の位置関係や形状を捉えます。

●図7 Max Pooling と Average Pooling

Flattening

Convolution層とPooling層を繰り返すことで特徴マップは徐々に小さくなります。図8のようにFlatteningでは小さくなったn次元の画像データを1次元に並び替えます。一次元にすることでデータを次の全結合層に入力可能な形状にします。

●図8 Flattening

全結合層

一次元になったデータをニューラルネットワークを用いて学習(前回記事参照)します。全結合層の数はモデルによって異なりますが、最終層ではカテゴリの予測確率の分布を出力します。

Ideas for improving accuracy

画像分類では、モデルの精度を上げるために以下のような工夫が行われます。

データの水増し(Data Augumentation)

学習用の画像データに対して「変換」を施すことでデータを水増しする手法です。データの変換には反転、水平移動、拡大縮小、輝度変更などがあります。図 9のように、同じ犬の画像から大きさや向き、角度が異なる画像を生成します。モデルの精度はデータの量と相関関係にあるため、学習データの水増しによりモデル精度の向上が見込めます。また、画像の水増しは過学習の抑止にも繋がります。画像の向きや形、大きさの変更により、モデルが色や形状といった期待する特徴以外の要因でカテゴリを予測することを防ぎます。

●図9 水増しを行った画像

オーバーサンプリングとアンダーサンプリング

オーバーサンプリングとアンダーサンプリングはどちらも不均衡データを扱う際に使う手法です。不均衡データとはカテゴリ間でサンプル数に極端に偏りがあるデータです。サンプル数に偏りがあると、モデルは精度を上げるためにサンプル数の多いカテゴリを予測しやすくなります。サンプル数の少ないカテゴリに対して画像の水増しを行うことをオーバーサンプリング、サンプル数の多いカテゴリに対して画像を減らすことをアンダーサンプリングと言います。医療分野では症例によって発生率が異なるため、学習対象データが不均衡データとなってしまう場合が多いです。そのため、これらの手法は医療分野における機械学習タスクにおいて広く利用できます。

Image Classification Applications and use case in life science field

画像分類は医療分野で様々な応用利用が検討されています。有名な医用画像分類の文献の一つに、皮膚表面の写真から皮膚がんの発症予測をしたものがあります。(1)

この文献では、モデルの予測は21人の認定皮膚科医と遜色ない精度であったと記載されています。また、2021年5月にはスマートフォンカメラを使用してAIが皮膚疾患を予測するアプリケーションをGoogle社が発表しました。

(参考URL:https://blog.google/technology/health/ai-dermatology-preview-io-2021/) 他にもX線写真からコロナ感染者を予測する文献があります。(2) この文献では、コロナ感染者と健常者の分類予測精度は99.2%であるのに対し、コロナ感染者、コロナ以外のウイルス性肺炎患者、細菌性肺炎患者、健常者の分類では93.4%となっています。このことから、カテゴリ数と予測精度がトレードオフの関係にあることが分かります。臨床応用の場面では、医師の診断のサポートや治療優先患者の判別等への利用が期待されます。

(1)Esteva A, et al. Dermatologist-level classification of skin cancer with deep neural networks. Nature. 2017

(2)Ibrahim et al. Pneumonia Classification Using Deep Learning from Chest X-ray Images During COVID-19. Cognit Comput. 2021

Introduction of our project using Image Classification 

弊社が提供する画像分類により画像診断サポートを行うソリューションに、「細菌感染症菌種推定アプリ」があります。このアプリケーションは、グラム染色画像から細菌の分類予測を行います。医師は光学顕微鏡にスマートフォンを取り付けて、検体のグラム染色画像を撮影します。このアプリケーションは画像に移る細菌を分類し、菌種の予測を表示します。医師は菌種に応じた適切な抗菌薬の処方が可能になります。アプリケーションの普及により不適切な抗菌薬の投与を減らすことで、薬剤耐性菌(AMR:Antimicrobial Resistance)の発生抑制への貢献を目指しています。

●図10 細菌感染症菌種推定アプリ(BiTTE)

Discussion

画像分類モデルを臨床応用するときの課題に、予測理由を説明できないことがあります。Deep Learningでは数千にも及ぶ膨大なデータを何層にも渡る複雑なネットワークで学習しており、その過程すべてを人間が理解することは不可能です。こうした問題を「AIのブラックボックス問題」といいます。予測理由が分からなければ、医師が患者に診断根拠を説明したり、診断責任をとることが難しくなります。そのため、AIは予測結果を示すだけでなく、予測の根拠まで示すことが求められます。AIの予測理由を説明することをmodel interpretation(3)と呼びます。画像分類タスクに利用する主要なmodel interpretationの一つにGrad-CAM(4)があります。図11で示すようにGrad-CAMは入力画像に対して、予測に寄与する度合いをヒートマップで表示します。ヒートマップとして出力することで個々の予測に対する視覚的な説明が可能になります。画像分類モデルを臨床応用するときには、予測精度の向上に併せてmodel interpretationの実装が求められます。model interpretationのテーマについては、別途ご紹介予定です。

図11 Grad-CAMによる予測貢献度のヒートマップ

(3)Christoph Molnar.  Interpretable Machine Learning : A Guide for Making Black Box Models Explainable. 2017
(4)Ramprasaath R Selvaraju et al. Grad-CAM: Why did you say that?.  arXiv.  2016