1-04 畳み込み4層+全結合2層で認識

●カーネルをずらしながら積和する畳み込み

 画像から
3×3の画素データを取り出し、3×3のフィルタ係数(カーネルと呼ぶ)との積和をとります。
 その処理を図1-31のように、画像の左上から右下にかけて、3×3のエリアをずらしながら続けます。この一連の所作を「
畳み込み」といいます。

 また同図では30×30画素の入力に対して畳み込みしていますが、カーネルの動く範囲は28×28なので、その出力は28×28画素になります。

図1-31 画像における畳み込み。カーネルは3x3

●畳み込みニューラルネットワーク(CNN)

 ニューラルネットワークの前半をこのような「畳み込み層」とすれば、「画素データの2次元的な形状」を推論に反映させることができ、正解率の向上が望めそうです(*1)。このような手法を「畳み込みニューラルネットワーク, Convolutional Neural Network, CNN」といいます。


(*1)本企画では前半の4層を畳み込み、後半の2層を全結合のニューラルネットワークとする。全てを全結合型にするよりも正解率が改善する。全結合型NNはこのように単純な行列乗算からなる。


●白黒なら入力は1chだが・・・

 カラー画像を扱うのなら、図1‐32のように入力はRGBの
3chになります。それぞれの入力に対してカーネルが存在し、積和演算が行われます。さらにそれら3つの結果を足し込んで出力画像1chを計算します。

図1-32 入力3chをそれぞれ積和して足し込む

●出力は16chに増える

 本企画のCNNの1層目は出力が16chあります。それぞれの出力に対してもカーネルが存在するので、カーネル数は図1‐33のように入力3ch×出力16ch=48個になります(*2)。

(*2)係数の数としては、その9倍の432個になる。


図1-33
行方向は入力にかかる係数、列方向は出力を計算するための係数

CNNの1層目の仕様は次のようになります。

 入力: 30×30画素、3ch
 出力: 28×28画素、16ch
 係数: 3×16×9=432個


次のページへ


目次へ戻る