ZFNet详解

ZFNet是AlexNet的优化版,通过调整网络结构如减小第一层卷积核大小,增强了模型性能。论文提出了一种反卷积可视化技术,揭示了CNN中各层的功能,帮助理解特征提取和分类过程。此外,通过遮挡实验展示了模型对输入图像关键区域的敏感性,证明了模型深度对分类性能的重要性。
摘要由CSDN通过智能技术生成

1. 摘要

论文:Visualizing and Understanding Convolutional Networks
论文链接:https://arxiv.org/pdf/1311.2901v3.pdf

2012 年 AlexNet 出尽了风头,ILSVRC 2013 就有一大批 CNN 模型冒了出来。2013 年的冠军是纽约大学 Matthew Zeiler 和 Rob Fergus 设计的网络 ZFNet,错误率 11.2%。ZFNet 模型更像是 AlexNet 架构的微调优化版,但还是提出了有关优化性能的一些关键想法。还有一个原因,这篇论文写得非常好,论文作者花了大量时间阐释有关卷积神经网络的直观概念,展示了将滤波器和权重可视化的正确方法,介绍了一种新颖的可视化技术,它可以深入了解中间特征层的功能和分类器的操作,以及进行消融实验,以发现不同模型层的性能贡献。

2. 引言

卷积模型被重新关注是因为出现的大规模数据集GPU硬件的支持以及正则化策略的帮助,尽管取得了很大的进步,但是CNN的可解释依旧很差,论文中提出如果不知道神经网络怎样或者为什么工作,那么要想发展一个更好的模型只能通过反复的实验。
所以本文提出了一种可视化的技术揭示了神经网络各层到底在干什么,起到了什么作用。使用一个多层的反卷积网络来可视化训练过程中特征的演化及发现潜在的问题;同时根据遮挡图像局部敏感性对分类结果的影响来探讨对分类任务而言到底那部分输入信息更重要。

3.网络结构

该论文其实就是在AlexNet上进行了细节上的改进,网络结构上并没有大的改变,主要的改变如下:

  • 将第一个卷积层的卷积核大小改为了7×7。
  • 将第二、第三个卷积层的卷积步长都设置为2。
  • 增加了第三、第四个卷积层的卷积核个数
    网络结构图如下:
    在这里插入图片描述

AlexNet在第一层使用的是大小为11✖️11的filter,而ZFNet使用的是7✖️7的filter,是因为对于输入数据来说,第一层卷积有助于保存大量的原始像素信息,11✖️11的filter漏掉了大量的信息,特别是在第一层。

4. 网络中的亮点

4.1 Visualization with a Deconvnet 反卷积可视化

我们若是想要理解卷积是如何操作的就得需要中间feature map的可解释性,本文推出一种可视化的方法,将中间层结果反卷积成输入像素空间进行展示,从而展示了特征图所包含的激活模式,如下图所示,为了理解整个卷积网络,一个卷积层加一个对应的反卷积层,输入是 feature map,输出是图像像素;过程包括反池化操作relu反卷积过程;
在这里插入图片描述

4.1.1 Unpooling

严格意义上的反池化是无法实现的。作者采用近似的实现,在训练过程中用seitch变量去记录每一个池化操作的一个的区域内输入的最大值的位置,这样在反池化的时候,就将最大值返回到其应该在的位置,其他位置的值补 0。

4.1.2 Relu

卷积神经网络使用 relu 非线性函数来保证输出的 feature map总是为正数。在反卷积的时候,也需要保证每一层的 feature map 都是正值,所以这里还是使用 relu 作为非线性激活函数。

4.1.3 Filtering

卷积网络使用可训练的卷积核来卷机上一层的输出获得特征图,为了有效的逆反这个过程,反卷积使用同样的卷积核的转置版本(参数不变,就是将行列互换)

4.2 Training Detail

  • 数据集:ImageNet2012(130万张图像,1000种类别)
  • 预处理:将每张图片预处理为256*256
  • 数据增强:对 256x256 图像进行 224x224 的裁剪(中间区域加上四个角落,以及他们的水平翻转图像)
  • 随机梯度下降更新参数
  • 起始学习率为0.01
  • mini-batch size = 128
  • momentum = 0.9
  • dropout随机值为0.5
  • 权重初始化为0.0.1, bias = 0
  • 使用一台 GTX 580 GPU 训练了 12 天。
  • 开发可视化技术 “解卷积网络”(Deconvolutional Network),有助于检查不同的特征激活和其对输入空间关系。名字之所以称为“deconvnet”,是因为它将特征映射到像素(与卷积层恰好相反)。

4.3 ConvNet Visualization

4.3.1 Feature Visualization

对于第一层,下图展示了对第一层卷积核激活最大的数据集中的原图patch top-9。其中上面33的正方形代表9个不同的卷积核,下面是与上面一一对应的下面每个33正方形中的9个patch代表能使上面卷积核激活最大的前9个真实存在的小图。由于第一层是不需要反卷积的,所以能直接将其可视化出来,ConvNet 的第一层永远是低层特征检测器,在这里就是对简单的边缘、颜色进行检测。第二层就有比较圆滑的特征了。
在这里插入图片描述
对于第二层,从第二层卷积层中挑出16个卷积核,对于每个卷积核都从原始数据集中找到能使其激活最大的9张图片,feature map就是卷积核卷积得到的结果,feature map 体现了输入图像中符合卷积核定义特征的特征,可视化feature map其实就间接的反映了卷积核提取到的是什么特征。

下图中右边的图片就是原始图片,左边图片就是把原始图片输入卷积网络得到feature map,再将feature map反卷积得到的图片。

在这里插入图片描述
后面依次是第三层,第四层以及第五层,可以得出:

  • 第二层应对角落和其他边缘或者颜色的结合
  • 第三层有更加复杂的不变性,捕捉到了相似的纹理
  • 第四层显示了特定类间显著的差异性
  • 第五层显示了有显著构成变化的整个物体。

layer 1、layer 2学习到的特征基本上是颜色、边缘等低层特征;layer 3则开始稍微变得复杂,学习到的是纹理特征,比如上面的一些网格纹理;layer 4学习到的则是比较有区别性的特征,比如狗头;layer 5学习到的则是完整的,具有辨别性关键特征。说明网络层数越高提取的是语义信息,比如狗的脸和鲜花。值得一提的是,在第一层卷积层后面,我们通常会跟一个池化层将图像缩小 (比如将 32x32x32 变为 16x16x3)。这样做的效果是加宽了第二层看原始图像的视野。

4.3.2 Feature Evolution during Training

训练过程中不同层的特征演化过程,下图中每一行表示一个feature map,每一列代表训练的轮数,同样的,每一个小灰色图片都是从原始数据集中挑出来激活值最大的feature map经过反卷积所得到的可视化图像,如果某个图片发生突变则说明了能是激活值最大的原始图片变了,我们也能看出底层的特征能够很快的收敛,而高层很慢才能收敛。
在这里插入图片描述

4.3.3 Feature Invariance

卷积神经网络具有平移和缩放不变性,并且层数越高不变性越强。但是不具有旋转不变性。

不变性是指即使目标发生了改变,但是你依旧可以将它识别出来,比如在图像分类中,图像中的目标不管是移到什么位置,得到的结果(标签)应该是一样的,这就是卷积网络的平移不变性

下图按行顺序分别为对5类图像进行不同程度的垂直方向上的平移、尺度变换、旋转对输出结果影响的分析图。a1为原始变换图像,a2是原始图片的欧氏距离,a3是经过7层变换后的图片的欧氏距离,a4是变换后图片被正确分类的概率图。

在这里插入图片描述

4.4 Architecture Selection

对AlexNet进行改进:

(i) reduced the 1st layer filter size from 11x11 to 7x7
(ii) made the stride of the convolu-tion 2, rather than 4.

作者通过可视化 AlexNet 第一层和第二层的特征,发现比较大的stride和卷积核提取的特征不理想,所以作者将第一层的卷积核从 11x11 减小到 7x7,将 stride 从 4 减小到 2,实验说明,这样有助于分类性能的提升。

在这里插入图片描述

4.5 Occlusion Sensitivity

遮挡实验说明图像的关键区域被遮挡之后对分类性能有很大的影响,说明分类过程中模型明确定位出了场景中的物体。
在这里插入图片描述

4.6 Correspondence Analysis

不同图像的指定目标局部块之间是否存在一致性的关联,作者认为深度模型可能默认学习到了这种关联关系。作者通过对五张不同的狗的图像进行局部遮挡,然后分析原图和遮挡后的图像的特征之间的汉明距离的和值,值越小说明一致性越大。实验表明,对不同的狗的图像遮挡左眼、右眼和鼻子之后的汉明距离小于随机遮挡,证明存在一定的关联性。
比如说我们检测一张人脸的眼睛特征和鼻子特征,那么和不同人的眼睛和鼻子特征有一定的相关性,深度学习模型没有显式的定义这个。
在这里插入图片描述
虽然狗狗之间是不一样的,但是对于遮右眼这个操作对于它们来说是一样的。这表明模型隐含地建立了某种形式的对应关系,如下图在模型的第5层,各部分的对应关系。在第7层,这些分数更加相似,也许是由于上层试图区分不同品种的狗。这表明底层判别的是一类物体共有的部分,而高层判别的是类别中不同的品种这种更高维的部分。
在这里插入图片描述

5.总结

ZFNet将第一个卷积层大小改成7×7了,原来是11×11,第一个卷积层大大小改小了以后,最大作用就是能感受更细致的东西,我们知道11×11是大尺度的模板,它检测的一般都是比较粗旷粒度的系列的特征,比较细节的特征一般不太看,所以这个时候呢第一层卷积用大模板去套的时候就丢掉了很多细节信息。所以ZFNet将第一个卷积层大小改成7×7为后面层的更好的特征学习奠定了基础。

同时ZFNet提出了一种可视化方法,发现学习到的特征远不是无法解释的,而是特征间存在层次性,层数越深,特征不变性越强,类别的判别能力越强,通过可视化模型中间层,在 Alexnet 基础上进一步提升了分类效果,遮挡实验表明分类时模型和局部块的特征高度相关,模型的深度很关键,预训练模型可以在其他数据集上fine-tuning得到很好的结果。

同时ZFNet增加3,4层的卷积核个数是因为在可视化以后,我们可以看到第三层,第四层已经有了一点语义信息,所以增加卷积核个数就能记住更多的有意义的信息了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值