ゼロから作るDeepLearning 第七章 前半

画像

畳込み層

畳み込み層は、画像識別のために使う層のこと。

これまでのAffine層などは全結合であるため、次元などの特徴を消してしまう。
そのため、畳み込み層は各チャンネル(RGBなど)ごとに値を畳み込んで計算をする。
これによって、周囲の画素のほうが結びつきが強いなど部分的な特徴を生かした計算ができる。

CNNを作るときは前半がConv-ReRU-Poolingであり、後半はAffienそして、最後にAffine+Softmaxで確率分類を行う。

パディング

畳込みでは、重みがフィルターに値するが
フィルターを掛けると出力サイズが小さくなってしまう。

よって、入力段階で周囲にパディングを入れておこう。

次元保存

畳み込み処理では、$R$チャンネルがあっても、$R$チャンネルのフィルターを用意すると、$1$チャンネルのみになり薄っぺらくなってしまう。

こうすると繰り返しConv処理を行うことができない。

よって、フィルターを$FN$個用意すれば良い。
こうすると出力は$FN{\times}H{\times}W$という入力の形式とおなじになる。

さらに、本来はバッチで流し込むので四次元になる。

プーリング層

プーリングは、関数という感覚に近い。

与えられた入力にたいして、縦や横の長さを小さくする効果がある。

あるウィンドウサイズを用意してそれらのサイズの範囲の入力データのうち、最大値のみを取り出す。

このようにして、ズレを減らしながら重要なデータのみを取り出すことができる。