一、论文研究背景、成果
1.论文研究背景
自从2012年AlexNet将深度学习的方法应用到ImageNet的图像分类比赛中并取得state of the art的惊人结果后,大家都竞相效仿并在此基础上做了大量尝试和改进
1.小卷积核
在第一个卷积层用了更小的卷积核和卷积stride (Zeiler & Fergus, 2013;Sermanet et al, 2014)
2.多尺度
训练和测试使用整张图的不同尺度(Sermanet et al., 2014;Howard, 2014) .
vgg作者不仅将上面的两种方法应用到自己的网络设计和训练测试阶段,同时还考虑了网络深度对结果的影响
2.论文研究成果
在2014年在ILSVRC比赛上获得了分类项目的第二名(第一是GoogLeNet) ,和定位项目的第一名。同时模型对其他数据集有很好的泛化能力。
VGG由于其结构简单,提取特征能力强,所以应用场景广泛
例如:
快速风格迁移算法
目标检测的backbone,提取特征(fater rcnn, ssd等)
gan网络内容特征提取,进行内容计算(内容损失是gan网络损失的一部分)
二、论文研究方法
进行了六组对比试验,包括A,A-LRN,B,C,D,E六种不同的网络结构
A-LRN在A的基础上加入了一个LRN层
B在A的基础上加入了两个3*3的卷积层
C在B的基础上加入了三个1*1的卷积层
D在B的基础上加入了三个3*3的卷积层
E在D的基础上加入了三个3*3的卷积层
单尺度测试结果对比
结论:
1、 LRN对网络性能提升没有帮助
2、 对于同一个网络结构多尺度训练可以提高网络精度
3、 E模型(VGG19)效果最好,一定程度加深网络可以提高网络精度
多尺度测试结果对比
结论:
1、对比单尺度预测,多尺度综合预测,能够提升预测的精度
证明了scale jittering(尺度抖动)的作用
2、 vgg16为best model
结论:dense evaluation & multi-crop 两种测试方式联合使用效果最好
结论:融合模型D、E之后模型错误率进一步下降
三、论文结论
1、在一定范围内,通过增加深度能有效地提升性能
2、最佳模型: VGG16,从头到尾只有3x3卷积与2x2池化,简洁优美
3、多个小卷积核比单个大卷积核性能好(与AlexNet对比可知)
4、AlexNet曾经用到的LRN层并没有带来性能的提升,因此在其它组的网络中均没再出现LRN层
5、尺度抖动scale jittering (多尺度训练,多尺度测试)有利于网络性能的提升
四、感受野
1.感受野概念
感受野(Receptive Field)的定义是:卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。再通俗点的解释是,特征图上的一个点跟原图上有关系的点的区域。
感受野概念为什么重要?
感受野被称作是CNN中最重要的概念之一,目标检测流行的算法比如SSD, Faster Rcnn等中prior box和Anchor box的设计都是以感受野为依据做的设计。
示例:
输入原始图大小为7*7
conv1: 3*3 strides=1, valid
feature: (7-3+1)/1=5
conv2: 3*3 strides=1, valid
feature: (5-3+1)/1=3
原始输入感受野:1
conv1层感受野:3
conv2层感受野:5
如果conv1: 5*5 strides=1, valid,感受野是多少? 5
结论:
一个55卷积核感受野大小与两个33卷积核的感受野等效。
以此类推三个33的卷积核感受野与一个77卷积核的感受野等效
2.感受野的计算
感受野计算公式: r n = r n − 1 + ( k n − 1 ) ∏ i = 1 n − 1 s i r_n=r_{n-1}+(k_n-1)\prod \limits_{i=1}^{n-1}s_i rn=rn−1+(kn−1)