【初心者向け】医療・製薬業界DX事例の読み解き方#4:深層学習の大枠を理解しよう

【初心者向け】医療・製薬業界DX事例の読み解き方#4:深層学習の大枠を理解しよう

AIを活用した医療機器(医療AI)についてのニュースの中で、「深層学習によって○○を検出できた」などの記載が見られます。しかし、「深層学習」という言葉を見た際、実際は何をしているのか、学習ってどうやっているのか、イメージが湧かずモヤモヤすることも多いのではないでしょうか。
医療・製薬業界のDX事例の読み解き方を、デジタルが苦手な方にも分かりやすく解説する本シリーズ。今回は、「医療AIに使われる深層学習の大枠」を紹介します。

現在の医療AIの多くは「教師ありの深層学習」で分類する

深層学習は、さまざまな種類の機械学習の中で使われる、計算方法の1つです。ディープラーニング、ディープニューラルネットワークとも呼ばれます。

日本や海外で承認されている医療AIには、この深層学習という計算方法がメインで使われています。例えば、内視鏡画像から早期胃がんの診断を支援するAIや、乳がんの病理検体画像からホルモン受容体(ER/PR)とHER2のステータスを診断する医療AIなどです。
また、多くの医療AIは、「胃がんか、正常か」や「HER2陽性か、陰性か」など、1か0か、のように「分類」します。

深層学習を使って分類をする医療AIを作成するためには、この画像はがん有り、こっちの画像はがん無し、という正解が分かっているデータが必要です。このような正解が分かっているデータを使って行う機械学習の種類を「教師あり学習」といいます。

つまり、ほとんどの医療AIは「教師あり学習」という機械学習の種類の一つで、深層学習という計算方法を使って「分類」を予測するAIです。

深層学習のポジションと医療AIの例

教師あり機械学習の仕組み

まずは分類を予測する「教師ありの機械学習」について説明します。

教師あり機会学習は、分類できるようにどのように学習するのでしょうか。学習の元になるのは、トレーニングデータ(訓練データ、教師データ、学習データ)と呼ばれる、すでに正解が分かっているデータです。
教師あり学習では、まずはこのトレーニングデータを用意します。そして、トレーニングデータの目的変数と説明変数を比較して、正解率が高くなるようにパラメーターを調整します。

トレーニングデータを用意する

トレーニングデータの中には、2種類の変数があります。

1つ目は、分類したい項目(がんが有るか、無いか)である、「目的変数」です。
2つ目は、目的変数に関わりそうな項目(例えば年齢や検査値など)である「説明変数」です。

目的変数と、説明変数を合わせて、「特徴量」という呼び方もします。特徴量は、その名の通り、ある物事(がんの有無)に関する特徴が表現されたデータを指します。

トレーニングデータのイメージ

パターンを特定し、パラメーターを調整する

目的変数、説明変数が含まれたトレーニングデータを用意したら、次にそのデータを使って学習をします。ここでは例として、がんの有無を目的変数、年齢や体重、血圧などを説明変数とします。

そして、がん有りの症例と、がん無しの症例の説明変数を比べてみましょう。
説明変数を比べてみると、例えば年齢が高いほど、がん有りの場合が多い、のようなパターンが見えたとします。その場合には、年齢が重要な説明変数なので、パラメーターという係数を大きくして掛け算する、といった調整を行います。

教師あり機械学習のイメージ

aを大きくしたり、bを小さくしたり、cを0にしたり、いろいろとパラメーターを変えて試しながら、がん有りと、無しの正解率が高くなるように調整することを、教師あり機械学習のイメージと捉えてください。

深層学習の仕組み

続いて、画像からがんを検出する深層学習を事例に、深層学習の仕組みを紹介します。

前述の通り、深層学習もがんの有無がすでに分かっている画像のトレーニングデータを使うので、教師あり学習の一つです。深層学習は、ニューラルネットワークという計算方法を使っています。ニューラルネットワークは、データを入れる入力層、パラメーターの重みを処理する隠れ層、結果を出力する出力層と3つに分かれています。

一見ややこしそうに見えますが、先ほど紹介した教師あり機械学習の事例と流れは同じです。以下の5つのステップとなります。

  1. トレーニングデータを用意する
  2. 画像データを数値に変換
  3. 入力層にデータを入れ、隠れ層でさまざまな大きさに切り取りながらパターンを特定する
  4. 正解率が高くなるようにパラメータを調整する<
  5. 完成

まず、トレーニングデータを用意したら、画像データのRGB数値を入力層に入れて、隠れ層でパラメーターを掛けたりして、出力層で目的変数であるがんの有る確率を出します。先ほどの事例でいうと、
[がんの有無(出力層)=パラメーター(隠れ層)×年齢などの説明変数(入力層)]のようなイメージです。

学習というのは、目的変数であるがんの有る確率が一番大きくなるように、隠れ層でパラメーターを調整することです。以下で、それぞれのステップについて解説します。

深層

画像データを数値に変換 

画像データを深層学習に使うためには、まず画像を数値に変換する必要があります。画像はピクセルという小さなマスの集まりです。ピクセルは、R(赤)、G(緑)、B(青)それぞれの数値で表現されます。このRGBの数値が、目的変数であるがんの有無を説明する「説明変数」となります。

画像データを数値に変換

入力層にデータを入れ、隠れ層でパターンを特定する

深層学習ではまず近くのピクセルをいくつか集めて小さなまとまりをつくります。小さなまとまりごとに、色の種類や、濃淡、色のついているピクセルのパターンが数値で表現されます。

がんがある部分は、他の正常部分と比べ、数値が高くなったり低くなったりと違いが生じます。この違いが、パターンと捉えられます。上記のような隠れ層での作業を何度も繰り返す(≒深い)ことから、深層学習(ディ-プラーニング)と呼ばれているのです。

パターンを特定する

正解率が高くなるようにパラメータを調整する

パターンを特定したら、がん有りの画像とがん無しの画像でこの特徴の違いを比べます。がん有りの正解率が高くなるように、aを大きくしたり、bを小さくしたり、cを0にしたり、いろいろとパラメーターを変えて試しながら、調整します。

パラメーターを調整する

完成

最も正解率が高くなる時点(例えば正解率80%)のa、b、cが決まれば、学習が完了です。これで、画像からがんの有無を正解率80%で分類できる深層学習モデルが完成しました。

がんの有無がわからない画像をもってきて、この深層学習モデルに入れてみると、正解率80%でがんの有無を分類してくれる、ということになります。

深層学習のイメージをつかんで、医療AIの理解を深めよう

深層学習の発展によって、内視鏡、X線、CT、MRIや超音波などさまざまな医療画像を元にした医療AIが誕生しています。医療AIで多く用いられる深層学習は、発症の予測や、早期診断、治療効果の予測など、高精度に分類する機能を持ちます。今後、さらに深層学習の活用は進むでしょう。

本記事で紹介した深層学習のイメージをつかんでおくと、深層学習を使ったいろんな種類の医療AIのニュースを見たときに、何をしているのか理解が深まると思います。ぜひご活用ください。