《Visualizing and Understanding Convolutional Networks》明晰论文脉络
《Visualizing and Understanding Convolutional Networks》明晰论文脉络
1 Why
文章介绍了虽然神经网络在许多图像识别领域都有很大的进步,但是模型为什么且怎么起作用,人们并不真正理解,模型的开发只能用试错的方式进行。
2 What
所以作者提出了用可视化的方式来揭示模型每一层特征对于输入的响应,从而理解卷积神经网络起作用的方式,并且能进一步根据可视化的结果对网络结构进行调整、改进模型,提高分类效果。本文使用的可视化方法是原文作者之前发表的deconvolution方法,在图片相关的领域经常会遇到这个算法,比如图片语义分割、图片去模糊、可视化、图片无监督学习、图片深度估计等等。但是本篇论文的重点在于可视化结果的分析,而不是可视化的方法。
3 How
整个可视化的过程可表示为下图,通过反卷积、反池化、反**的方式来可视化,可视化的具体操作可参考以下2篇论文:《Deconvolutional Networks》
《Adaptive deconvolutional networks for mid and high level feature learning》
3.1 反池化过程
我们知道,池化是不可逆的过程,然而我们可以通过记录池化过程中,最大**值得坐标位置。然后在反池化的时候,只把池化过程中最大**值所在的位置坐标的值**,其它的值置为0,当然这个过程只是一种近似,因为我们在池化的过程中,除了最大值所在的位置,其它的值也是不为0的。
3.2 反**
我们在CNN中,relu函数是用于保证每层输出的**值都是正数,因此对于反向过程,我们同样需要保证每层的特征图为正值,也就是说这个反**过程和**过程没有什么差别,都是直接采用relu函数。
3.3 反卷积
我们使用了一种新的方式将这些**值映射回输入像素空间。卷积核即为原卷积核的转置,反卷积网络被提出作为一种进行非监督学习的方法,但是在这里,它没有学习能力,仅仅用来探测一个已经训练好的卷积神经网络。
4 Result
4.1 Feature Visualization
特征具有层次性,每层特征对输入的不同结构的响应,解释了输入变形不变性,层次越深,响应的结构越能分辨图像。
比如要我们区分人脸和狗头,那么通过CNN学习后,背景部位的**度基本很少,我们通过可视化就可以看到我们提取到的特征忽视了背景,而是把关键的信息给提取出来了。从layer 1、layer 2学习到的特征基本上是颜色、边缘等低层特征;layer 3则开始稍微变得复杂,学习到的是纹理特征,比如上面的一些网格纹理;layer 4学习到的则是比较有区别性的特征,比如狗头;layer 5学习到的则是完整的,具有辨别性关键特征。
4.2 Feature Evolution during Training
越低层,特征图对特征的响应越快收敛稳定。训练过程中的特征演变,对于一个layer中给定的feature map,图中给出在训练epochs在[1,2,5,10,20,30,40,64]时,训练集对该feature map响应最大的可视化图片。可以看出,较低层(L1,L2)只需要几个epochs就可以完全收敛,而高层(L5)则需要很多次迭代,需要让模型完全收敛之后。这一点正好与深层网络的梯度弥散现象正好相反,但是这种底层先收敛,然后高层再收敛的现象也很符合直观。
4.3 Architecture Selection
通过可视化已经训练好的模型,可以发现以往模型提取到的各层特征不合理的地方,对模型的结构进行改造可以是各层提取到的特征更合理,且提高准确率。比如上图通过可视化AlexNet的前两层(图中b,d),可以看出问题:1)第一层filter是非常高频和低频的信息,中间频率的filter很少覆盖;2)第二层的可视化有些具有混叠效应,由于第一层比较大的stride。为了解决这些问题:1)将第一层的filter的尺寸从1111减到77;2)缩小间隔,从4变为2。这两个改动形成的新结构,获取了更多的信息,而且提升了分类准确率。
4.4 Occlusion Sensitivity
当遮挡图片中的部分主体时,模型的高层特征的可视化结果会变得不好,而且分类准确率会下降,所以证明卷积神经网络在分类时更关注的图片的主体而不是周围的物体。
4.5 train imagenet
通过可视化结果分析后改变了AlexNet的结构,使得分类结果有了提升。
4.6 Feature Generalization
固定1-7层特征,只训练一个softmax分类器,将用ImageNet训练到的模型用来训练Caltech-101 [9], Caltech-256 [11]and PASCAL VOC 2012等数据集,实验结果表明模型学习到的是图片的共性特征,可以在不同数据集之间迁移。
4.7 Feature Analysis
层次越深,学习到的特征对分类越有用
5 Idea
- 1 文章从可视化特征的角度解释了卷积神经网络起作用的方式,特征的层次性,以及模型深度的必要性,而且还能进一步根据可视化的结果分析来调整网络的结果使得分类效果提升。
- 2 从文章的内容看,基本上只能分成5类层次特征,如果更深的模型,那特征可视化的结果就可能不是很明确的结构了。
6 Relatives
这是一篇发表于2014年ECCV上的经典论文,目前的引用量已有几千,作者Matthew D. Zeiler在反卷积可视化上做了很大贡献,先后发表多篇有关反卷积的paper。