美文网首页
[笔记]Visualizing and Understandin

[笔记]Visualizing and Understandin

作者: 砖业人士 | 来源:发表于2018-07-19 19:31 被阅读0次

    论文链接:https://arxiv.org/abs/1311.2901

    介绍:

    近些年来,深层的卷积神经网络,进展非常惊人,在计算机视觉方面,识别精度不断的突破。但是,许多人都不太明白为什么CNN可以取得这么好的性能,以及怎样可以更好的提高网络的性能。这篇文章以AlexNet为基础,打开卷积层,告诉我们CNN的每一层到底学到了什么特征,然后对AlexNet的网络架构进行调优。最后,该文章的模型取得了13年ImageNet分类任务的冠军

    可视化过程:

    image

    文章在一个卷积层进行卷积、ReLu、Max Pooling之后,不仅输出到下一层卷积层作为输入,也将其输入到一个Transposed Convolution层中,进行可视化。

    转置卷积(Transposed Convolution):

    Unpooling:因为卷积层中,对于一个feature map进行Max pooling的操作是不可逆的。所以,在进行Max pooling时,顺便记录下最大值所在的位置(图中的Switches),然后在可视化时,根据switches,将经过Max pooling后得到的feature map的每一个值都放回相应的位置,其他位置则用0填充。

    Rectification:正向网络中使用relu函数确保feature map 都是正数,在反向网络中也同样的通过relu函数来保证feature map非负。

    Filtering : 使用正向卷积中的训练好的卷积核矩阵的Transposed(上下,水平翻转)对Rectification后输出的特征进行卷积,得到原图。

    对于Deconvolution Network的理解可以看一下我的另一篇讲述CNN反向传播的文章:https://www.jianshu.com/p/0e640f6e612e

    这里其实就是将CNN反向传播中得到的梯度进行可视化的结果。

    Feature Visualization:

    原文中,将每个卷积层产生的feature map中的最强的9个activation,通过上述的反卷积操作投射到像素空间。得到的特征图和原图如下

    image image

    可以看到,层1,层2学到的基本是颜色,边沿,轮廓等信息;第三层开始有纹理等特征,有着更强的不变性;第4、第5层开始,有着很明显的类别信息。

    Feature Evolution during Training:

    image

    文中随意挑选了一些图片,并给出每一层的不同迭代次数(1,2,5,10,20,30,40,64)下的提取的特征的可视化结果。可以看到,前几层很快就出现了肉眼可见的特征,而随着层数的增加,更深层的网络提取出明显特征需要的迭代次数增多。我的直观理解是,因为卷积出来的特征逐层往后传播,越高层的网络的卷积提取的特征越抽象,也就需要前面的网络提取出来的特征足够好,高层的网络才能提取出更明显更整体的特征。

    Feature Invariance:

    image

    上图中,列1是经过不同程度的平移、缩放、旋转等操作的图片,列 2和3 是第1层和第7层对改变后的图提取的特征跟原图提取的特征之间的欧氏距离。第4列是改变原图之后,分类的正确率。

    从图中可以看到,当对图像进行平移或缩放时,第1层提取的特征与原图相比变化剧烈,而第7层则变化的相对缓慢一点。而对图像进行旋转的时候,第1层和第7层的变化同样的剧烈。

    模型结构的选取:

    作者在AlexNet的基础上,进行了一点改动。将第1层卷积层的filter size 从11 x 11 改为 7 x 7,将stride从4改为2。至于原因,文中用下图进行解释。

    image

    图(b)和(d)分别是AlexNet中,第1层和第2层提取到的特征。图(c)和图(e)是文中将AlexNet改进后提取到的特征。AlexNet第1层提取的特征包含了比较多的高频和低频的信息,没有覆盖到太多中频的信息,这也导致第2层中出现了一些混叠效应。将第一层的filter size和stride同时改小后,可以看到,提取出来的特征更为清晰。

    遮蔽敏感度:

    文中通过对不同部位进行遮挡,然后查看最终的分类结果,进一步探究了到底那一部分在分类时起到了作用。如下图,灰色方块是遮挡物,当遮挡在关键区域时,分类性能急剧下降。所以,可以用这个方法查找分类的关键区域。

    image

    (a)表示随机遮挡图中的某一部分,(b)和(c)表示遮挡不同部分时,顶层(第5层)的feature map的变化。(b)中表示遮挡不同位置时,响应最高的feature map的数值,图(c)表示最强的feature map 投射到像素空间的结果。(d)和(e)表示遮挡图像的不同部分时,分类器的输出。

    图片内特征相关性的分析:

    深度模型与传统方法不同的一点是,深度模型没有显式的建立图片内不同特征之间的联系(如人脸的眼睛和鼻子有相对的空间位置),但是深度模型可能隐式的计算了这些相关性。文中通过计算遮挡前和遮挡后的特征差值来分析图片内特征的相关性。

    image

    然后计算遮挡前与遮挡后的差值:

    image

    l是层号,上式的\epsilon ^{l}_{i}表示在 l 层中,图 i 在进行遮挡前与遮挡后的差值。通过Δ来计算特征的相关性

    通过Δ来计算特征的相关性。此式子计算了将不同图片都遮挡住相同的物体部分(如眼睛,鼻子等)对不同图片的提取出的特征差值是否相近。比如说,第二列中,将每个图中的狗的左眼进行遮挡后,图一遮挡后计算的差值与图二遮挡后计算的差值相近,则表示卷积层在不同图片中都是关注同样的信息(如:眼睛鼻子之间的相对位置)。

    image

    Sign为符号函数,H为汉明距离,如果Δ值越小,则该操作所遮挡的图像特征和图像其他特征的相关性越高。最后得出结果如下表1。

    image

    与随机进行遮挡相比,遮挡眼睛和鼻子所得到的Δ值较小,证明眼睛和鼻子与图片内部其他特征存在相关性。特别的,与层5相比,在层7中的Δ值普遍不大,也许表明第7层已经开始尝试去判别图中的狗的不同种类,而不再关注脸部的特征相关性。


    此文仅仅作为本人学习的笔记,如有指导,烦请评论区留言,非常感谢。刚刚接触CNN,理解的还不够深刻。在接下来的学习中有了更多理解后,会继续更新。

    相关文章

      网友评论

          本文标题:[笔记]Visualizing and Understandin

          本文链接:https://www.haomeiwen.com/subject/zycxmftx.html