Visualizing and Understanding Convolutional Networks(ZFNet网络)-论文阅读笔记

Posted wyypersist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visualizing and Understanding Convolutional Networks(ZFNet网络)-论文阅读笔记相关的知识,希望对你有一定的参考价值。

Visualizing and Understanding Convolutional Networks

ZFNet网络架构

论文阅读笔记

//2022.4.4

论文地址

https://arxiv.org/pdf/1311.2901.pdf

论文目的

探究大型卷积神经网络为什么可以在ImageNet上表现的很好,以及如何对这些大型的卷积网络进行改进。

论文中引入了一种新的可视化技术-反卷积,使用这种技术可以详细看到卷积神经网络中特征层的功能和分类器的操作。作者还进行了消融研究,以发现不同模型层的性能贡献。

提出了一种改进后的网络结构-ZFNet,同时在多个数据集上进行实验,相对于其他网络提升了性能。

论文内容

1.Introduction

以下几个部分促使CNN取得了进步:

  1. 更大的训练集;
  2. 强大的GPU;
  3. 更好的模型正则化策略;

作者基于多层反卷积网络提出了可视化技术,将特征映射重新输入到原像素中,还通过遮挡输入图像的部分从而判断模型对输入中的哪个部分较灵敏。

然后作者使用上述的方法,获得了新的架构ZFNet网络架构,同时,还将该网络架构通过训练不同的分类器softmax使用在不同的数据集中。

文中提出来的可视化技术和原本的在最佳响应周围进行的可视化技术不一样,文中使用的技术可以对整个特征图自上而下的投影,揭示了每个补丁中的结构,刺激了特定的特征图。这和原本的技术只是在较低层进行可视化不同。

2.Approach

下图展示了作者使用的模型结构。

模型架构说明:每一层包括(i)前一层输出(或者,在第一层的情况下,输入图像)与一组学习过的滤波器的卷积;(ii)通过校正线性函数(relu(x) = max(x, 0))传递响应;(iii)[可选]局部邻域上的Max pooling和(iv)[可选]局部对比操作,该操作将跨特征映射的响应标准化。网络最后是两层FC层,最后是一个softmax分类层。

2.1 可视化和反卷积

反卷积使用的和卷积相同的组件,但是其中的过程是从特征图到原始像素图。


为了检查卷积网络,在每一层上都附加一个反卷积网络,如图1(顶部)所示,提供了一个返回图像像素的连续路径。首先,将一个输入图像呈现给卷积网络,并计算整个层的特征。为了检查给定的卷积网络激活,作者将该层中的所有其他激活设置为0,并将特征映射作为输入传递给附加的反卷积网络层。然后,作者依次(i) unpool, (ii) rectify and (iii) filter来重建产生所选激活的下层活动。然后重复这个过程,直到到达输入像素空间。

 

反池化:在卷积网络中,最大池化操作是不可逆的,但是作者可以通过记录在一组开关变量中每个池化区域的最大值的位置来获得一个近似的逆。在反卷积网络中,反池化操作使用这些开关将来自上一层的重建数据放置到合适的位置,同时保留刺激的结构。见图1(下)的程序说明。

校正:卷积神经网络使用relu非线性校正特征映射,从而确保特征映射总是正的。为了在每一层获得有效的特征重构(这也应该是正的),作者通过relu非线性传递重构信号。

过滤:卷积神经网络使用学习过的滤波器对前一层的特征映射进行卷积。反过来,反卷积网络使用相同滤波器的转置版本,但应用于校正后的地图,而不是下方图层的输出。实际上,这意味着垂直和水平地翻转每个滤镜。

从更高的层投射下来,使用的开关设置产生的最大池在convnet的路上。由于这些开关设置对于给定的输入图像是特殊的,因此从单个激活中获得的重构类似于原始输入图像的一小部分,根据其对特征激活的贡献对结构进行加权。由于模型是有区别地训练的,它们隐式地显示输入图像的哪些部分是有区别的。注意,这些投影不是来自模型的样本,因为没有涉及生成过程。

3.训练细节

该模型是在ImageNet 2012训练集上训练的(130万张图片,分布在1000多个不同的班级)。每个RGB图像经过预处理,将最小的尺寸调整为256,裁剪中心256x256区域,减去每像素平均(所有图像),然后使用大小为224x224的10个不同的子作物(角+中心,水平翻转)。使用128个小批量的随机梯度下降来更新参数,从10−2的学习速率开始,加上0.9的动量项。当验证误差趋于稳定时,作者在整个人工训练过程中降低学习速率。Dropout (Hinton et al., 2012)用于全连接层(6和7),速率为0.5。所有权重初始化为10−2,偏差设置为0。

在训练过程中对第一层过滤器的可视化显示,其中一些过滤器占主导地位,如图6(a)所示。为了解决这个问题,作者将RMS值超过10−1的固定半径的卷积层中的每个滤波器重新归一化。这是至关重要的,特别是在模型的第一层,其中输入的图像大致在[-128,128]范围内。正如(Krizhevsky et al., 2012),作者为每个训练例子制作了多种不同的作物和翻转,以增加训练集的大小。在70个epoch之后,作者停止了训练,使用基于(Krizhevsky et al., 2012)的实现,在单个GTX580 GPU上花费了大约12天。

 

4.卷积可视化

使用上述第三节中描述的方法来进行可视化。

特征可视化

图2显示了训练完成后作者模型的特征可视化。然而,作者并没有在给定的特征图中显示最强的激活,而是显示了前9个激活。将它们分别投射到像素空间,可以显示激发给定特征映射的不同结构,从而显示其对输入变形的不变性。在这些可视化的旁边,作者展示了相应的图像补丁。这些比可视化有更大的变化,因为后者只关注每个补丁中的区别结构。例如,在第5层,第1行,第2列,补丁似乎没有什么共同之处,但可视化显示,这个特殊的特征地图集中在背景中的草,而不是前景对象。

 

每一层的投影显示了网络中特征的分层性质。第2层回应角落和其他边缘/颜色结合。图层3有更复杂的不变性,捕捉相似的纹理(例如,网格模式(行1,Col 1);文本(R2、C4))。第4层显示出显著的差异,但更具有阶级特异性:狗的脸(R1,C1);鸟的腿(R4 C2)。第5层显示了具有显著姿势变化的整个物体,如键盘(R1,C11)和狗(R4)。

训练过程中的特征演化

图4显示了最强激活的训练过程中(在所有的训练例子中),在一个给定的特征映射中,投射回像素空间。外观的突然跳跃源于图像的变化,而最强烈的激活源于图像的变化。模型的下层可以看到在几个时代内收敛。然而,上层只有在相当数量的时代(40-50)之后才发展,这表明需要让模型一直训练到完全融合。

特征变换

图5显示了5张样本图像被平移、旋转、缩放,对比模型的上下两层特征向量相对于未变换的特征的变化。小的转换在模型的第一层有显著的效果,但在顶层特征层的影响较小,对于平移和缩放来说是准线性的。网络输出对平移和缩放是稳定的。一般来说,输出不是旋转不变的,除了旋转对称的物体(如娱乐中心)。

 

 

4.1 体系结构的选择

对特征层的可视化操作使得更改一些卷积层的strides和filters的尺寸进而改进网络整体效果成为可能。

虽然经过训练的模型的可视化提供了对其操作的洞察,但它也可以帮助首先选择好的架构。通过可视化Krizhevsky等人的第一和第二层架构(图6(b)和(d)),各种问题都很明显。第一层滤波器是极高频和低频信息的混合,几乎不覆盖中频。此外,第2层可视化显示了由第1层卷积中使用的大跨度4引起的混叠效应。为了解决这些问题,作者(i)将第一层过滤器的尺寸从11x11减少到7x7, (ii)将卷积的范围从4步扩大到2步。这种新架构在第一层和第二层特征中保留了更多的信息,如图6(c)和(e)所示,更重要的是,它还提高了分类性能,如5.1节所示。

4.2 遮挡敏感性研究

作者为了进一步探究网络究竟是否识别出了物体的具体位置,还是仅仅使用了物体周围的特征作为可视化来源,采用遮挡一部分图像像素的方法,发现分类器的准确率显著下降并且在第5层中的激活强度也发生了一些变化。同时,作者还根据最顶层的特征图的可视化和图中的活动与遮挡位置的函数关系,发现当封堵器覆盖在可视化中出现的图像区域时,作者会看到特征图中活动的强烈下降。这表明可视化确实对应于刺激该特征映射的图像结构,因此验证了图4和图2中显示的其他可视化。

 

对图7(上图)的解释

在三个测试示例中,作者系统地用一个灰色正方形(第一列)覆盖场景的不同部分,并观察顶部(第5层)特征映射((b)和(c))和分类器输出((d)和(e))如何变化。(b):对于灰度的每个位置,作者记录在一个layer 5 feature map(未遮挡图像中响应最强的feature map)中的总激活量。(c):投影到输入图像(黑方框)的该特征图的可视化,以及从其他图像中得到的该特征图的可视化。第一行的例子显示了最强烈的特征是狗的脸。当这个被覆盖时,特征图中的活动减少((b)中的蓝色区域)。(d):正确类概率的映射,作为灰色方块位置的函数。例如,当狗的脸被遮挡时,“博美犬”的概率显著下降。(e):最可能的标签作为闭塞器位置的函数。例如,在第一排,对于大多数位置,它是“博美犬”,但如果狗的脸被遮挡,但没有球,那么它就会预测“网球”。在第二个例子中,汽车上的文本是第5层中最强的特征,但分类器对车轮最敏感。第三个例子包含多个对象。第5层中最强的特征挑选出了人脸,但分类器对狗敏感((d)中的蓝色区域),因为它使用了多个特征映射。

4.3 相关性分析

作者为了分析不同图像中特定部位之间的关系,采用随机取得的5张狗的额头图片,在每张图片中系统地遮挡了脸同样的部分,都是左眼。对于每个图片i,作者计算其中的xil和xi-l分别表示原始图像和被遮挡图像。然后测量这个差向量的一致性,针对每种组合:。这里的H为汉明距离。该值越小,说明掩蔽操作所产生的变化一致性越强,因此不同图像中相同物体部位之间的对应关系就越紧密(即遮挡左眼使特征表示方式变得一致)。

 

在表1中,作者使用l = 5和l = 7层的特征,将面部的三个部分(左眼、右眼和鼻子)与对象的随机部分的∆分数进行了比较。相对于随机对象区域,这些部分的分数越低,表明模型确实建立了某种程度的对应关系。

5.实验

​​​​​​​5.1 在ImgaNet 2012上的实验

在ImageNet 2012上的实验错误率对照表格。

变化ImageNet模型尺寸

在表3中,作者首先探索(Krizhevsky et al., 2012)的架构,通过调整图层的大小,或者完全删除它们。在每种情况下,模型都是用修改后的体系结构从头开始训练的。删除完全连接的层(6,7)只会略微增加误差。这是令人惊讶的,因为它们包含了大多数模型参数。去掉两个中间的卷积层也会使错误率产生相对较小的差异。然而,去掉中间卷积层和完全连通层后,得到的模型只有4层,其性能显著下降。这表明,模型的整体深度对于获得良好的性能非常重要。在表3中,作者修改了作者的模型,如图3所示。改变全连通层的大小对性能影响不大(Krizhevsky et al., 2012)。然而,增加中间卷积层的大小可以在性能上获得有用的增益。但是增加这些,同时也扩大了完全连接的层会导致过度拟合。

 

​​​​​​​5.2 特征提取

上面的实验表明了作者ImageNet模型中卷积部分在获得最先进的性能方面的重要性。这得到了图2的可视化支持,图2显示了在卷积层中学习到的复杂不变性。作者现在研究这些特征提取层推广到其他数据集的能力,即Caltech-101(菲菲等人,2006),Caltech-256(格里芬等人,2006)和PASCAL VOC 2012。为了做到这一点,作者保持imagenet训练模型的1-7层固定,并训练一个新的Softmax分类器在上面(用于适当数量的类),使用新数据集的训练图像。由于softmax包含相对较少的参数,因此可以从相对较少的示例中快速训练它,对于某些数据集也是如此。

作者的模型(softmax)和其他方法(通常是线性SVM)使用的分类器具有类似的复杂性,因此实验将作者从ImageNet学习的特征表示与其他方法使用的手工制作的特征进行了比较。需要注意的是,作者的特征表示和手工制作的特征都是使用超出Caltech和PASCAL训练集的图像设计的。例如,HOG描述符中的超参数是通过在行人数据集上的系统实验确定的(Dalal & Triggs, 2005)。作者还尝试了第二种从零开始训练模型的策略,即在数据集的训练图像上,将1-7层重置为随机值,并对其和softmax进行训练。

一个复杂的问题是,一些Caltech数据集的一些图像也在ImageNet训练数据中。使用归一化相关,作者识别出这些少数“重叠”的图像2,并将它们从Imagenet训练集中去除,然后重新训练作者的Imagenet模型,从而避免了训练/测试污染的可能性。

Caltech-101数据集上的结果

作者使用了原论文中的程序得到了以下结果:

 

Caltech-256数据集上的结果

作者遵循(Griffin et al., 2006)的程序,每类选择15、30、45或60个训练图像,在表5中报告每类的平均精度。作者的imagenet预训练模型比Bo et al. (Bo et al., 2013)目前得到的最先进的结果有显著的优势:对于60张训练图像/类,74.2% vs 55.2%。然而,与加州理工101一样,从零开始训练的模型表现不佳。在图9中,作者探索了“一次性学习”(Fei-fei et al., 2006)机制。在作者的预训练模型中,只需要6张加州理工学院的256张训练图像,就可以打败使用10倍图像的领先方法。这显示了ImageNet特征提取器的强大功能。

 

PASCAL 2012数据集上的结果

作者使用标准的训练和验证图像,在imagenet预处理卷积网络上训练一个20路softmax。这并不理想,因为PASCAL图像可以包含多个对象,而作者的模型只是为每个图像提供一个唯一的预测。表6显示了测试集上的结果。PASCAL和ImageNet图像在本质上有很大的不同,前者是完整的场景,而后者不同。这也许可以解释为什么作者的平均表现比领先的(Yan等人,2012年)结果低3.2%,但作者确实在5个级别上击败了他们,有时差距很大。

 

​​​​​​​5.3 特征分析

作者探讨了imagenet预训练模型的每一层特征的区别性。作者通过改变ImageNet模型保留的层数,并在上面放置线性SVM或softmax分类器来实现这一点。表7显示了Caltech101和Caltech-256的结果。对于这两个数据集,作者可以看到一个稳定的改进,因为作者提升模型,与最佳的结果是通过使用所有层。这支持了一个前提,即随着特性层次的加深,它们会学习到越来越强大的特性。

 

6.总结

作者探索了大型卷积神经网络模型,以多种方式训练用于图像分类。首先,作者提出了一种将模型中的活动可视化的新方法。这揭示了这些特征远不是随机的、无法解释的模式。相反,它们显示了许多直观的可取的属性,如组合性、不断增加的不变性和作者在层次上的阶级歧视。作者还展示了如何使用这些可视化来调试模型的问题,以获得更好的结果,例如改进Krizhevsky等人(Krizhevsky et al., 2012)令人印象深刻的ImageNet 2012结果。然后,作者通过一系列的遮挡实验证明,在进行分类训练时,该模型对图像中的局部结构非常敏感,而不只是使用广泛的场景背景。对该模型的消融研究表明,对网络的最小深度,而不是任何单独的剖面,对模型的性能至关重要。

最后,作者展示了ImageNet训练的模型如何能很好地泛化到其他数据集。对于Caltech-101和Caltech-256,数据集非常相似,以至于作者可以超过报告的最好结果,在后者的情况下有显著的差距。这一结果对训练集较小(即< 104)的基准的效用提出了疑问。作者的convnet模型对PASCAL数据的泛化效果较差,可能受到数据集偏差的影响(Torralba & Efros, 2011),尽管没有针对任务进行调优,但它仍然在最佳报告结果的3.2%以内。例如,如果使用不同的损失函数,允许每张图像有多个对象,作者的性能可能会提高。这自然也会使网络能够处理对象检测。

个人总结

本文首先提出了一种对卷积神经网络进行可视化的方法-反卷积操作。作者使用反池化,校正,过滤等操作从最高特征层中不断向下进行,得到了特征层对应原始像素的映射。

然后,作者在对参考的基准网络进行可视化之后发现卷积层的改变对特征提取整个过程的影响较大,FC全连接层变换的影响反而很小。所以,作者提出了本文第二个创新点:将第一层过滤器的尺寸从11x11减少到7x7, 同时将卷积的范围从4步扩大到2步。从而得到了ZFNet骨干网架构。作者在得到了架构之后,还探究了遮挡和不同图像中具有相同位置元素的一致性,发现卷积神经网络可以实现自主的挖掘图像中存在的不同位置物体的配置关系,这就相当于人工特征提取所具有的作用。

接着,作者将ZFNet网络和其他多种不同的网络在ImageNet 2012、Caltech-101、Caltech-256、PASCAL 2012数据集上进行了对比实验。

以上是关于Visualizing and Understanding Convolutional Networks(ZFNet网络)-论文阅读笔记的主要内容,如果未能解决你的问题,请参考以下文章

Visualizing and Understanding Convolutional Networks论文复现笔记

An introduction to using and visualizing channels in Go

ZFNet: Visualizing and Understanding Convolutional Networks

Visualizing and Understanding Convolutional Networks(ZFNet网络)-论文阅读笔记

Visualizing the Git data model

Visualizing wave interference using FireMonkey(很美)