Press "Enter" to skip to content

深度学习分类网络 — ZFNet

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

文章目录

 

原论文:Visualizing and Understanding Convolutional Networks

 

ZFNet这篇论文中的motivation有两点:

深度神经网络为什幺表现好?
如何改进网络?

作者通过Deconvnet来可视化深度神经网络各层的特征,并据此来针对性地对AlexNet进行改进,取得了2013年ImageNet分类挑战赛的冠军。

 

1. 网络结构

 

在可视化特征图的基础上,作者对ALexNet做了两处修改:

第一个卷积的尺寸由11×11改为7×7
第一个卷积的stride由4改为2

当然,作者这样修改不是凭空臆造,而是有据可依的,而这个依据就是特征的可视化结果。

 

2. 要点

 

2.1 Deconvnet可视化

 

Convnet通常由连续的“卷积+激活+池化(可选)+归一化(可选)”构成,输入2D彩色图像,经过一系列layer得到不同类别的概率向量,这一过程相当于将输入的像素空间映射到激活值。而Deconvnet的功能与Convnet相反,是将激活值重新映射回像素空间,以显示输入图像中的哪些部分对激活值有重要贡献。

 

结合论文原文以及下图,总结特征图可视化的步骤如下:

 

(1)将一张图片喂入网络,进行前向传播,计算每层的特征表示,也就是特征图;

 

(2)为了将L层中的某个激活值映射回像素空间,先将该层的其它激活值置零,然后将其作为Deconvnet中L层的输入,经过连续的反池化、激活校正、反卷积,直到输入像素空间;

反池化

由于池化操作是不可逆的,因此只能通过记录每个池化窗口内最大值的位置来得到一个近似的逆,如下图所示:

激活校正
Convnet通过ReLU函数来修正特征映射,以确保特征映射总是正的。为了重建有效特征,在Deconvnet中也使用ReLU。
反卷积
此处的反卷积其实就是转置卷积,反卷积是卷积的逆向过程(不是逆运算),根据卷积核和经过卷积后输出的特征图恢复输入图像的大小,注意仅仅是图像的大小,不能恢复原始值。

2.2 网络各层特征的特点

 

下图为对Convnet中每个卷积层输出的Top9激活值进行可视化的结果,并展示了相应的图像patch,每一层的激活值映射显示了网络中特征的层次性质:

第2层响应于角、边和颜色的结合;
第3层具有更复杂的不变性,捕获了相似的纹理;
第4层显示出显着的变化,但更针对具体类别(如狗脸、鸟腿);
第5层显示了具有显着姿态变化的整个物体。

 

2.3 网络各层特征学习过程

 

下图展示了每一层最强激活值在网络训练1,2,5,10,20,30,40,64个epoch时特征映射的变化,可以看到,底层在5个epoch左右就能收敛,但是顶层需要40-64个epoch才能收敛,而网络主要是根据顶层特征对类别进行区分,说明网络需要充分训练直至收敛才能具备好的性能。

 

2.4 根据特征可视化改进网络结构

 

如下图中的(b)和(d)所示,AlexNet中第一层的特征是极高和低频信息的混合,很少覆盖中频,第二层可视化显示了由第一层卷积中使用的大步幅4造成的混叠伪影。为了解决这些问题,作者将第一层滤波器的大小从11×11减少到7×7,并且调整卷积的步幅为2,新的网络架构在第一层和第二层的特征中保留了更多的信息,如( c )和( e )所示。

 

2.5 特征不变性

 

下图显示了5个样本图像被不同程度的平移、旋转和缩放,同时展示了模型顶层和底层的特征向量相对于未变换特征的变化。第一列为原始图像,第二列和第三列分别为第1层和第7层中未经转换和经过转换的特征向量的欧氏距离,第四列为当图像被转换时,每个图像预测为真实标签的概率。

从图中可以看出,小的转换对模型的第一层有显着的影响,但对顶部特征层的影响较小;网络输出对于平移和缩放是稳定的,一般来说,输出对旋转不是不变的,除了具有旋转对称的对象。

2.6 遮挡敏感性

 

对于图像分类方法,一个很自然就能想到的问题是,模型是否真的识别出了物体在图像中的位置,还是仅仅使用了周围的上下文。通过使用灰色方块遮挡图像中的待识别目标,观察网络输出发现:当目标被遮挡时,正确的类的概率会显着下降,说明模型能够定位到场景中的目标。

 

2.7 特定物体各部分对应关系分析

 

不同于手工提取特征的传统方法,CNN模型没有明确的机制来建立不同图像中特定物体各部分之间的对应关系,例如,脸部中的眼睛和鼻子之间有一个特定的空间关系。但是在CNN中可能隐式地计算了这样的关系,为了探索这一点,作者做了一个实验,随机抽取5张正面姿势的狗图像,并系统地掩盖每张图像中的相同部分(下图中第1列为原始图像,第234列分别为遮挡左眼、右眼和鼻子,其他列为遮挡随机位置),通过计算遮挡不同图片中的相同部分对特征影响的一致性,以此来判断网络是否学习到了不同图片中特定物体各部分的对应关系。

 

如何计算一致性呢?文中采用的方法如下:

给定5张包含狗狗的不同图像,对于第 i i i 张图像,计算原始图像和遮挡某个部位后图像在第 l l l 层的特征向量之差,表示遮挡某个部位后对特征产生的影响;

再计算每两张图像中遮挡相同部位对特征产生影响的汉明距离,即一致性。若汉明距离越小,表明不同图像遮挡相同部位对特征影响越一致,说明网络隐式地建立了狗脸中各个部位之间的关系。
最终的计算结果如下:
从计算结果中可以看出,在第5层,与随机遮挡物体部分相比,遮挡眼睛和鼻子的分数较低,说明该模型隐式地建立了狗脸中眼睛和鼻子之间的空间关系。在第7层,4类遮挡分数相似,可能是由于上层试图区分不同品种的狗。

参考资料

ZFNet论文: Visualizing and Understanding Convolutional Networks
“直观理解”卷积神经网络(一):反卷积(Deconvnet)
反卷积(Deconvolution)、上采样(UNSampling)与上池化(UnPooling)
PyTorch源码浅析(3):NN
转置卷积(Transpose Convolution)

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。