VGG Net 论文细读

论文地址:《Very Deep Convolutional Networks for Large-Scale Image Recognition》

一、背景

LSVRC:大规模图像识别挑战赛

ImageNet Large Scale Visual Recognition Challenge 是李飞飞等人于2010年创办的图像识别挑战赛,自2010起连续举办8年,极大地推动计算机视觉发展。比赛项目涵盖:图像分类(Classification)、目标定位(Object localization)、目标检测(Object detection)、视频目标检测(Object detection from video)、场景分类(Scene classification)、场景解析(Scene parsing)。

VGG Net由牛津大学的视觉几何组(Visual Geometry Group)参加2014年ILSVRC提出的网络模型,它主要的贡献是展示了卷积神经网络的深度(depth)是算法优良性能的关键部分。

二、Abstract Q1:做了什么?

研究了“卷积网络的深度”在大规模的图像识别环境下对准确性的影响(即神经网络的深度与其性能之间的关系)。

Q2:怎么做的?

使用一个非常小的卷积核\((3\times3)\)对网络深度进行评估,评估发现将网络深度加至16层-19层,性能有了显著提升。

Q3:做得怎么样?

在ImageNet Challenge 2014竞赛中,定位赛道获得第一名,分类赛道获得第二名。

三、Architecture

论文提出了多种规模的网络架构(不同规模深度不尽相同),下图为其中性能表现良好的网络架构之一:VGG16结构图。

image

1、输入

规格:3@224x224(3个通道,宽高像素均为224);

唯一的预处理操作:计算出3个通道的平均值,在每个像素上减去平均值(处理后迭代更少,收敛更快);

2、卷积

大部分网络架构使用非常小的3x3卷积核贯穿整个网络;

部分网络架构除了3x3卷积核之外还使用了1x1卷积核;

卷积层步长(stride)=1,3x3卷积核的填充(padding)=1;

所有隐藏卷积层都配备了ReLU非线性激活。

3、池化

整个网络架构的池化总共由5个“MAX池化层”实现;

池化操作在一系列卷积操作之后执行;

池化窗口为2x2,步长=2。

4、分类器

所有卷积操作之后跟有3个全连接层(FC层):

前2个FC层:均为4096通道;

最后1个FC层:1000个通道;

全连接层之后是SoftMax分类器。

四、Dicussion

所有的ConvNet配置如图所示,VGG结构全部都采用较小的卷积核(3x3,部分1x1):

image

1、3x3卷积核的作用(优势)

两个3×3的卷积层串联相当于1个5×5的卷积层(二者具有等效感受野5x5),3个串联的3×3卷积层串联的效果相当于一个7×7的卷积层;

下图展示了为什么“两个3x3卷积层”与“单个5x5卷积层”具有等效的5x5的感受野。

image

1)作用1:减少网络层参数

对于两个3x3卷积核,所用的参数总量为\(2\times3^2\times{channels}\)(假设通过padding填充保证卷积层输入输出通道数不变);

对于单个5x5卷积核,参数量为\(5^2\times{channels}\)

参数量减少了\((1-\frac{2\times3^2\times{channels}}{5^2\times{channels}})\times100\%=28\%\)

2)作用2:增加更多的飞线性变换

2个3x3卷积层拥有比1个5x5卷积层更多的非线性变换(前者可以使用两次ReLU激活函数,而后者只有一次),使得卷积神经网络对特征的学习能力更强。

2、1x1卷积核的作用 1)作用1:降低运算量

不影响输入输出的维度情况下(即图片宽高尺寸不变),降低了大量运算,同时改变了维度(通道数);

2)作用2:提高非线性

卷积之后再紧跟ReLU进行非线性处理,提高决策函数的非线性。

五、Classification Framework 1、训练 1)参数设置

使用了mini-batch的梯度下降法(带有冲量),batch_size设为256,冲量设为0.9;

前两个FC层使用了dropout(失活概率为0.5),用来缓解过拟合;

训练通过权重衰减(L2惩罚乘子设定为5\times{10}^{-4})进行正则化;

学习率初始化为0.01

当验证集准确率稳定时,学习率减少为原来\(\frac{1}{10}\)

整个训练过程,学习率总共降低3次,学习在37万次迭代后停止(74个epochs)。

2)预训练

先训练较浅的网络A,A收敛之后呢,将A的网络权重保存下来;

再复用A网络的权重来初始化后面的几个复杂模型

只对“前四个卷积层”、“后三层全连接层”复用A的网络权重,其它的中间层都是随机初始化;

随机初始化,均值是0,方差是0.01,bias是0。

3)多尺度训练 Q1:什么是多尺度训练(Multi-scale)?

详见:https://www.cnblogs.com/xxxxxxxxx/p/11629657.html

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwjjzx.html