一、论文研究背景、成果及意义
https://download.pytorch.org/whl/torch_stable.html(pytorch相应的轮子)
相关研究
1、AlexNet:借鉴卷积模型结构
2、 ZFNet: 借鉴其采用小卷积核思想
3、 OverFeat:借鉴全卷积,实现高效的稠密(Dense)预测
4、 NIN:尝试11卷积
研究意义
1、开启小卷积核时代:33卷积核成为主流模型
2、作为各类图像任务的骨干网络结构:分类、定位、检测、分割一系列图像任务大都有VGG为骨干 网络的尝试
二、摘要
1、本文主题:在大规模图像识别任务中,探究卷积网络深度对分类准确率的影响
2、主要工作:研究33卷积核增加网络模型深度的卷积网络的识别性能,同时将模型加深到16-19层
3、 本文成绩:VGG在ILSVRC-2014获得了定位任务冠军和分类任务亚军
4、 泛化能力:VGG不仅在ILSVRC获得好成绩,在别的数据集中表现依旧优异
5.、开源贡献:开源两个最优模型,以加速计算机视觉中深度特征表示的进一步研究
三、VGG结构
VGG11至VGG19演变过程
共性:
1、 5个maxpool
2、maxpool后,特征图通道数翻倍直至512
3、3个FC层进行分类输出
4、 maxpool之间采用多个卷积层堆叠,对特征 进行提取和抽象
演变过程:
A:11层卷积
A-LRN:基于A增加一个LRN
B: 第1,2个block中增加1个卷积33卷积
C: 第3, 4, 5个block分别增加1个11卷积, 表明增加非线性有益于指标提升
D:第3, 4, 5个block的11卷积替换为33,
E:第3, 4, 5个block再分别增加1个33卷积,越靠后使用非线性激活函数
参数量的对比
VGG16模型结构
参数计算
batchsize不能设置太大,一张图片要占100多兆
VGG特点:堆叠3*3卷积核
1、增大感受野:2个33堆叠等价于1个55 ,3个33堆叠等价于1个77
2、 增加非线性激活函数,增加特征抽象能力
3、减少训练参数
举例:假设输入通道均为C个通道
一个77卷积核所需参数量:77CC=49C^2
三个33卷积核所需参数量:3(33CC)=27C^2
参数减少比(49-27)/49~=44%
4、可看成77卷积核的正则化,强迫77分解为33
四、训练技巧及测试技巧
训练技巧:尺度扰动(Scale jittering)
数据增强
方法一:针对位置
训练阶段:
① 按比例缩放图片至最小边为S(经过等比例缩放的最短边)
② 随机位置裁剪出224*224区域
③ 随机进行水平翻转
方法二:针对颜色
修改RGB通道的像素值,实现颜色扰动
S设置方法:
1、 固定值:固定为256,或384
2、 随机值:每个batch的S在[256, 512],实现尺度扰动
预训练模型
深度神经网络对初始化敏感,深度卷积网络初始化可以加速模型的训练,反之容易梯度消失、爆炸
1、 深度加深时,用浅层网络初始化 B,C,D,E用A模型初始化
2、 Multi-scale训练时,用小尺度初始化
S=384时,用S=256模型初始化 (大尺度用小尺度初始化)
S=[256, 512]时,用S=384模型初 始化 (多尺度用单尺度初始化)
3、Xavier初始化
测试技巧:
多尺度测试:得到不同尺度的图片
图片等比例缩放至最短边为Q 设置三个Q,对图片进行预测,取平均
方法1 当S为固定值时:
Q = [S-32, S, S+32]
方法2 当S为随机值时:
Q = (S_min, 0.5*(S_min + S_max), S_max)
1、Dense测试
a、将FC层转换为卷积操作,变为全卷积网络,实现任意尺寸图片输入
经过全卷积网络得到 NN1000 特征图
b、在通道维度上求和(sum pool)计算平均值, 得到1*1000 输出向量
2、Multi-crop测试
借鉴AlexNet与GoogLeNet,对图片进行Multi-crop,裁剪大小为224224,并水平翻转 。1张图,缩放至3种尺寸,然后每种尺寸裁剪出50张图片;50 = 552,有三种尺寸的图片,350=150张。
总结:
五、论文总结
超参数的设置:
bs=256
m=0.9
L2=5e-4
lr=0.01(准确率不下降时,lr下降)
max_epoch=74
实验结果及分析
1、Single scale evaluation
S为固定值时:Q = S, S为随机值时:Q = 0.5(S_min + S_max)
结论:
1) 误差随深度加深而降低,当模型到 达19层时,误差饱和,不再下降
2)增加11有助于性能提升
3) 训练时加入尺度扰动,有助于性能 提升
4) B模型中,33替换为55卷积,top1 下降1
2. Multi scale evaluation
方法1 :
Q = [S-32, S, S+32]
方法2:
Q = (S_min, 0.5*(S_min + S_max), S_max)
结论 :
1 ). 测 试 时采 用 S c a l e j i t t e r i n g 有 助 于 性 能提 升
3. Multi crop evaluation
方法: 等步长的滑动224224的窗口进行裁剪,在尺 度为Q的图像上裁剪55=25张图片,然后再进 行水平翻转,得到50张图片,结合三个Q值, 一张图片得到150张图片输入到模型中
结论 :
1 )m u l i t - c r o p 优 于 d e n s e
2 ) m u l t i - c r o p 结 合 d e n s e , 可 形 成 互 补 , 达 到 最 优 结 果
论文总结
关键点&创新点
堆叠小卷积核,加深网络
• 训练阶段,尺度扰动
• 测试阶段,多尺度及Dense+Multi crop
启发点
1)采用小卷积核,获得高精度
2)采用多尺度及稠密预测,获得高精度
3)1*1卷积可认为是线性变换,同时增加非线性层
4)填充大小准则:保持卷积后特征图分辨率不变
5)LRN对精度无提升
6)Xavier初始化可达较好效果
7)S远大于224,图片可能仅包含物体的一部分
8) 大尺度模型采用小尺度模型初始化,可加快收敛
9) 物体尺寸不一,因此采用多尺度训练,可以提高精度
10) multi crop 存在重复计算,因而低效
11) multi crop可看成dense的补充,因为它们边界处理有所不同
12) 小而深的卷积网络优于大而浅的卷积网络
13) 尺度扰动对训练和测试阶段有帮助