Edited at

畳み込みニューラルネットワークとは〜Convolution編〜

More than 1 year has passed since last update.

CNNにおける,畳み込み(Convolution)について書いていきます.


Convolution

ニューラルネットワークの特徴は,人間が指定しなくとも特徴を見つけてくれることです.では,その特徴をどのように使って画像同士を比較したらよいのでしょうか?

例えばバツは次の特徴を持っています.

cross_4.png

ここで,このピクセルは白か黒なので,白を-1,黒を1とします.するとバツの画像は

cross_5.png

特徴は

cross_6.png

と,表現することができます.

ここで,

cross_4.png

この部分を比較計算してみます.

対応するセル同士を計算します.

つまり,

合致すれば

1(黒) × 1(黒) = 1

1(白) × 1(白) = 1

1になり,

合致しなければ

-1(白) × 1(黒) = -1

1(黒) × -1(白) = -1

-1になります.

計算した結果を表現すると,

cross_8.png

最終的にそれぞれのセルの値を足したものをピクセルで割ります.つまり,合致すればするほど値が1に近づきます.

この場合,完全合致なので1です.

この一連の演算を「畳み込み演算」といいます.

今回の場合,画像のセルが9×9マス,特徴が4×4マスなので,パーツを1マスずつずらしくいくと,その計算結果は6×6マスになります.(計算結果はでたらめなので信用しないでください)

cross_10.png

こうして得られたものを特徴マップといいます.

こうして画像がどれだけ特徴をもっているのかを数値的に測ることができます.

この演算自体はとても単純なものです.しかし,これが9×9の荒い画質ではなく,標準的な画質の画像となったとき,その計算量は膨大なものになります.GPUを使わないと学習にかかる時間が大変なことになるのはこのためです.


おわりに

次は,Rectified Linear Unitsについて,書きます.


参考

山下隆義

イラストでわかるディープラーニング 講談社

斎藤康毅

ゼロから作るDeep Learning

畳み込みニューラルネットワークの仕組み

http://postd.cc/how-do-convolutional-neural-networks-work/