畳み込みニューラルネットワーク(Convolutional Neural Network;CNN)は、画像認識の手法。
CNNは、畳み込み層、プーリング層、全結合層の3種類のレイヤーから構成されている。

<畳み込み層>
畳み込み層は、入力画像から特徴を抽出する層。
画像にはフィルタという小さな画像をかけ、畳み込み演算を行う。
左の画像に右のフィルターを書ける場合、


フィルターをずらしていく。
フィルターをずらす大きさ=ストライドと呼ぶ。
1つずつずらす場合は、ストライド1。
2つずつずらす場合は、ストライド2。
この例はストライド1。


最終的な特徴マップは以下の通り。

演算結果の集合体として、画像認識に必要な特徴表現を含む特徴マップが新しい画像データとして生成される。
この特徴マップが、次の層への入力データとなる。
通常、出力される特徴マップは元画像より小さくなる。
画像の縮小を防ぎたい場合は、画像の周りを事前に0で埋めるパディングを行う。
パディングは、画像の端にある特徴を抽出しやすくなる利点もある。
例)5×5の画像にパディング1である場合、画像サイズは7×7になる。

<プーリング層>
プーリング層は、入力データをより扱いやすい形に変形するために、重要な特徴を残しつつ画像の情報量を圧縮する役割を持つ。
畳み込み層とプーリング層を交互に使うことで、特徴を検出できるようになる。
<プーリング層によるダウンサンプリング操作の効果>
・物体の些細な位置変化によって、認識結果が変わらないようにする。
・過学習を抑制する。
・計算コストを下げる。
<プーリング層の種類>
・最大プーリング(Max Pooling)
画像の小領域ごとに最大の画素数だけを残す。
・平均プーリング(Average Pooling)
画像の小領域中の平均値だけを残す。
<全結合層>
出力層の手前にある全結合層は、一般的な多層パーセプトロンと同じ構造で、各層のニューロンが次の層のすべてのニューロンとつながっている。
畳み込み層やプーリング層から出力される画像形式のデータを全結合層に入力する前に、一次元ベクトルにフラット化する必要がある。
全結合層は、抽出された特徴に基づいて分類の結果を出す分類期の役割といえる。
(畳み込み層・プーリング層は、画像の特徴抽出器の役割。)
<特徴マップのサイズ計算>
特徴マップの高さ=
入力画像の高さ+パディング×2-フィルターの高さ÷ストライドの高さ+1
特徴マップの幅=
入力画像の幅+パディング×2-フィルターの高さ÷ストライドの幅+1
<有名なCNNアーキテクチャ>
・LeNet
・AlexNet
・VGG
・GoogLeNet
・ResNet
・EfficientNet
・RegNet
CNNは、畳み込み層、プーリング層、全結合層の3種類のレイヤーから構成されている。

<畳み込み層>
畳み込み層は、入力画像から特徴を抽出する層。
画像にはフィルタという小さな画像をかけ、畳み込み演算を行う。
左の画像に右のフィルターを書ける場合、


フィルターをずらしていく。
フィルターをずらす大きさ=ストライドと呼ぶ。
1つずつずらす場合は、ストライド1。
2つずつずらす場合は、ストライド2。
この例はストライド1。


最終的な特徴マップは以下の通り。

演算結果の集合体として、画像認識に必要な特徴表現を含む特徴マップが新しい画像データとして生成される。
この特徴マップが、次の層への入力データとなる。
通常、出力される特徴マップは元画像より小さくなる。
画像の縮小を防ぎたい場合は、画像の周りを事前に0で埋めるパディングを行う。
パディングは、画像の端にある特徴を抽出しやすくなる利点もある。
例)5×5の画像にパディング1である場合、画像サイズは7×7になる。

<プーリング層>
プーリング層は、入力データをより扱いやすい形に変形するために、重要な特徴を残しつつ画像の情報量を圧縮する役割を持つ。
畳み込み層とプーリング層を交互に使うことで、特徴を検出できるようになる。
<プーリング層によるダウンサンプリング操作の効果>
・物体の些細な位置変化によって、認識結果が変わらないようにする。
・過学習を抑制する。
・計算コストを下げる。
<プーリング層の種類>
・最大プーリング(Max Pooling)
画像の小領域ごとに最大の画素数だけを残す。
・平均プーリング(Average Pooling)
画像の小領域中の平均値だけを残す。
<全結合層>
出力層の手前にある全結合層は、一般的な多層パーセプトロンと同じ構造で、各層のニューロンが次の層のすべてのニューロンとつながっている。
畳み込み層やプーリング層から出力される画像形式のデータを全結合層に入力する前に、一次元ベクトルにフラット化する必要がある。
全結合層は、抽出された特徴に基づいて分類の結果を出す分類期の役割といえる。
(畳み込み層・プーリング層は、画像の特徴抽出器の役割。)
<特徴マップのサイズ計算>
特徴マップの高さ=
入力画像の高さ+パディング×2-フィルターの高さ÷ストライドの高さ+1
特徴マップの幅=
入力画像の幅+パディング×2-フィルターの高さ÷ストライドの幅+1
<有名なCNNアーキテクチャ>
・LeNet
・AlexNet
・VGG
・GoogLeNet
・ResNet
・EfficientNet
・RegNet