Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

画像が比較したい!

例えば,次の画像があったとします.
cross.png
ピクセルでバツを表現しています.
バツですね.

では,次の画像はどうでしょうか?

cross_2.png

バツと言えないこともありません.まあバツです.では,これをコンピュータにわかってもらうためにはどうしたらいいのでしょうか?

そこで,畳み込みニューラルネットワークの出番です.

畳み込み演算とは?

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

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

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を使わないと学習にかかる時間が大変なことになるのはこのためです.

おわりに

今回は畳み込みとはどういったことか書きました.
まだ私も理解が浅いため,間違ったことを書いていたらご指摘ください.

参考

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

斎藤康毅
ゼロから作るDeep Learning

畳み込みニューラルネットワークの仕組み
http://postd.cc/how-do-convolutional-neural-networks-work/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした