CNN(Convolutional Neural Network:畳み込みニューラルネットワーク)は、畳み込み層とプーリング層をもつニューラルネットワークです。ニューラルネットワークとは、脳の神経回路を模した数理モデルであり、入力値に対して出力を返します。CNNはニューラルネットワークの中でも古典的なフィルタリング処理に着想を得ており、画像から特徴量を抽出するために効果的なモデルです。畳み込むためのフィルタをカーネルと呼びます。
CNNは,主に以下の3つで構成されています。
畳み込み層とは、画像上に小領域(フィルタ)を設け、1つの特徴量として圧縮(=畳み込み)する工程を画像上をスライドしながら繰り返すことによりできた層のことを指します。このフィルタをReLU等の活性化関数で繋ぐことで、CNNが構築されます。畳み込み層があることで、点ではなく領域ごとに特徴抽出をすることができ、通常のニューラルネットワークよりも精度の高い判定ができます。
プーリング層とは、画像上に小領域(フィルタ)を設け、その枠内のデータに演算を行うことによりできた層のことを指します。CNNでは主に、枠内に存在する数値のうち、最も高い数値を特徴量として演算するMAXプーリングや、平均値を採用する平均値プーリングを行います。
全結合層は、畳み込み演算やプーリング演算で抽出した特徴量を受け取って、特徴量で分類を行うために利用されます。また,全結合層の最後にSoftmax層を追加することにより、クラスごとの出力値の合計を1にできるため、出力結果を確率とみなして得ることができるようになります。