医療AI講座

「図解で簡単!!今さら聞けない畳み込みニューラルネットワークの基本」

MedTechToday編集部のいとうたかあきです。今回の医療AI講座のテーマは、AI画像認識において重要なCNN(畳み込みニューラルネットワーク)です。

近年、CT画像や内視鏡画像など、多くの画像データに対してAIを用いた研究が盛んに行われています。そして、画像分野でAIを用いるほとんどの研究がCNNを用いていると言っても過言ではありません。

今回は、「さらっと読んで、理解したい!AI知識を増やしたい!」という方向けに解説します。

1.CNNの定義

CNN(畳み込みニューラルネットワーク)は、DNN(ディープニューラルネットワーク)の一種です。

DNNってなに?と思われた方は、下記のDNNの解説記事を先に読まれることをお勧めします。

CNNは、DNNの「入力層」、「中間層」、「出力層」、の3層の中の中間層に、畳み込み層とプーリング層という2種類の層を組み込んだニューラルネットワークです。

なお、畳み込み層とプーリング層は1層ではなく、複数の層が組み込まれていくことになります。

この記事では、まず畳み込み層やプーリング層について、順を追って説明していきます。

2.畳み込み演算による画像のフィルタ処理

畳み込み層について理解するためには、畳み込み演算による画像のフィルタ処理についての理解が必要です。

畳み込み演算による画像フィルタ処理とは、入力画像の注目するピクセルだけでなく、その周囲にあるピクセルも利用し、出力画像のピクセル値を計算する処理になります。

フィルタ処理のフィルタとは、画像に対して特定の演算を加えることで、画像を加工する役割をもつ行列を指します。

また、ピクセル値とは画像のピクセルに含まれる色の明るさを表す数値になります。

この説明だけではまだピンと来ないと思いますので、例を挙げて具体的な処理の流れを説明します。

3 x 3のサイズのフィルタを使った畳み込み演算をするとします。

着目ピクセルとその周囲を合わせた9つのピクセル値についてフィルタの値との積和を計算します。

得られた結果の値を、着目ピクセルのピクセル値とします。

このような操作を、青枠をずらしながら出力画像の全ピクセルに対して行います。

この例では、着目ピクセルを含む周囲の9ピクセルのピクセル値の平均を計算し、その値を着目ピクセルの新しいピクセル値とする操作を行っているため、画像をぼかす効果が得られます。

3.畳み込み層

畳み込み演算による画像のフィルタ処理をニューラルネットワークに応用したのが、CNNの畳み込み層にあたります。

まず、なぜ畳み込み演算をCNNで使用するのかという点を解説していきます。

通常、ニューラルネットワークは1次元データしか扱うことができません。しかし画像は縦と横の2次元で構成されています。

画像を1次元のデータにしてからDNNを行うこともできるのですが、それでは画像のピクセルを1点ごとに別々に見ることになり、全体的な形状や位置を認識することができません。

隣り合ったピクセル間の関係性に当たる情報が画像の形状を捉える上で重要になります。

畳み込み演算では小さなフィルタを用意して、認識したい画像に対してスライドさせていきます。

畳み込み画像のフィルタ処理では、2節で例にあげた画像をぼかすこと以外にも、様々な処理が可能です。

例えば、特定の形状を持つ場合にのみ大きな値を、そうでない場合は0をもつようなフィルタを作成することも可能です。

この畳み込み演算を用いることで、CNNではピクセルの位置関係によって変化する値を取得し、形を捉えて学習することが可能となります。

ただ、そうはいっても、人為的に、無数の形状に対応するフィルタをつくることは、現実的ではないのではないかと思われた方もいらっしゃるかもしれません。

DNNにおいて、学習とは重みの値を更新していくことですが、CNNでは重みの代わりにフィルタの各値を学習によって更新していくことでこれを可能とします。

4.プーリング層

畳み込み層には、画像の形状パターンの特徴を検出する働きがありました。

それに対してプーリング層には、物体の位置が変動しても 同一の 物体であるとみなす働きがあります。

プーリングは、畳み込みで得た特徴を最大値や平均値に要約することで多少の位置の変化があっても同じ値が得られるようにする処理です。

プーリングの一例を下の図で示します。

上の例では2×2の枠内のピクセル値の最大のものをとってくることで、おおまかに特徴を保っています。

5.CNNの仕組み

CNNでは、畳み込みとプーリングがいくつか終わった後に,画像データを1次元データにフラット化します。

そののち、全結合層と呼ばれる、通常のDNNの中間層、出力層に引き渡します。

下図は、CNNの流れのイメージ図です。

簡易的に畳み込み層とプーリング層を一層ずつ記載していますが、通常は畳み込み層とプーリング層はセットで複数回繰り返して実行されます。

全結合層に引き渡したのちは、DNNと同様の流れとなります。

6.まとめ

CNNについてなんとなくイメージがつかめましたでしょうか。

本記事では、さらっと理解できることに重点を置きました。

少しでも本記事でCNNについて理解を深めていただければ幸いです。

Delicious にシェア
Pocket
LinkedIn にシェア
LINEで送る