【论文翻译】Visualizing and Understanding Convolutional Networks

时间:2024-03-31 13:25:25

【论文翻译】Visualizing and Understanding Convolutional Networks

【原文链接】https://arxiv.org/pdf/1311.2901.pdf

【翻译时间】2018.09.05

【论文翻译】Visualizing and Understanding Convolutional Networks

       题目:可视化和理解卷积网络

 

 

2. Approach

 

  我们在整个论文中使用了标准的完全监督的ConvNet模型(Le村等人,1989年)和(Krizhevsky等人,2012年)。这些模型经由一系列层将彩色2d输入图像xi映射到c个不同类别上的概率向量yi。每个层包括(1)前一层输出的卷积(或者,对于第一层,输入图像)与一组学习滤波器组成;(2)通过修正的线性函数(relu(X)=max(x,0)传递响应;(3)[可选地]最大池化(在本地社区)和(4)[可选]局部对比操作,该操作使跨特征图的响应归一化(normalizes)。有关这些操作的更多细节,请参见(KRiZevSkyet等人,2012)和(贾勒特等人,2009)。网络的最高几层层是完全连通的网络(l全连接层),最后一层是Softmax分类器。图3展示了我们在许多实验中使用的模型。

 

【论文翻译】Visualizing and Understanding Convolutional Networks

 

       我们使用大量的N标记图像{x,y}来训练这些模型,其中标号yi是一个表示真实类的离散变量,并使用一个适合于图像分类的交叉熵损失函数来进行比较ˆy i和y i。网络参数(卷积层中的参数(filter))、全连通层中的权矩阵和偏差)通过反向传播网络参数的导数和通过随机梯度下降( stochastic gradient descent)更新参数来训练,第三节(Section3)给出了训练的全部细节。

 

  • 2.1. Visualization with a Deconvnet  

 

         理解ConvNet的操作需要对中间层中的特性活动进行深入分析。我们提出了一种将这些活动映射回输入像素空间的新方法,显示了什么输入模式最初在特征映射中导致了给定的**。我们用反卷积网络(反卷积网)来实现这种映射(Zeiler等人,2011年)。deconvnet可以被认为是使用相同组件(过滤、池)但相反的convnet模型,因此跟将像素映射到特征相反。在(Zeiler等人,2011年)中,反网络被提议作为一种进行无监督学习的方式。在这里,它们不用于任何学习能力,就像对已经训练过的ConvNet的探测一样。为了检查ConvNet,将一个deconvnet附加到其各层,如图所示1(TOP),他提供一个连续的路径返回图像像素。首先,向ConvNet显示一个输入映像,并在整个层中计算特征。为了检查给定的ConvNet**,我们将该层中的所有其他**设置为零,并将特征映射作为输入传递到附加的反网络层。然后,我们依次(I)unpool,(Ii)校正和(Iii)filter,以重建引起所选**的下层的活动。然后重复此操作,直到到达输入像素空间。

       Unpooling:在ConvNet中,最大池操作是不可逆的,但是我们可以通过在一组开关变量中记录每个池区域内最大值的位置来获得近似的逆。在反置网中,解池操作使用这些开关将从上面层的重构放置到适当的位置,从而保持刺激的结构。

      Rectification:ConvNet使用了relu非线性,从而修正了特征映射,从而确保了特征映射始终是正的。为了在每一层得到有效的特征重构(也应该是正的),我们将重建信号通过一个非线性relu(a relu non-linearity。      

      Filtering:ConvNet:使用学习的过滤器从上一层卷积特征能映射( convolve the feature maps )。为了反转这个过程,deconvnet使用相同过滤器的转置版本,但应用于校正映射( the rectified maps),而不是下面层的输出。实际上,这意味着垂直和水平地翻转每个过滤器。

      从较高层向下使用由ConvNet中的最大池在上升过程中生成的开关设置。由于这些开关设置对于给定的输入图像是特殊的,因此从单个**获得的重构类似于原始输入图像的一小部分,并且根据其对特征**的贡献对结构进行加权。由于模型是经过鉴别训练的,因此它们隐式地显示了输入图像的哪一部分是区分性的。请注意,这些预测不是来自模型的样本,因为没有涉及生成过程。

    【论文翻译】Visualizing and Understanding Convolutional Networks

 

 3. Training Details

       我们现在描述将在第4节中可视化的大型ConvNet模型。它的结构,如图3所示,类似于用于ImageNet分类的方法(Krizhevsky等人,2012年)。一个不同之处是,Krizhevsky的Layer-ers 3,4,5(由于模型被分割成两个GPU)中使用的稀疏连接在我们的模型中被替换为密集连接。与第1层和第2层有关的其他重要差异是在检查了图6中的可视化之后做出的,正如第4.1节所述。该模型在ImageNet 2012培训集上进行了培训(130万张图像,分布在1000个不同类别)。对每幅rgb图像进行预处理,将最小尺寸调整为256,裁剪中心256 x256区域,减去每像素平均(所有图像),然后使用大小为224x224的10种不同的子作物(角+中心为(外)水平翻转)。小批量大小为128的随机梯度下降被用来更新参数,开始的学习率为10^−2,连同一个动量项0.9。当验证误差稳定时,我们对整个训练过程中的学习速率进行退火处理(anneal)。Dropout(Hinton等人,2012年)在完全相关层(6和7)中使用,速率为0.5。所有权重初始化为10^−2,偏差设置为0。

      在训练过程中,第一层滤波器的可视化揭示了它们中的少数层占主导地位,如图6(a)所示。为了解决这一问题,我们将卷积层中的每一个滤波器重新归一(renormalize),其均方根值超过固定半径10^−1到这个固定半径。这一点至关重要,特别是在模型的第一层,输入图像大致在[-128,128]范围内。正如在(Krizhevsky等人,2012年),我们生产多个不同的裁剪(crops)和翻转的每个训练例子,以提高培训集的规模。我们在70个时代(epochs)之后停止了训练,在一个gtx 580 GPU上花费了大约12天的时间,使用了一个基于(Krizhevsky等人,2012年)的实现。

 

4. Convnet Visualization

 

       使用第3节中描述的模型,我们现在使用deconvnet来可视化ImageNet验证集上的功能**。

       Feature Visualization:图2在完成训练后,从我们的模型中显示特征可视化。然而,我们没有显示给定特征图的单一最强**,而是显示前9种**。将特征图分别投影到像素空间,会显示激发给定特征映射的不同结构,从而显示其对输入变形的不变性。在这些可视化的同时,我们显示了相应的图像补丁。这些比可视化有更大的变化,因为后者只关注每个补丁中的鉴别(discriminant)结构。例如,在第5层第1行和第2列中,补丁似乎没有什么共同之处,但是可视化显示,这个特定的特征映射聚焦于背景中的草,而不是前景对象。

             【论文翻译】Visualizing and Understanding Convolutional Networks    

              【论文翻译】Visualizing and Understanding Convolutional Networks

 

【论文翻译】Visualizing and Understanding Convolutional Networks

                 每个层的投影显示了网络中特征的分层性质。第二层响应角和其他边缘/颜色连接。第三层具有更复杂的不变性,捕捉相似的纹理(例如,网格模式(第1行、第1列); text(R2,C4)).第4层显示出明显的变化,但更多的是特定于类的:如: dog faces (R1,C1); bird’s legs(R4,C2).第五层显示了具有显著姿态变化的整个物体,如 keyboards (R1,C11) and dogs (R4).

 

               Feature Evolution during Training(训练过程中的特征演进):图4可视化在训练过程中最强烈的**(所有的训练例子)在一个给定的特征图投影回像素空间内的进展。外观的突然跳跃是由最强烈的**来源的图像的变化造成的。模型的较下层可以看到在几个时代(epochs)内会聚(收敛)在一起。然而,上层只是在相当多的时代(40-50年)之后才发展起来的,这表明有必要让模型训练直到完全融合。

 

【论文翻译】Visualizing and Understanding Convolutional Networks

      图4.通过训练随机选择模型特征子集的演化。每个层的特征都显示在不同的块中,在每个块中,我们显示了一个随机选择的特征子集[1,2,5,10,20,30,40,64]。可视化显示了对给定特征映射的最强**(在所有训练示例中),使用我们的deconvnet方法将其投影到像素空间。色彩对比是人工增强的,最好以电子形式观看。

 

       Feature Invariance(特征不变性):图5显示了5个样本图像被翻译,旋转和缩放的不同程度,同时从模型的顶部和底层的特征向量的变化,相对于未转换的特征。小的变换在模型的第一层有很大的影响,但在最上面的特征层的影响较小,是拟线性的。网络输出稳定相对于平移和缩放。通常,除了具有旋转对称性的物体外,输出不受旋转的影响(e.g. entertainment center)。

 

      【论文翻译】Visualizing and Understanding Convolutional Networks

 

          图5.分析模型中的垂直平移、尺度和旋转不变性(分别对应行A-C)。COL 1:5个正在进行评议的示例映像。 Col 2 & 3:第1层和第7层中原始图像和变换图像的特征向量之间的欧几里德距              离。Col 4:当图像被转换时,每个图像的真实标签的概率。

 

  • 4.1.架构选择

     

    虽然对经过训练的模型进行可视化可以洞察它的操作,但它也可以首先帮助选择好的体系结构。通过可视化Krizhevsky等人的建筑的第一层和第二层(图6b&d),各种问题是显而易见的。第一层滤波器是极高和低频信息的混合,中间频率的覆盖范围很小。此外,第二层可视化显示了由第一层卷积中使用的大步长4造成的混叠伪影。为了解决这些问题,我们(一)将第一层滤光片的尺寸从11x11减小到7x7,(Ii)使第2层而不是第4层的滤波器跨出一大步。这个新的架构在第一层和第二层中保留了更多的信息,如图 6(c) & (e)所示。更重要的是,它还提高了5.1节所示的分类性能。

                       【论文翻译】Visualizing and Understanding Convolutional Networks

                               Figure 6. (a):第一层特征没有特征尺寸裁剪(scale clipping)。请注意,有一个特性占主导地位。(b)第一层特征来自(Krizhevsky等人,2012年)。(c)我们的第一层特征,较小的步幅(2vs4)和过滤器的大小(7x7vs11x11)导致更明显的特征和更少的“死”特征。(d)第二层特征的可视化(Krizhevsky等人,2012年)(e)我们的第二层特性的可视化。这些是干净的,没有在(d)中可见的混叠的工件

 

  • 4.2遮挡敏感性

 

    使用图像分类方法,一个自然的问题是模型是否真正地识别了目标在图像中的位置,或者仅仅使用了周围的上下文。图7试图通过系统地将输入图像的不同部分用灰色方遮挡并监视分类器的输出来回答这个问题。这些例子清楚地表明,模型是在场景中定位对象,当对象被遮挡时,正确类的概率明显下降。图7还显示了顶部卷积层最强大的特征图的可视化,以及该特征图中的**(对空间位置的总和)作为遮挡位置的函数。当遮挡器覆盖可视化中出现的即时区域时,我们会看到特征图中的**大幅下降。这表明可视化真正对应于刺激该特征映射的即时结构,从而验证了图中4&2所示的其他可视化。

                        【论文翻译】Visualizing and Understanding Convolutional Networks

                     【论文翻译】Visualizing and Understanding Convolutional Networks

                          图7.三个测试示例,其中我们系统地用灰色方块(第1列)掩盖场景的不同部分,并查看顶部(第5层)特征映射(b)&(c))和分类器输出(d)&(e)。(b)对于灰度的每个位置,我们在一个5层特征图(未遮挡图像中响应最强的一个)中记 录总**情况。(c)将此特征映射到输入图像(黑色方格)中的可视化,以及从其他图像中对此地图的可视化。第一行的例子显示最强大的特征是狗的脸。当这被掩盖时,特征图中的**会减少(b中的蓝色区域)。(d)一个正确的分类概率的图,作为灰色方格位置的函数。例如,当狗的脸被遮住时, 判别为“pomeranian”的概率显著下降。(e)最有可能的标签是遮挡器位置( occluder position)的函数。例如,在第一排,大部分位置都是“pomeranian”,但如果狗的脸被遮住了,而不是球,那么它就会预测“网球”。在第二个例子中,第5层的文本是最强的特征,但分类器对轮对最敏感。第三个例子包含多个对象。(e)第5层中最强的特征可以识别人脸,但是分类器对狗很敏感(D)中的蓝色区域),因为它使用多个特征映射。

 

  • 4.3. Correspondence Analysis(对应分析

      深度模型不同于现有的许多识别算法,因为没有明确的机制来建立不同图像中特定目标部分之间的对应关系(例如,人脸具有特定的眼睛和鼻子的空间配置)。然而,一个有趣的可能性是,深层模型可能隐含地计算它们。为了探索这一点,我们采取了5张随机抽取的狗正面姿势的图像,并系统地遮住了每个图像中相同的部分(例如,所有的左眼,见图8。对于每个图像I,我们计算:【论文翻译】Visualizing and Understanding Convolutional Networks,其中和【论文翻译】Visualizing and Understanding Convolutional Networks分别是原始图像和遮挡图像的第l层的特征向量。然后,我们测量了所有相关图像对(i,j)之间的差分向量E的一致性,使用公式【论文翻译】Visualizing and Understanding Convolutional Networks其中H表示海明距离。一个较低的(计算)值表示掩蔽操作导致的更改的一致性更高,因此不同图像中相同的对象部分之间的对应关系更加紧密。((比如,阻断左眼会以一致的方式改变特征表示))。在表1中,我们比较了脸的三个部分(左眼、右眼和鼻子)的∆评分和对象的随机部分,使用了层l=5和l=7的结果。对于这些部分,相对于随机对象区域,第5层特征的较低得分表明,该模型确实建立了一定程度的对应关系。

  

    【论文翻译】Visualizing and Understanding Convolutional Networks             【论文翻译】Visualizing and Understanding Convolutional Networks

 

5. Experiments(实验)

  •   5.1. ImageNet 2012

     该数据集由1.3米/50k/100 k的培训/验证/测试示例组成,分布在1000大类中。表2显示了我们在该数据集上的结果。

     使用(Krizhevsky等人,2012)中指定的确切架构,我们试图在验证集上复制它们的结果。我们在ImageNet 2012验证集上实现了在其报告值0.1%以内的错误率。

    接下来,我们通过4.1节(第1层中的7×7滤波器和第1&2层中的步长为2卷积)中概述的体系结构变化来分析我们的模型的性能。这个模型如图所示。3,显著优于(Krizhevsky等人,2012年)的体系结构,比他们的单一模型结果高1.7%(测试前5位)。当我们组合多个模型时,我们获得了14.8%的测试误差,这是在此数据集上发布的最佳性能(尽管只使用了2012年的训练集)。我们注意到,这一误差几乎是ImageNet 2012分类挑战中最高的非ConvNet条目的一半,它获得了26.2%的误差(Gunji等人,2012年)。

              【论文翻译】Visualizing and Understanding Convolutional Networks

 

   改变ImageNet模型大小:在表3中,我们首先通过调整或完全删除层的大小来探索(Krizhevsky等人,2012)的体系结构。删除完全连接的层(6,7层)只会略微增加错误。这是令人惊讶的,因为它们包含了大多数模型参数。删除两个中间卷积层也相对较小的误差率。然而,删除中间卷积层和完全相关层产生一个只有4个层的模型,其性能非常糟糕。模型的整体深度对于获得良好的性能非常重要。在表3中,我们修改了我们的模型,如图所示。3.改变完全连通层的尺寸对性能影响不大(Krizhevsky等人,2012年)。然而,增加中间卷积层的尺寸可以提高性能。

 

  • 5.2. Feature Generalization(特征泛化)

   上面的实验显示了我们的ImageNet模型的卷积部分在获得最先进的性能方面的重要性,这是由图2的可视化所支持的。它展示了在卷积层中学习到的复杂不变性,我们现在探讨了这些特征提取层对其他数据集的泛化能力,它们是Caltech-101(费菲等人,2006年)、Caltech-256(Griffin等人,2006年)和Pascal voc 2012。为此,我们将我们的ImageNet训练模型的1-7层固定下来,并使用新数据集的训练图像在顶部(为适当数量的类)训练一个新的Softmax分类器。因为Softmax包含的参数相对较少,所以可以从相对较少的例子中快速训练它,某些数据集也是如此。

   我们的模型(一个Softmax)和其他方法(通常是线性svm)所使用的分类器具有类似的复杂性,因此,实验将我们从ImageNet中学到的特征表示与其他方法使用的手工特征进行了比较。值得注意的是,我们的特征表示和手工制作的特征都是使用Caltech和Pascal训练集之外的im-age设计的。例如,通过在一个行人数据集( (Dalal & Triggs, 2005))上进行系统实验,确定了HOG描述器的超参数。我们还尝试了从零开始训练模型的第二种策略,即重置1-7层到随机值,并在数据集的训练图像上训练它们以及Softmax。一个并发症是加州理工学院数据集中的一些图像也在IMANET数据中。使用归一化相关(normalized correlation),我们识别这些少数“重叠(“overlap)”图像,并将它们从我们的成像训练集中移除,然后重新训练我们的成像基因模型,从而避免训练/测试污染( train/test contamination)的可能性。

   Caltech-101: 我们遵循(费飞等人,2006年)的程序,随机选择每类15或30张图像进行训练和测试每类多达50幅,使用5个训练/测试折叠,报告表4中每级精度的平均值。培训耗时17分钟,每次30张图像/类。预训练的模型比报道的30张图片/类成绩高2.2%(bo等人,2013年)。ConvNet模型从零开始训练,但效果非常糟糕,仅达到46.5%。

    【论文翻译】Visualizing and Understanding Convolutional Networks

 

    Caltech-256:我们遵循的程序(Griffin等人,2006年),每类选择15,30,45,或60个的训练指标,报告表5中每类的平均准确率。.我们的ImageNet-预培训模型比bo等人所取得的最新成果(Bo等人,2013年)有了很大的优势:74.2%比55.2%。然而,就像加州理工学院的101一样,从零开始训练的模型表现很差。在图中。9、探索“一次学习”(费飞等人,2006年)制度( regime. )。在我们的预训练模型中,只需要6张Caltech-256训练图像就可以用来击败使用10倍的图像领先的方法。这显示了ImageNet特性提取器的强大功能。

【论文翻译】Visualizing and Understanding Convolutional Networks     【论文翻译】Visualizing and Understanding Convolutional Networks

  PASCAL 2012:我们使用标准的训练和验证图片来在ImageNet预培训的ConvNet之上训练一个20路的Softmax。这并不理想,因为PASCAL图像可以包含多个对象,而且我们的模型只是为每个图像提供了一个单独的独占预测。表6显示了测试集上的结果。PASCAL和ImageNet图像本质上是完全不同的,前者是不同于后者的完整场景。这也许可以解释为什么我们的平均表现比领先的成绩低3.2%(严等,2012),但是我们确实在5级中击败了他们,有时甚至有很大的差距。

 

【论文翻译】Visualizing and Understanding Convolutional Networks

 

  • 5.3. Feature Analysis(特征分析)

  我们探讨了我们的ImageNet预训练模型的每一层中的特征是如何区分的。我们通过改变从ImageNet模型中保留的层数来做到这一点,并在上面放置一个线性svm或Softmax分类器。表7显示了在加州理工学院- 101和CalTeC-256的结果。对于两个数据集,当我们提升模型时,可以看到稳定的改进,通过使用所有层获得最佳结果。这支持了这样一个前提,即随着特性层次结构的加深,它们学习到了越来越强大的特性。

【论文翻译】Visualizing and Understanding Convolutional Networks

6. Discussion(谈论)

   我们探索了大型卷积神经网络模型,他们被训练来用于图像分类,以多种方式。首先,我们提出了一种新的方法来可视化模型内的**。这就揭示了这些特征远非随机的、不可解释的模式。相反,它们显示了许多直观上可取的特性,如组成性、不断增加的不变性以及在我们上升层时的类区分性(compositionality, increasing invariance and class discrimination)。我们还展示了如何使用这些可视化技术来调试模型中的问题,以获得更好的结果,例如对Krizhevsky等人(Krizhevsky等人,2012年)令人印象深刻的ImageNet 2012结果进行了改进。然后,我们通过一系列遮挡模型演示,该模型虽然经过分类训练,但对图像中的局部结构高度敏感,而不仅仅是使用广泛的场景上下文。对模型的消融( ablation study)研究表明,对网络的最小深度,而不是任何单独的部分,对模型的性能至关重要。最后,我们展示了训练好的ImageNet模型如何能够很好地推广到其他数据集。对于 Caltech-101和 Caltech-256,数据集非常相似,我们可以超过最好的报告结果,在后一种情况下,有很大的差距。这一结果给小规模(即<10 4)训练集基准的实用性带来了疑问。我们的ConvNet模型对PASCAL数据的推广较差,可能存在数据集偏差(Torralba & Efros, 2011)。然它仍然在3.2%的最佳报告结果,尽管没有调优的任务。例如,如果使用了不同的损失函数,即每个图像中有多个对象,那么我们的性能可能会提高。这将使网络也能解决目标检测问题。

 

Acknowledgments

作者非常感谢NSF grant IIS-1116923, Microsoft Research and a Sloan Fellowship.的支持。

 

References

Bengio, Y., Lamblin, P., Popovici, D., and Larochelle,

H. Greedy layer-wise training of deep networks. In

NIPS, pp. 153–160, 2007.

 

Berkes, P. and Wiskott, L. On the analysis and in-

terpretation of inhomogeneous quadratic forms as

receptive fields. Neural Computation, 2006.

 

Bo, L., Ren, X., and Fox, D. Multipath sparse coding

using hierarchical matching pursuit. In CVPR, 2013.

 

Ciresan, D. C., Meier, J., and Schmidhuber, J. Multi-

column deep neural networks for image classifica-

tion. In CVPR, 2012.

(其余详见原论文)