CNN入门必读经典:Visualizing and Understanding Convolutional Networks

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bea_tree/article/details/68954650

本文主要是借助deconvnet来可视化卷积网络,这对于理解卷积网络还是非常重要的,同时本文又是13年ImageNet分类任务的冠军。
代码:
https://github.com/guruucsd/CNN_visualization

1 Deconvolution

首先我们先对Deconvolution有个了解,这里推荐知乎里面的一个回答:
http://zhihu.com/question/43609045/answer/120266511
对于Deconvolution我们可能会称其为反卷积,是因为其正向传播中的计算过程与卷积中反向传播中的过程相似,在实际计算时使用参数的转置
对于卷积和反卷积知乎中的参考资料挺好,有兴趣可以看看:
- https://arxiv.org/pdf/1603.07285.pdf

2 可视化

这里写图片描述

总体的思路就是将某一层的feature maps 经过相反的结构,即如上图所示:
如经过max pooling层那么就在对称位置记住所取位置后,unpooling到响应位置,如经过relu那么在对称位置在经过一次relu,如经过conv那么在对称位置使用相同的Filter的转至进行deconv。
即将可视化的原模型如下图:
这里写图片描述

2.1 Feature Visualiztion

对于给定的feature map选取9个最大的activations,以下给出了经过反卷积投影之后的featuremap及相应的原图。
这里写图片描述
可以看出第二层一般对应边角或者色彩反应
这里写图片描述
第三层对应着纹理,有着更强的不变性
这里写图片描述
第四层有着较多的类别信息,比如狗脸等物体的局部
这里写图片描述
第五层对应着更强的不变性,可以包含物体的整体信息。
放在一起看下图:
这里写图片描述
至于文中的第一层,应该是说的卷积核,feature map应该是一些边缘
这里写图片描述

2.2 特征的学习变化过程

这里写图片描述
上面每层从左到右训练次数为1,2,5,10,20,30,40,64个epoch。
可以看出前几层(lower)收敛较快,后几层收敛较慢。

2.3 feature ivariance

这里写图片描述
上图是对应着图像平移、缩放、旋转给featuremap带来的变化,可以看出第一层中对于图像变化非常敏感,第7层就接近于线性变化,最后的输变化就相对较小了。

2.4 改进结构

下图给出了为什么把11x11改成了7x7,stride 也减小的原因。
这里写图片描述

2.5 occlusion sensitive

这里写图片描述
c是在第5层 响应最高的feature map的projecttion。b是遮挡不同部分得到的feature map,d是遮住不同部分得到的groundtruth所在类的score map,e是 score maps的分类结果。可以看出对于物体的关键部分遮挡之后会极大的影响分类结果。有趣的是第二个和第三个例子中分别是文字和人脸的响应更高,但是却不是关键部分。

2.6 同类部位相关性分析

文章通过遮挡5只狗的左眼,右眼,鼻子等部分,分析不同狗在遮挡相同物体部位时的相关性。
这里写图片描述

可以看出同样是遮挡眼镜、鼻子带来的特征变化要比随机遮挡带来的一致性变化要小,说明相似部位有着内在的一致性。
(个人认为要计算下左眼 右眼 及 鼻子之间交叉的一致性变化)

3 网络结构ablation

这里写图片描述

4 其他

虽然网络结构已经早已被ResNet等网络代替了,可是本文对于网络的可视化,仍然还是值得入门的同学读一读的。

猜你喜欢

转载自blog.csdn.net/bea_tree/article/details/68954650
今日推荐