VGG网络

VGG网络

研究背景

  • ILSVRC-2014比赛
  • 基于AlexNetZFNetOverFeat的相关研究开展

相关研究

  • AlexNetILSVRC-2012分类冠军,里程碑的CNN模型(借鉴卷积模型结构)

  • ZFNetILSVRC-2013分类冠军,对AlexNet的参数改进(借鉴其采用小卷积核思想)

    1. CONV1:将(11x11 stride 4)改成(7x7 stride 2)
    2. CONV3、4、5将卷积核(384,384,256)改成(512,1024,512)
  • OverFeatILSVRC-2013定位冠军,集分类、定位和检测于一体的卷积网络方法(借鉴全卷积,实现高效的稠密(Dense)预测)
    全卷积替换全连接层
    全连接层对参数的计算要求高,当输出的数字不对就无法进行全连接计算。针对这个问题,采用卷积去替换全连接层,这样能够有效的避免这个问题。同时这个方法也叫做Dense(稠密)预测
    在这里插入图片描述
    通过上图其实就是可以看出:替换成卷积能够有效的避免当输入图片尺寸与设计的不一样时,无法进行全连接卷积计算。同时增强1x1能够有效的增强网络非线性能力。

  • NIN:(尝试1x1卷积)1x1能够有效的增强网络非线性能力

研究成果

1.ILSVRC-2014定位冠军、分类亚军
2.开源了VGG16VGG19

研究意义

开启小卷积核,深度卷积模型时代

研究成果

在这里插入图片描述

VGG结构

在这里插入图片描述
VGG的结构比较简单,且计算也比较容易。有5maxpool,每经过一个maxpool之后,特征图通道数翻倍至512
其中VGG之所以从11开始设计,可能参考了参考了这篇文献Goodfellow, I. J., Bulatov, Y., Ibarz, J., Arnoud, S., and Shet, V. Multi-digit number recognition from street view imagery using deep convolutional neural networks. In Proc. ICLR, 2014.这篇文献就是从11层开始设计的。

演变过程

  • A:11层卷积
  • A-LRN:基于A增加一个LRN
  • B:第1、2block中增加1个卷积3x3卷积
  • C:第3、4、5block分别增加1个1x1卷积,表明增加非线性有益于指标提升
  • D:第3、4、5block1x1卷积替换成3x3
  • E:第3、4、5block再分别增加1个3x3卷积

VGG特点

堆叠3x3卷积核

  • 能增大感受野

在这里插入图片描述
通过上图可以发现,2个3x3堆叠等价于1个5x5

  • 增加非线性激活函数,能够增加特征抽线能力
  • 减少训练参数
    一个7x7卷积核所需要的参数量:7x7xCxC=49^2
    三个3x3卷积核所需要的参数量:3x(3x3xCxC)=27^2
  • 可看出7x7卷积核的正则化,强迫7x7分解为3x3

尝试1x1卷积

  • 借鉴NIN,引入利用1x1卷积
  • 增加非线性激活函数,提升模型效果

训练技巧

数据增强

  • 方法一:针对位置
    训练阶段:
  1. 按比例缩放图片至最小边为S
    关于S设置方法:
    1.固定值:固定为256,或384
    2.随机值:每个batch的S在[256,512],实现尺度扰动
    在这里插入图片描述

  2. 随机位置裁剪处224x224

  3. 随机进行水平翻转

  • 方法二:针对颜色
    修改RGB通道的像素值,实现颜色扰动

预训练模型初始化

深度神经网络对初始化敏感
1.深度加深,用浅层网络初始化。即:B、C、D、EA模型初始化

2.Multi-scale训练时,用小尺度初始化

  • S=384时,用S=256模型初始化
  • S=[256,512]时,用S=384模型初始化

上述模型初始化也可以不用,直接使用Xavier

测试技巧

测试图片缩放

图片等比例缩放至最短边为Q
设置三个Q,对图片进行预测,去平均值

  • 方法一 当S为固定值时
    Q = [S-32,S,S+32]

  • 方法二 当S为随机值时
    Q = [S_min,0.5 x (S_min + S_max),S_max]

稠密测试(Demse test)

FC层转换为卷积操作,变为全卷积网络,实现任意尺度图片输入

  • 经过全卷积网络得到NxNx1000特征图
  • 在通道维度上求和(sum pool)计算平均值,得到1x1000输出向量
    在这里插入图片描述
    假设以AlexNet为例,经过前面的convmax pooling最后输出为7x7x512。如果是FC层,这里需要将展开为特征向量,然后与后面进行全连接。但是替换成7x7卷积核之后,只需要4096个就可以实现了。

Multi-Crop测试

借鉴AlexNetGooleLeNet,对图片进行Multi-crop,裁剪大小为224x224,水平翻转。1张图,缩放至3种尺寸,然后每种尺寸裁剪出50张图片,最后就有150张图片。
注:裁剪的时候,假设256,那么(256-224)/4=8。即每个8裁剪一次,这样就会有5x5张图片,然后水平翻转后有50张,然后3种尺寸,最后就有150

在这里插入图片描述

多尺度测试技巧

首先将图片缩放至三种尺寸,Q1、Q2、Q3
方法1:Dense:全卷积,sum pool,得到1x1000
方法2:Muti-crop:多个位置裁剪224x224
方法3:Muti-crop & Dense:综合取平均

实验结构及分析

single scale evaluation

S为固定值,Q = SS随机值时:Q = 0.5(S_min + S_max)
在这里插入图片描述
结论

  • 误差随着深度的增加而降低,当网络层数达到19层时,误差饱和
  • 增加x1有助于性能提升
  • 训练时加入尺度扰动,有助于性能提升
  • 5x5替换3x3,对性能也有提升

multi scale evaluation

  • 方法一 当S为固定值时
    Q = [S-32,S,S+32]

  • 方法二 当S为随机值时
    Q = [S_min,0.5 x (S_min + S_max),S_max]
    在这里插入图片描述
    结论:测试时采用多尺度扰动,有助于性能提升

multi crop evaluation

方法:等步长的滑动窗口,在尺度为Q的图上裁剪5x5张图片,然后再进行水平翻转。然后有3Q值。一张图片得到150张图片输入到模型中。
在这里插入图片描述
结论:multi-cropdense效果好。二者可形成互补(multi-crop未能很好的捕捉图片的边界信息,dense能够很好的捕捉边界信息

convnet fusion

方法:多模型融合
在这里插入图片描述
采用最优的两个模型D、E,结合multi-cropdense,得到最优结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值