PDF版本下载:
http://download.csdn.net/detail/zcy0xy/9739878
Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps
摘要
本文提出了图像分类的可视化模型,这一模型使用了深度卷积网络(Convnet)。基于分别计算分类得分的梯度,我们考虑了两种可视化技术:第一种生成了一张图可以最大化图像分类的得分,由Convnet捕获。第二种对于给定的图片和类,计算其显著性图。我们的研究表明,这种显著图可以用在弱监督目标分割上(使用卷积网络)。最后,我们建立了基于梯度的卷积网络与反卷积神经网络的联系。
一、介绍
随着Convnet现在被用来构建大规模图像识别,理解Convnet内部的视觉表现,模型内部结构变得越来越重要,本文就聚焦于此,认真探讨了这个课题。以前的研究中,Erhan通过寻找一张可以最大化神经元激励活动的输入图像来实现可视化。这一方法被用于可视化非监督深度体系结构,比如深信服网络Deep Belief Network,后来又被李等人用于探究深度非监督自编码分类模型的内部结构。最近,Zeiler提出要把Convnet也给可视化了。针对卷积层的可视化,他们提出了反卷积网络结构,其目的是为了根据输出重建每一层的输入。
在本文中,我们提出了深度图像分类Convnet的可视化,这一网络的数据集是大型ImageNet挑战数据集。最后,我们就做了三件小事,很惭愧。第一个是我们论证了对输入图像进行数值优化,可以获得卷积分类模型的可视化结果。注意,在我们的实验中,网络训练是有监督的,因为这样我们才能知道在会后的全连接层中,哪个神经元应该被设置到最大来可视化感兴趣类。据我们所知,我们是第一个使用这一方法来可视化ImageNet分类卷积网络的人,我们老高兴了。第二个是我们提出了一种在给定图像(特定图像的类显著图)里计算给定类的空间支持的方法,方法采用了一个单层BP传播Convnet。在3.2中我们也说了,这样的显著图可以被用与弱监督目标定位。第三,在第4部分,我们展示了基于梯度的可视化方法推广到了反卷积网络重构中。
Convnet实现的一些细节
我们的可视化实验使用一个单层深度Convnet,数据集是ILSVRC-2013,包含了1.2M张图片,被分成1000各类别。
二、分类模型可视化
这一部分描述了一种可视化分类模型的技术,是通过图像分类Convnet来学习的。给定一个分类Convnet和感兴趣的类,可视化的方法包括数值生成一幅图像。
具体而言,令Sc(I)为分类C的得分,得分由一幅图片I在Convnet的分类层计算得来。我们需要找到L2规则化图像,使得Sc尽可能的高。
其中lamda是归一化参数,局部最优的I可以通过BP方法得到。这一过程与Convnet的训练步骤相关联,该步骤中BP被用于最优化层的权重。不同的是,在我们的实验中最优化是根据输入图像来确定的,并且在训练阶段权值被固定。我们用全0图像来初始化优化过程,然后把训练集平均图像加入到结果中。几个类的分类模型可视化展示在fig1中
值得注意的是,我们使用了分类得分Sc,而不是soft-max层返回的分类后摇(posterior)
原因是可以通过最小化分类得分来最大化分类后摇(posterior)。因而我们最优化Sc来确保优化仅仅集中在针对c的类。我们也尝试了最优化后摇Pc,但是结果并不好,这证明了我们的想法。
三、特定图像类的显著图
在这一部分,我们阐述了在给定图像中一个分类Convnet是怎么跟特定类的空间支持联系的。给定图像I0,类c,以及分类有着分类得分函数Sc(I)的Convnet,我们会根据I0中各个像素的得分来对他们排序。我们从一个激励的例子开始,考虑类c的线性分类模型
图像I被表示成矢量形式,wc和bc分别是模型中的权重值和偏移值。在本例中,显然元素w的大小定义了其对应像素I在分类c上的重要性。在深度Convnet的例子中,分类得分Sc(I)是一个I的非线性函数,所以前面的推理不能马上应用过来。然而,给定一幅图像I0,我们可以通过计算第一级泰勒级数把Sc(I)近似成一个I0邻域的线性方程
W是Sc在点I0相对于图像I的导数
另一种使用分类得分导数计算特定图像分类显著图的解释是:导数的大小表示了为了尽可能影响得分哪一个像素需要被改变。谁都知道像素对应于图像中的目标位置。我们注意到一个相似的技术已经被应用到贝叶斯语境分类上了。
3.1 分类显著图提取
给定图像I0与类c,显著图M2是这样计算的:首先,导数w 通过BP来求出;接下来,重新排列矢量w的元素获得显著图;在灰度图中,w元素的个数等于I0中的像素个数,所以显著图可以如下计算:
H(i j)是w中元素的坐标,对应于第i行第j列。在多通道图中,假设(i, j)像素的颜色通道c对应于w的元素中的h(I,j,c)。为了在像素点(i,j)上对某个类求导,我们令w为各个颜色通道上最大的那个
注意,显著图使用分类ConvNet训练图像标签得到的,除此之外的信息都不需要(比如图像分类中的目标的范围的框子)。对特定图像制定类的显著图的计算非常的快,因为他仅仅需要一个BP传播。
我们在随机测试数据集上按照得分最高的类可视化显著图fig2.与ConvNet分类步骤类似,分类预测在10个裁剪子图上计算出来,我们计算10个子图集的显著图,然后求平均。
3.2 弱监督目标定位
给定图像给定类,弱监督分类显著图可以编码目标的位置,因此可以被用于目标定位。我们再次简要地描述了一个简单的目标定位步骤,我们用它来完成ILSVRC-2013挑战数据集的定位任务。
给定图像和相应的类显著图,我们使用GraphCut颜色分割来计算出目标分割的边缘。这么用的灵感是来自于这样一个事实:显著图可能只能捕获最为目标中discriminative的部分,所以显著图的阈值可能不能把整个目标都标出来。所以,需要根据最显著的那部分区域,延伸到目标的整体区域,我们准备通过颜色连续性来实现这一点。前景色和背景色模型按照高斯混合模型设置好。前景模型阈值设置为整幅图片显著性的95%;背景色设置为整幅图最小的30%显著性(下图的右中)。使用公开的算法实现GraphCut分割。一旦前景和背景的图像像素标签被计算完毕,目标分割的边缘被设置为前景像素的最大连通域(下图的右边)。
我们把我们的目标定位方法输入到ILSVRC-2013定位挑战数据集。考虑到数据集需要输出目标边框,我们计算了目标边框的矩形框。这样的步骤重复执行在预测最高的5个分类上。方法取得了46.4%错误率在ILSVRC-2013测试数据集上。注意这里是弱监督方法,而且目标定位任务没有被考虑进去。尽管进行了简化,这一方法的成果依然比ILSVRC-2012 challenge数据集上执行的50%错误率要低,那时候采用的是基于部分模型和Fisher矢量特征编码的全监督算法。
4 与反卷积网络的关系
在这一部分,我们建立了基于梯度的可视化方法以及反卷积结构。像下面我们所展示的,n层基于DeconvNet的重建的输入Xn与计算可视化神经元激励函数f相对于Xn的导数类似,所以DeconvNet实际上对应于通过ConvNet的梯度BP。
这几段介绍了卷积层,RELU修正层,max-pooling层的导数计算。
我们得出结论:除了RELU层,使用DeconvNet来计算近似特征图重构Rn,与使用BP计算@f/@Xn相似,这是我们可视化算法的一部分。所以,基于梯度的可视化可以被看做一种归纳,因为基于梯度的技术可以被用于任何层活动的可视化,不仅仅是卷积层。特别的是,在本文中,我们在最后的全连接层可视化了分类得分神经元。
注意,我们的类模型可视化描述了类的概念,这个类指的是ConvNet所分的类,而不是任何特定图片。同时,类显著可视化是image-specific的,从这个意义上来说,它跟image-specific卷积层可视化是有联系的。
5 结论
在本文中,我们展示了2中深度分类ConvNets的可视化技术。第一个是产生一个人工图像,该图像代表了感兴趣的类。第二个是计算image-specific类显著图,根据给定的类标明给定图像的高亮区域。我们展示了这样的显著图可以被用于初始化GraphCutbased目标分类,而不需要训练分割或检测出目标。最后,我们论述了基于梯度的可视化技术推广反卷积重构步骤。