very deep convolutional networks for lagre-scale image recognition 大规模图像识别的深度卷积神经网络
-
ILSVRC-2014 定位冠军,分类亚军
-
开启小卷积核,深度卷积模型时代
-
相较于AlexNet top-5error从15.3%减小至7.3%
- OverFeat 提出了FC 全卷积利用1*1的卷积代替全连接层
研究背景
- AlexNet:借鉴卷积模型结构
- ZFNet:借鉴其采用小卷积核思想
- OverFeat:借鉴全卷积,实现高效的稠密(Dense)预测
- NIN:尝试1*1卷积
研究意义
- 开启小卷积核时代:3*3卷积核成为主流模型
- 作为各类图像任务的骨干网络结构:分类、定位、检测、分割一系列图像任务大都有VGG为骨干网络的尝试
摘要核心
-
1.本文主题:在大规模图像识别任务中,探究卷积网络深度对分类准确率的影响
-
2.主要工作:研究3*3卷积核增加网络模型深度的卷积网络的识别性能,同时将模型加深到16-19层
-
3.本文成绩:VGG在ILSVRC-2014获得了定位任务冠军和分类任务亚军
-
4.泛化能力:VGG不仅在ILSVRC获得好成绩,在别的数据集中表现依旧优异
-
5.开源贡献:开源两个最优模型,以加速计算机视觉中深度特征表示的进一步研究
VGG结构
共性:
- 5个maxpool
- maxpool后,特征图通道数翻倍直至512
- 3个FC层进行分类输出
- maxpool之间采用多个卷积层堆叠,对特征进行提取和抽象
VGG特点
- 增大感受野 2个3 *3堆叠等价于1个5 *5 3个3 *3堆叠等价于1个7 *7
- 堆叠3 *3卷积核的优点
1.增大感受野
2.增加非线性激活函数,增加特征抽象能力
3.减少训练参数
4.可看成77卷积核的正则化,强迫7 * 7分解为33
假设输入,输出通道均为C个通道,一个7 * 7卷积核所需参数量:7 * 7 * C * C= 49C^2,三个3 * 3卷积核所需参数量:3 * (3 * 3 * C * C)=27C^2,参数减少比:(49-27)/49 = 44%
训练技巧
数据增强
针对位置
训练阶段:
- 按比例缩放图片至最小边为S scale jittering 尺度扰动
- 随机位置裁剪出224*224区域
- 随机进行水平翻转
S值设置方法:
- 固定值:固定为256,或384
针对颜色
- 修改RGB通道的像素值,实现颜色扰动
- 随机值:每个batch的S在[256,512],实现尺度扰动
预训练模型初始化
深度神经网络对初始化敏感
1.深度加深时,用浅层网络初始化
B,C,D,E用A模型初始化
2.Multi-scale训练时,用小尺度初始化
S=384时,用S=256模型初始化S=[256, 512]时,用S=384模型初始化
- 现在有Xavier 、Kaiming初始化方法、Batch Normalization等方法,无需
测试技巧
- 多尺度测试
图片等比例缩放至最短边为Q,设置三个Q(针对S的不同而不同:±32 or 256、384、512),对图片进行预测,取平均
- Dense稠密测试
将FC层转换为卷积操作,变为全卷积网络,实现任意尺寸图片输
第一个FC层变7 * 7卷积,最后二个FC层变1*1卷积
1.经过全卷积网络得到NN1000特征图
2.在通道维度上求和(sum pool)计算平均值,得到1*1000输出向量
- Multi-Crop测试
裁剪大小为224*224,并水平翻转
实验结果及分析
- Single scale evaluation(单尺度 固定Q)
结论:
1.误差随深度加深而降低,当模型到达19层时,误差饱和,不再下降
2.增加1 * 1有助于性能提升
3.训练时加入尺度扰动,有助于性能提升
4.B模型中,3 * 3替换为5*5卷积,top1下降7%
- Multi scale evaluation(不固定Q的尺寸)
1.测试时采用Scale jittering有助于性能提升
- Multi crop evaluation
- 多模型融合
- 与其他模型的对比