深入浅出之ZFNet网络

一、ZFNet的提出背景、时间与作者

  • 提出背景:在ZFNet提出之前,AlexNet已经在图像识别领域取得了显著成果,但研究人员仍在探索如何进一步优化卷积神经网络(CNN)的结构和性能。ZFNet的提出旨在通过改进AlexNet的某些方面,进一步提升CNN在图像分类等任务上的表现。
  • 提出时间:ZFNet由Matthew D. Zeiler和Rob Fergus于2013年在论文《Visualizing and Understanding Convolutional Networks》中提出。
  • 作者:Matthew D. Zeiler和Rob Fergus。

二、主要贡献

  • 网络结构优化:ZFNet在AlexNet的基础上进行了微调,如减小了第一个卷积层的卷积核尺寸和步长,从而保留了更多特征,提升了网络性能。
  • 可视化技术:ZFNet通过可视化技术揭示了神经网络各层的功能和作用,帮助研究人员更好地理解CNN的工作原理。
  • 性能提升:在ILSVRC 2013图像分类挑战中,ZFNet作为基础模型的集成模型获得了冠军,展现了其优异的性能。

三、网络结构

ZFNet的网络结构基于AlexNet,但进行了以下主要修改:

  • 第一个卷积层:将卷积核尺寸从11x11减小为7x7,步长从4减小为2。
  • 第二个卷积层:为了保持后续feature map的尺寸一致,将步长从1改为2。
  • 增加了卷积核数量:在第三、第四卷积层中,分别将卷积核数量增加到512和1024。
  • 全连接层:与AlexNet类似,ZFNet也包含了多个全连接层,用于最终的分类任务。

ZFNet=( conv + relu + maxpooling )×2+( conv + relu )×3+fc×2+ softmax 

ZFNet 仅仅是在 AlexNet 上做了一些调参:
改变了 AlexNet 的第一层,即将卷积核的尺寸大小 11x11 变成 7x7,并且将步长 4 变成了 2。

ZFNet实际上是微调(Fine-tuning)了AlexNet, 并通过反卷积(Deconvolution) 的方式可视化各层的输出特征图,进一步解释了卷积操作在大型网络中效果显著的原因。

对卷积结果的可视化
作者将卷积核的计算结果(feature maps)映射回原始的像素空间(映射的方法为反卷积,反池化)并进行可视化。例如,下图Layer1区域最左上角的九宫格代表第一层卷积计算得到的前九张feature maps映射回原图像素空间后的可视化(称为f9)。第一层卷积使用96个卷积核,这意味着会得到96张feature maps,这里的前九张feature maps是指96个卷积核中值最大的9个卷积核对应生成的feature maps(这里称这9个卷积核为k9,即,第一层卷积最关注的前九种特征)。可以发现,这九种特征都是颜色和纹理特征,即蕴含语义信息少的结构性特征。
为了证明这个观点,作者又将数据集中的原始图像裁剪成小图,将所有的小图送进网络中,得到第一层卷积计算后的feature maps。统计能使k9中每个kernel输入计算结果最大的前9张输入小图,即9*9=81张,如下图红框中右下角所示。结果表明刚刚可视化的f9和这81张小图表征的特征是相似的,且一一对应的。由此证明卷积网络在第一层提取到的是一些颜色,纹理特征。

同理,观察Layer2和Layer3的可视化发现,第二次和第三次卷积提取到的特征蕴含的语义信息更丰富,不再是简单的颜色纹理信息,而是一些结构化的特征,例如蜂窝形状,圆形,矩形等等。那么网络的更深层呢?我们看下图:

在网络的深层,如第四层,第五层卷积提取到的是更高级的语义信息,如人脸特征,狗头特征,鸟腿鸟喙特征等等。
最后,越靠近输出端,能激活卷积核的输入图像相关性越少(尤其是空间相关性),例如Layer5中,最右上角的示例:feature map中表征的是一种绿色成片的特征,可是能激活这些特征的原图相关性却很低(原图是人,马,海边,公园等,语义上并不相干);其实这种绿色成片的特征是‘草地’,而这些语义不相干的图片里都有‘草地’。‘草地’是网络深层卷积核提取的是高级语义信息,不再是低级的像素信息,空间信息等等。

网络中对不同特征的学习速度
如下图所示,横轴表示训练轮数,纵轴表示不同层的feature maps映射回像素空间后的可视化结果:

由此可以看出,low-level的特征(颜色,纹理等)在网络训练的训练前期就可以学习到, 即更容易收敛;high-level的语义特征在网络训练的后期才会逐渐学到。 由此展示了不同特征的进化过程。这也是一个合理的过程,毕竟高级的语义特征,要在低级特征的基础上学习提取才能得到。

图像的平移、缩放、旋转对CNN的影响
下图是探究图片平移对卷积模型影响的实验,a1是五张不同的图片经过不同大小的左右平移后的结果。
a2是原始图片与经过平移后的图片分别送进卷积网络后,第一层卷积计算得到的feature maps之间的欧氏距离,可以看出当图片平移0个像素时(即图中横轴=0处),距离最小(等于0)。其他位置随着左右平移,得到的距离都会陡增或陡减。五条彩色曲线分别代表五张不同的原始图片。
a3是原始图片与经过平移后的图片分别送进卷积网络后,第七层卷积计算得到的feature maps之间的欧氏距离,可以看出趋势与a2类似;但是,增减的曲线变换更平缓,这一定程度上说明了网络的深层提取的是高级语义特征,而不是低级的颜色,纹理,空间特征。这种语义信息不会随着平移操作而轻易改变,例如狗的图片平移后还是狗。
这个性质叫做:卷积拥有良好的平移不变性。
最后,a4表示的是原始图片与经过平移后的图片分别送进卷积网络后,卷积网络最后的识别结果。可以看出识别准确率是相对平稳的,且在横轴x=0时,识别准确率较高(此时,图片不平移,识别物体基本在图片中心位置)。

下图探究图片缩放对卷积模型影响的实验,实验方法和表述与上面探讨平移时的设置类似。结果表明,网络的浅层相较于网络的深层对缩放操作更敏感;且最终的识别准确率较平稳。这个趋势跟探究平移操作对卷积模型影响的趋势类似,即:卷积操作也具有良好的缩放不变性。

下图是探究图片旋转对卷积模型影响的实验,可以看出旋转操作对卷积的影响正好与平移和缩放相反:卷积第一层对旋转的敏感程度较低,第七层对旋转的敏感程度高。这是因为颜色,纹理这些低级特征旋转前后还是相似的特征;但是目标级别的高级语义特征却不行,例如“特征9”旋转180°后变成了“特征6”. 看最终的识别准确率曲线也能发现旋转0°和350°时模型的识别准确率最高,因为此时旋转后模型最接近原始图片。对于某些存在对称性质的特征,例如原图中的电视,在旋转90°,180°,270°时都有不错的识别准确率。因此,卷积操作不具有良好的旋转不变性。

总结:
卷积的平移不变性是从滑动遍历这个操作带来的,不管一个特征出现在图中的什么位置,卷积核都可以通过滑动的方式,滑动到特征上面做识别。
卷积的缩放不变性则是从网络的层级结构中获得,不同层的卷积操作拥有不同尺寸的计算感受野 。至于旋转不变性缺失找不到对应的操作。
那么,为什么现在的一些成熟项目,例如人脸识别,图像分类等依然可以对旋转的图片做识别呢? 这是因为我们用大量的训练数据,旋转不变性可以从大量的训练数据中得到。其实,不仅是旋转不变性,卷积本身计算方法带来的平移不变性和缩放不变性也是脆弱的,大部分也是从数据集中学习到的。深度学习是一种基于数据驱动的算法。

改变卷积核的大小
ZFNet通过对AelxNet可视化发现,由于第一层的卷积核尺寸过大导致某些特征图失效(失效指的是一些值太大或太小的情况,容易引起网络的数值不稳定性,进而导致梯度消失或爆炸。图中的体现是(a)中的黑白像素块)。


此外,由于第一层的步长过大,导致第二层卷积结果出现棋盘状的伪影(例如(d)中第二小图和倒数第三小图)。因此ZFNet做了对应的改进。即将第一层 11X11步长为4的卷积操作变成 7X7步长为2的卷积。

遮挡对卷积模型的影响
ZFNet通过对原始图像进行矩形遮挡来探究其影响,如下图所示:

b表示计算遮挡后的图像经过第五个卷积层后得到的feature map 值的总和。红色代表更大的值。 由此可以看出来卷积计算后的特征图也是保留了原始数据中不同类别对象在图像中的空间信息。
c左上角的小图是经过第五个卷积后值最大的特征图的deconv可视化结果。由此实例2(可视化结果为英文字母或汉字,但原图的标签是“车轮”)可以看出卷积后值最大的特征图不一定是对分类最有作用的。c中的其他小图是统计数据集中其他图像可以使该卷积核输出最大特征图的deconv可视化结果。
d表示灰色滑块所遮挡的位置对图像正确分类的影响,红色代表分类成功的可能性大。例如博美犬的图像,当灰色滑块遮挡到博美犬的面部时,模型对博美犬的识别准确率大幅度下降。
e表示模型对遮挡后的图像的分类结果是什么。还拿博美犬的例子,灰色遮挡在图片中非狗脸的位置时,都不影响模型将其正确分类为博美犬(大部分都是蓝色标签,除了遮挡滑动到狗脸位置时)。
这个遮挡实验证明,深层的网络提取的是语义信息(例如狗的类属),而不是low-level的空间特征。因此对随机遮挡可以不敏感

四、特点

  • 细节优化:通过对AlexNet的某些细节进行优化(如减小卷积核尺寸和步长),ZFNet在保持网络结构基本一致的同时,提升了性能。
  • 可视化技术:ZFNet引入了可视化技术,帮助研究人员更好地理解CNN的工作原理,促进了CNN的发展。
  • 高性能:在图像分类等任务上,ZFNet展现出了优异的性能。

五、优缺点

  • 优点
    • 性能优异:在多个图像分类任务上取得了显著成果。
    • 可视化技术:有助于研究人员更好地理解CNN的工作原理。
    • 细节优化:通过对AlexNet的微调,提升了网络性能。
  • 缺点
    • 计算量较大:由于网络结构相对复杂,计算量较大,对硬件资源要求较高。
    • 可扩展性有限:虽然ZFNet在图像分类等任务上表现出色,但在其他复杂任务(如目标检测、语义分割等)上的可扩展性可能受限。

六、pytorch实现

七、应用场景

ZFNet主要应用于图像分类领域,并在该领域取得了显著成果。此外,由于其优异的性能和可视化技术的引入,ZFNet也为其他计算机视觉任务(如目标检测、语义分割等)的研究提供了有益的参考和借鉴。在实际应用中,ZFNet可以用于图像识别、物体检测、场景理解等多个方面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值