VGG(大规模图像识别的深度卷积神经网络)论文解读

VGG模型由KarenSimonyan和AndrewZisserman在2015年ICLR提出,以其小卷积核堆叠和深度著称。该模型在ILSVRC2014中取得显著成绩,推动了3x3卷积核的广泛应用。VGG通过多尺度测试和数据增强策略提升性能,展示了深度对分类准确性的影响。此外,1x1卷积用于增加非线性,优化模型结构。
摘要由CSDN通过智能技术生成


Very deep convolutional networks for large-scale image recognition
大规模图像识别的深度卷积神经网络
作者:Karen Simonyan & Andrew Zisserman
单位:VGG(牛津大学视觉几何组)
发表会议及时间:ICLR 2015


一 论文总体创新点

  • 模型结构设计上:首次采用小卷积核 堆叠使用卷积核 分辨率减半,通道数翻倍
  • 训练技巧上:增加了尺度扰动 预训练模型初始化
  • 测试技巧上:多尺度测试(Dense测试/Multi-crop测试) 多模型融合

二 研究背景、成果和意义

2.1 研究背景

这个模型是在ILSVRC2014挑战赛上产生的,在这个竞赛上脱颖而出大量的经典模型:AlexNet、VGG、GoogLeNet等。

  • AlexNet:ILSVRC-2012 分类冠军,里程碑的CNN模型。
  • ZFNet:ILSVRC-2013分类冠军,对AlexNet改进。
  • OverFeat:ILSVRC-2013定位冠军,集分类、定位和检测于一体的卷积网络方法。

VGG借鉴了AlexNet卷积模型结构,借鉴了ZFNet采用小卷积核的思想,普遍用3X3卷积核,借鉴了OverFeat全卷积,实现高效的稠密预测(Dense),尝试1X1的卷积核。

2.2 研究成果

VGG在比赛中取得定位第一,分类第二的成绩 GoogLeNet取得分类第一,定位第二的成绩。
开启了小卷积核时代:3X3成为主流模型
作为各类分类任务的骨干网络模型结构:分类、定位、检测、分割一系列图像任务大都有VGG作为backbone。

三 摘要的核心

  • 在大规模图像识别任务中,探究卷积网络深度对分类准确率的影响
  • 研究3*3卷积核增加网络模型深度的卷积网络的识别性能,同时将模型加深到16-19层

四 VGG结构

论文中给出了ConvNet Configuration五个模型的架构,从VGG11到VGG19,可以看下图,论文中给出的结构模型。
VGG
从VGG11到VGG19 他们的共性有:首先有5个Maxpool,这个的作用是降低分辨率,一个Maxpool的话可以一张图片的分辨率降低1/2,用5个的话就是32倍,从图上看输入是224,经过第一个Maxpool后变为112,依次分辨率减半,但是他的通道数是依次增加的,为了不损失精度的做法。然后是用3个FC层进行分类输出,Maxpool之间采用多个卷积层堆叠,对特征进行抽取和抽象。

为什么从VGG11层开始!? 论文中提到Goodfellow et al. (2014) applied deep ConvNets (11 weight layers) to the task of street number recognition。

从VGG11 到 VGG19他的演变过程是:A是11层 到A-LRN在第一个卷积层上加了LRN,但是效果不是很好,LRN也就在这篇论文中被毙掉了,然后B模型是在第1、2个block中增加了1个卷积33卷积核,C模型在第3、4、5个block分别增加了1个11卷积核,表明增加非线性有益于提升指标。D模型在3、4、5个block将1X1的卷积核替换为3X3,E模型分别在D的基础上,又加了1个3X3卷积。

但是,参数量的话并没有增加多少。请添加图片描述
请添加图片描述
请添加图片描述

五 VGG特点

5.1 堆叠3X3卷积

  • 增大感受野
  • 2个3X3卷积相当于1个5X5卷积
  • 同理3个3X3卷积堆叠等价于一个7X7卷积
  • 增加非线性激活函数,增加特征抽象能力‘
  • 减少了训练参数
  • 可看成是7X7卷积核的正则化,强迫分解为3X3
    在这里插入图片描述
    这里减少的参数计算方法:
    假设输入、输出通道均为C个通道,一个7X7卷积核需要的参数:7X7XCXC ,三个3X3卷积核所需要参数量:3X(3X3XCXC),参数减少比 44%

5.2 尝试1X1卷积 借鉴NIN 可以增加非线性激活函数,提升模型效果

六 训练技巧

6.1 数据增强

方法一: 针对位置
在训练阶段,按比例缩放图片至最小边S,随机位置裁剪出224X224区域,随机进行水平翻转
方法二:针对颜色
修改RGB通道的像素值,实现颜色扰动

S的设置方法:
固定值:固定为256或384
随机值:每个batch的S在[256,512],实现尺度扰动

6.2 预训练模型初始化

深度神经网络对初始化敏感
1 深度加深时,用浅层网络初始化
例:B、C、D、E用A模型初始化
2 Multi-scale训练时,用小尺度初始化
S=384时,用S=256模型初始化
S=[256,512]时,用S=384模型初始化

7 测试技巧

7.1 多尺度测试

图片等比例缩放至最短边为Q,设置3个Q,对图片进行预测,取平均
方法一: 当S为固定值时,Q=[S-32,S,S+32]
方法二: 当S为随机值时,Q=(S_min,0.5*(S_min+S_max),S_max)
请添加图片描述

7.2 稠密测试(Dense test):将FC层转换为卷积操作,变为全卷积网络,实现任意尺度图片输入请添加图片描述

7.3 Multi-Crop测试

借鉴AlexNet与GoogLeNet对图片进行Multi-crop,裁剪大小为224*224,并水平翻转1张图,缩放至3种尺寸,然后每种尺寸裁剪出50张图片。

7.4 多尺度测试

等比例缩放图像至三种尺寸
方法一:Dense:全卷积,sumpool得到11000
方法二:Multi-crop:多个位置裁剪224
224区域
方法三:Multi-crop & Dense:综合取平均

八 实验结论

8.1 Single scale evaluation

S为固定值时:Q=S,S为随机值时:Q=0.5*(S_min + S_max)
结论:

  1. 误差随深度加深而降低,当模型到达19层时,误差饱和,不再下降
  2. 增加1*1有助于性能提升
  3. 训练时加入尺度扰动,有助于性能提升
  4. B模型中,33替换为55卷积,top1下降7%

8.2 Multi scale evaluation

方法一:Q=[S-32,S,S+32]
方法二:Q=[S_min,0.5*(S_min+S_max),S_max]
结论:

  1. 测试时采用采用Scale jittering(尺度扰动)有助于性能提升

8.3 Multi crop evaluation

方法:等步长的滑动224224的窗口进行裁剪,在尺度为Q的图像上裁剪55=25张图像,然后再进行水平翻转,得到50张图像,结合三个Q值,一张图片得到150张图片
结论:

  1. Multi-crop优于dense
  2. Multi-crop结合dense,可形成互补,达到最优结果

九 论文启发点

  1. 采用小卷积核,获得高精度
  2. 采用多尺度及稠密预测,获得高精度
  3. 1*1的卷积可认为是线性变换,同时增加非线性层
  4. 填充大小准则:保持卷积后特征图分辨率不变
  5. LRN对进度无提升
  6. S远大于224,图片可能仅包含物体的一部分
  7. 大尺度模型采用小尺度模型初始化,可加快收敛
  8. 物体尺度不一,因此采用多尺度训练,可以提高精度Mutli crop存在重复计算,因而低效
  9. mutli crop可看成dense的补充,因为他们边界处理有所不同
  10. 小而深的卷积网络优于大而浅的卷积网络
  11. 尺度扰动对训练和测试阶段有帮助
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值