従来のコンボリューションニューラルネットワークをもう少し細かく見てみましょう。まず画像のピクセル数に応じた数の入力層があり、そこから全結合で人工ニューロンと活性化関数がペアになった層に繋がっていて、このペアの層を幾度か通して、最終的に最後の活性化関数(SoftMax)の層に繋がっていました。活性化関数は例えばtanhという関数であれば出力する値を-1から+1の範囲に収め、出力層にある最後の活性化関数(SoftMax)の層では最終的に出力する確率の値を合計して100%になるように正規化していました。これに対して、コンボリューションニューラルネットワークでは、与えられた画像をコンボリューション層とpooling層と活性化関数の層が一つになった層に幾度か通されて、最後は普通のニューラルネットワークと同じ全結合層を通して、最後の活性化関数(SoftMax)の層に渡され、結果が出力されます。Nvidiaが公開している畳み込みニューラルネットワークの構造を表す画像がこちらです。 Convolutional Neural Network – What Is It and Why Does It Matter? (nvidia.com) ここでキーとなるコンボリューション層とpoolingはそれぞれ、画像フィルターと画像圧縮の工程に似ていると感じます。コンボリューション層では画像にいくつかのフィルターを掛けてそれぞれのフィルターごとに画像が出力されます。このフィルターのことをカーネルと言います。この層を通してフィルターと同じ枚数のそれぞれ異なる画像が出力されます。説明の画像を見てわかる通り、最初の画像からいくつかの画像が生成されています。この画像に次はpoolingと呼ばれる処理を行います。このpoolingとはダウンサンプリングとも呼ばれ、画像のサイズを小さくします。このpoolingにも様々な方式があり、隣接する画素の最大値を圧縮後の画像の1画素にするmaxpoolingや、平均を取るaveragepoolingと呼ばれるものもあります。このコンボリューションとプーリングはそれぞれ特徴抽出と局所ごとに特徴をまとめあげるという役割を持っています。そしてこのコンボリューションニューラルネットワークでもtanhのような活性化関数を通して、次の層へと渡されます。この3つの層を幾度か通すと、最後に普通のニューラルネットワークと同じ全結合層と最後の活性化関数(SoftMax)の層に渡されて、正規化されたものが出力されます。これを一連の流れとしてコンボリューションニューラルネットワークは構築されます。
参考図書の選定も纏め方も素晴らしいね!!
ありがとうございます!とても嬉しいですー!