#目的
畳み込みニューラルネットワークの説明をされているサイトが沢山ある。
勉強になる。
説明の仕方として、CNNの層毎の役割を説明する方法がとられていることがよくある。
色々な解説があるが、一層目ぐらいの説明(エッジとかを抽出している等)は、順調であるが、それ以降の説明がやや飛躍があると感じる。
それを示す。
ちなみに、
下記の「 [C]さらにこちらの図 」の項で引用している内容、
『何にニューロンが反応するか』についての説明を表にすると、
層 | 説明 |
---|---|
1層目 | エッジやブロブ |
3層目 | テクスチャ |
5層目 | 物体のパーツ |
(最後の)全結合層 | 物体のクラス(犬や車など) |
です。あまり納得がいきません。
層毎の役割の説明とは、少し、ずれるのかもしれないが、
CNNがどこに注目しているかを示す手法?であるGrad-CAMの説明は、わりと、素直に聞ける。
→後述の「 [B]こちらの図 」参照。
→Grad-CAMを実際に動かしみると、なんとなく、だんだんいい気がしています。
以下の記事を別途書きました。単に、結果を貼っただけですが。
**見る価値があるかも。。。。
Grad-CAMで、湖畔と谷とマッシュドポテト、構成と質感認識、VGG16の。
特徴強度を図示する手法も、素直に聞けるが、少し、評価手法がシンプルすぎる気がする。
→後述の「 [D]もうひとつ、こちらの画 」参照。
# [A]この画
この図は、非常によく見る画で、実際に、この画のとおりの情報がどこかにあるのだろうと思うが、
層に対応づけるのは、かなり、無理があると素人的には、思う。
(出典:http://web.eecs.umich.edu/~honglak/icml09-ConvolutionalDeepBeliefNetworks.pdf )
[B]こちらの画
こちらの画は、すごく、理解の助けになる。
うまくまとまっていると思う。Grad-CAMという手法。
ただ、これは、『全結合層の成果では?』と思ってしまう。
別にそうでないと記載されているわけでは、ありませんが。。。。
(出典:https://newtechnologylifestyle.net/vgg16networkvisual/ )
[C]さらにこちらの画
関連ページにも、記載しましたが、
Conv3のTextureという説明が、しっくりきません。
(出典:http://vision03.csail.mit.edu/cnn_art/index.html#v_single )
Textureという説明の元ネタは、以下の文献じゃないですかねと教えて頂きました。(コメント欄参照)
Visualizing and Understanding Convolutional Networks
https://arxiv.org/pdf/1311.2901.pdf
Layer 3 has more complex invariances, capturing similar textures (e.g. mesh patterns (Row 1, Col 1); text (R2,C4)).
[D]もうひとつ、こちらの画
特徴強度を図示している。
わかりやすいです。へーなるほどー、と思います。
尚、シンプルに特徴強度を図示しているので、、、かならずしも、網羅した説明にはならない気はします。
(出典: https://hazm.at/mox/machine-learning/computer-vision/keras/intermediate-layers-visualization/index.html )
#まとめ
畳み込みニューラルネットワークの説明が、やや、うまくいっていないというか、少し、意味を付与しすぎな気がするので、それを示した。
単に、素人が、ストンと理解しようとして、理解できない不満を示しているだけであることは認識していますが。
コメントなどあれば、お願いします。
すみません、有意な情報の記載ができていません。別途、改定します。
知りたいことを整理すると、
層を重ねることによりどういう扱いやすい特徴量がどういう形式で獲得され、それが、どううまく全結合層と連携して、物体認識に至っているのか
を知りたいということになると思います。旧来の技術との比較も含め。
#関連(本人)
## 結構関係のある記事
畳み込みニューラルネットワーク(CNN)の説明が、頑張りすぎでは?(MathWorksのdeepDreamImageとかも)
関係のあまりない記事
良書「ゼロから作るDeep Learning -- Pythonで学ぶディープラーニングの理論と実装」を読む
Grad-CAMで、湖畔と谷とマッシュドポテト、構成と質感認識、VGG16の。