CNN卷积神经网络之ZFNet与OverFeat


前言

这两个网络都是在2013年提出的,都是在AlexNet上稍微改进的,所以就写在了一起,也方便对比。


一、ZFNet

《Visualizing and Understanding Convolutional Networks 》
论文地址:https://arxiv.org/pdf/1311.2901.pdf

顾名思义,ZFNet 通过使用可视化技术揭示了神经网络各层到底在干什么,起到了什么作用。在论文中,介绍了一种可视化的技术,深入了解卷积神经网络中间层的功能和分类器的操作。

1)网络结构

ZFNet 实际上是微调了的 AlexNet,并通过反卷积(Deconvolution)的方式可视化各层的输出特征图,进一步解释了卷积操作在大型网络中效果显著的原因。
头两个全连接层后面加0.5的dropout。相比于AlexNet,主要区别是使用了更小的卷积核和步长,11x11的卷积核变成7x7的卷积核,stride从4变成了2(因为通过可视化发现AlexNet第一层中有大量的高频和低频信息的混合,却几乎没有覆盖到中间的频率信息;且第二层中由于第一层卷积用的步长为4太大了,导致了有非常多的混叠情况;因此滤波器的大小11x11变成7x7,步长4变成了2)。另外,通过可视化发现第一层的卷积核影响大,于是对第一层的卷积核做了规范化,如果RMS(Root Mean Square)超过0.1,就把卷积核的均方根normalize为固定0.1。权重初始化不同,权重初始化为0.01,bias初始化为0。
在这里插入图片描述

2)反卷积可视化

为了把中间层的激活块映射回输入空间,使用了反卷积的技术,如下图所示,左边是反卷积网,右边是卷积网
在这里插入图片描述

从图里可知卷积操作是:卷积层 + 激活函数 + 池化层,得到特征图。为了可视化深层特征,我们需要对卷积进行逆过程操作

1.反最大池化(Max Unpooling)

通过记录最大值所在的位置来近似最大池化的逆操作(即上图中的Switches,或Max Locations)。
在这里插入图片描述

2.ReLu激活

在卷积的流程中使用了激活函数,所以进行反卷积时,也加上了激活函数。

3.反卷积

反卷积其实是一个误导,这里真正的名字就是转秩卷积操作。其实是先按照一定的比例通过补0来扩大输入图像的尺寸,接着旋转卷积核,再进行正向卷积。。反卷积只能恢复尺寸,不能恢复数值。
在这里插入图片描述
在卷积操作中:c x = y
在反卷积操作中:c^Ty=x’

在这里插入图片描述

可视化得出的结论

1.每一层学习不同的东西,第二层学习边缘,角落信息;第三层学到了一些比较复杂的模式,网状,轮胎;第四层展示了一些比较明显的变化,但是与类别更加相关了,比如狗脸,鸟腿;第五层则看到了整个物体,比如键盘,狗。越高层学到的东西越抽象。
在这里插入图片描述
2.**训练过程中,低层特征较少epoch就稳定,层数越高epoch需要越多。**层数越深,学到的特征越有用。
3.遮挡实验:关键区被遮挡后对分类影响很大。

在这里插入图片描述

4.特征不变性:层数越高越具有平移和缩放不变性。
5.特征结构选择:较大stride和卷积核提取的特征不理想。

二、OverFeat

《OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks》发表于2014年ICLR,可以说是单阶段目标检测的开山经典之作,基于AlexNet,实现了识别、定位、检测共用同一个网络框架(one-stage)。 OverFeat=Overall+Features,利用了卷积神经网络的特征提取功能,它把分类过程中,提取到的特征,同时又用于定位检测等任务。这里只介绍图像分类

1)网络结构

基于AlexNet,分为特征提取层(前五层的conv层)和分类器(后三层全连接层),不再使用LRN;使用非重叠的池化;使用更小的步长,大的步长可以提高速度但是损害了精度(第一二层卷积使用了更小的stride,stride=2)。和AlexNet一样,头两个全连接层后面加0.5的dropout。(注:这里的全连接是1*1卷积核的全卷积。)

超参数:权重初始化不同,全部用(0,0.01)的高斯分布初始化。momentum为0.6,学习率为0.005。在(30,50,60,70,80)epoch学习率减半。

预测:在测试阶段,不再使用AlexNet的10 views法,探索了多尺度来进行平均预测的方法,直接从原图rescale成多个尺度的图像输入网络进行多尺度预测。

2)创新方法

1.全卷积

没有全连接层,利用1*1的卷积核代替。这样的好处是,输入的图片大小可变。如果使用全连接,就会把它压平再全连接,这样就破坏了feature map的图像位置关系类似传统的滑动窗口,但只需要执行一次,保证了效率同时可以用各种不同尺度图像,不局限于固定的裁剪翻转方式,而且消除了很多冗余计算,提高了模型的鲁棒性又保证了效率。

在这里插入图片描述

2.多尺度预测

采用了六种不同尺度的测试图像输入(每个尺度的图像还增加了水平翻转),结合全卷积网络结构,最终输出的维度是不同的。
如上图所示,假如图片更大时,我们得到一个2x2的output,这个时候我们可以简单采用对着2x2大小的图片求取平均值,作为图片属于各个类别的概率值。
在这里插入图片描述

3.Offset pooling

作者认为在特征提取最后一层(第五层conv)直接做max pooling,将导致最终输入图像的检测粒度不足,所以增加了offset pooling的操作,其一维的offset pooling的示意如下图所示:
在这里插入图片描述
一般我们用的是△=0。论文中是把上面的△=0、△=1、△=2的三种组合方式的池化结果,分别送入网络的分类器。这样,网络在最后输出的时候,就会出现3种预测结果。

如果是图片,那么(△x,△y)就会有9种取值;在做图片分类的时候,在网络的某一个池化层加入了这种offset 池化方法,然后把这9种池化结果,分别送入后面的网络层,最后我们的图片分类输出结果就可以得到9个预测结果。
在这里插入图片描述

从验证结果来看:offset-pooling可以提升模型表现,但是提升不大,说明实际上offset-pooling作用不算很大。而使用多scale,增加scale可以提升模型表现
对于定位和检测任务,可参考: https://zhuanlan.zhihu.com/p/66154322.

上一篇:CNN卷积神经网络之ZFNet与OverFeat.
下一篇:CNN卷积神经网络之VGGNet.

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值