Visualizing and Understanding Convolutional Networks 论文学习

坚强是说给别人听的谎言 提交于 2019-12-11 18:50:42

这几天看了这篇论文,学习记录一下。有问题的地方请指正~

 

论文作者:Matthew D. Zeiler, Rob Fergus (美国纽约大学)

论文会议:ECCV2014

论文链接:https://arxiv.org/pdf/1311.2901v3.pdf


摘要:

    论文的背景是在2012年AlexNet (Krizhevsky) 在ImageNet竞赛上展现了突出的图像分类能力后,对于该网络为什么能够表现得如此突出、以及如何对网络做进一步提升的认识却很少。论文提出了一种全新的可视化技术,能够看到卷积神经网络中间层的特征。可以利用该可视化技术,寻找更优的网络模型。同时论文还研究了模型在其他数据集上的泛化性。

 

1.引入

    从2012年AlexNet出世到现在,有很多科学家研发了许多在图像处理问题上表现杰出的网络模型,但是对模型的内部操作和表现的探究却很少,例如,为什么网络模型能表现得这么好?从科学的角度说,这是令人不满意的,科学的研究需要能对技术的内部工作原理做出解释。

    因此,文章提出了一种可视化技术——多层反卷积神经网络(deconvnet),该反卷积技术能够展示模型每一层中的由输入激发的特征图,同时能够观测在训练过程中特征的变迁(evolution,这个词用的很有灵魂),并诊断模型的潜在问题。此外,文章还通过遮盖部分输入图像,然后对分类器的输出进行敏感性分析,说明输入图像的哪些部分对分类起了关键性作用。

    使用这些技术,论文改进了AlexNet模型,改进的模型在ImageNet上展现了更优的表现。同时论文还研究了网络模型在其他数据集上的泛化性,通过仅仅重新训练最上层的softmax分类器。

 

2. 方法

    文章使用标准的监督式卷积神经网络模型,网络模型如下图1所示。输入2D图像x,经过一系列网络层,得到若干类上的可能性向量y_hat。每一层包括:1)卷积  2)线性整流函数(我觉得就是激活)  3)最大池化(可选)  4)局部对比度归一化(可选).  顶层是全连接层,最后一层为softmax分类器。使用交叉熵损失函数。模型参数通过反向传播梯度下降法更新。

                                                                              图1 卷积神经网络架构

    反卷积神经网络也可以看成是有相同成分的卷积神经网络模型反过来,卷积神经网络是将输入像素映射到特征图,而反卷积是将特征图映射至像素空间。反卷积神经网络连接在卷积神经网络的每一层上,提供了一条连续的到图像像素空间的路径,如下图2(上部分)所示。为了检测卷积神经网络的某一激活,文章将该层中其他的激活(我的理解就是特征图)设置为0,将该激活传递到反卷积神经网络的输入口。然后依次进行 1) 反池化  2) 线性整流  3) 过滤 来重新构建,直到到达输入像素空间为止。

反池化:在卷积神经网络中,最大池化操作是不可逆的,但是我们可以通过记录最大池化过程中各个池化区域内最大值的位置来获得类似的反向图,这些位置的集合被称为switch变量。在反卷积过程中,反池化操作根据switch中的值,将上层的激活值放置到大概的位置,保留下激活的结构特征。下图2(下部分)展示了这个过程。

线性整流:卷积神经网络使用relu非线性激活函数,保证特征图的值永远为正。为了得到每层的反卷积重构,我们通过relu非线性函数传递了一个重构的信号(这里我不是很理解,请知道的朋友指教~)

过滤:卷积神经网络使用过滤器对前一层的结果特征图进行卷积操作。为了近似地反向这一过程,反卷积神经网络使用与卷积过程中相同的过滤器的转置,应用到线性整流的映射结果上,注意不是前(下)一层的输出。在实际操作中就是将过滤器在水平方向和竖直方向翻转。

    注意文章在重构过程中没有使用反向的归一化操作。

图2. 上部分:反向卷积神经网络层(左边)连接到卷积神经网络层(右边)上。反向卷积神经网络会重构出下层特征图的相似版本。 下部分:反池化操作说明,使用在卷积神经网络池化阶段中记录下的每个池化区域局部最大值的位置的变量switches。

 

3. 训练细节

    这一部分就是讲了卷积神经网络的基本结构,图像预处理以及训练过程,就不细讲了。

 

4. 卷积神经网络可视化

    下图3展示了模型训练完成之后的可视化效果。文章给出了从第1层到第5层中,对于给定的特征图,激活值最强的9张图,将激活反卷积到输入空间,揭示出能够产生激活的结构,以及激活对于输入型变的不变性。这些可视化特征图的旁边是原输入图像,与原输入图像相比,可视化特征图具有更高的不变性,因为它们仅仅会关注图像中部分表现突出的结构。例如第5层的第一行第二列,输入图片看上去没有相似的,通过特征可视化可以发现提取的特征主要是背景中的草地,而不是物体本身。此外,可视化特征图还说明卷积神经网络中特征的分层结构。层2会对角/边做出响应;层3能提取稍复杂的不变性,例如R1C1的网格图案、R2C4的文字;层4能实现更加聚类的提取,例如R1C1的狗的脸部、R4C2的鸟类的腿;层5则能识别不同方位的全部物体,例如R1C1的键盘,R4的狗。

                                                                      图3 模型训练完成后的特征的可视化

   训练过程中特征的演化:下图4展示了训练过程中特征的演化过程,图中是训练过程中随机选择的模型特征的子集,从层1到层5从左到右排列,每一个方块中是迭代了[1,2,5,10,20,30,40,64]次的特征经过反卷积后生成的。可以看出,层数较低的收敛较快,而高层网络要比较迟才能收敛,说明了训练模型直到模型完全收敛的必要性。

                                                                 图4 模型训练过程中随机选择的特征子集的演化

可视化应用1:模型选择。由于可视化技术可以看到模型的内部操作,所以该技术能用来辅助挑选最优的模型。通过可视化AlexNet的第一层和第二层,如下图5所示,存在的问题很明显。第一层的特征图5(a)混合了极高和极低频的信息,没有中间频率的信息;第二层5(c)存在部分人工混叠。针对这两个问题,文章将第一层的过滤器由11*11变换为了7*7大小,将第二层卷积的步长由4降为2。新的模型结构在第一层5(b)和第二层5(d)保留了更多信息,还提升了模型的分类表现。

图5. (a): 过滤器尺寸修改前的第一层特征 (b) 过滤器大小修改后的第一层特征  (c)第二层卷积步长为4的特征  (d)第二层卷积步长为2的特征

可视化应用二:遮蔽敏感性。有了图像分类的方法,一个很关键的问题是模型是真的识别到了图像中的物体呢,还是其他什么背景?通过系统地遮盖了图像中不同的部分(用一个灰色的小方块),然后检测分类器的输出可以解决这个问题,如下图6所示。这个例子清晰得展现了模型提取的特征的位置,因为如果该物体被遮盖的话,模型准确率会明显降低。又因为遮盖住的物体也是可视化技术得到的物体,就说明了通过可视化技术得到的与输入图像中激活特征图的结构是对应的。

图6. 三个测试样例。在这三个例子中,作者都系统地用一个灰色方块遮盖了图像的不同区域,然后观察该区域被遮盖后的表现(b, c, d, e)。(b): 对于每个位置的遮盖,记录下第5层某个特征图的激活(选择激活值最高的那个)。 (c):  该特征图的可视化,从特征图一直向下到输入空间。(d): 分类正确可能性图,是以遮盖位置为输入的函数,例如,当狗的脸被遮盖时,可能性最低(为蓝色)。 (e): 最有可能的标签,也是以遮盖位置为输入的函数,例如,第一行大部分位置被遮盖住最有可能的标签都是狗(poneranian),但是当狗的脸部被遮住时,最有可能的标签就变成了乒乓球。

 

5.实验

作者首先将通过可视化技术改进的模型(也就是图1的模型)与AlexNet相比较,表现提高,说明了可视化技术能辅助模型的改进。然后修改了模型的结构和大小,例如删除或调整某些层,得出模型的总层数对模型的表现是十分重要的。其次对模型的泛化性进行实验,保留ImageNet训练过的1-7层网络数据,使用新数据集的图像重新训练softmax层,预训练过的神经网络在小数据集(Caltech-101、Caltech-256)上也有很好的表现,但在PASCAL2012上表现没有那么突出,可能是因为PASCAL数据集包含多个物体。最后作者通过实验1层、2层、...、7层网络,将线性分类器或softmax加到各个层上,说明网络层次结构越深,越能学习到更强的特征。

 

6. 总结

    文章从多个方面,使用了多种方法来研究大型卷积神经网络。首先,文章提出了一种新颖的可视化模型内激活特征的方法,它说明模型并不是随便得提取特征,而是会提取组成性的特征,而且随着层数的增加,特征会有更稳定的不变性以及更突出的类别。同时,文章通过可视化技术来分析模型潜在的问题,并在此基础上提出更好的网络模型;通过一系列遮盖实验说明了模型对一些局部结构高度敏感。通过消融研究还能发现模型的深度,而不是任何单独的部分对模型的表现的至关重要的。最后,文章还通过实验证明了模型对其他数据集优良的泛化性。

 

 

参考博客:

1. https://www.cnblogs.com/liaohuiqiang/p/9356753.html

 2. https://blog.csdn.net/Julialove102123/article/details/78292807

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!