【论文阅读】Very deep convolutional networks for large-scale image recognition

论文简介:

《Very Deep Convolutional Networks For Large-Scale Image Recognition》文章出自牛津大学Robotics ReSearch Group团队,在2014ILSVRC (ImageNet Large Scale Visual Recognition Competition)竞赛中,团队在localisation(目标定位)和classification(分类)两个任务中分别获得第一和第二名的成绩,在分类任务中的准确度仅次于GoogLeNet。

一、Abstract  摘要

本文作者研究了在其他若干因素保持不变的情况下,卷积神经网络(CNN)的深度(depth,网络的层数)与训练收敛后的网络模型的预测准确性之间的关系。VGG 网络全部使用小的卷积核(3x3),通过将网络层数增大到16-19层,证明,通过增大神经网络的层数(此处的层数是指具有可训练模型参数的网络层,例如卷积层、全连接层,池化层没有参数,不计算),可以获得较高的模型预测准确性。

二、Introduction  介绍

受益于公开的大规模图像数据集(ImageNet)以及高性能的计算系统(GPU),大规模数据集可以使得网络得到充分的训练,降低过拟合的风险,高性能计算设备加速了网络的迭代训练。ImageNet 在深度图像识别技术的进步中具有重要的地位,它是从高维、浅层编码特征到深度卷积网络等好几代大规模图像分类系统的试验台。

随着卷积神经网络CNN越来越普遍的在计算机视觉领域的使用,为了提高网络的性能,人们做了很多网络结构改进方面的尝试,有人在卷积网络的起始层使用较小的卷积核尺寸和较小的步进,有人尝试对网络进行大量数据、多尺度的训练和测试。VGG 旨在研究网络深度对性能的影响,因此,固定网络模型设计的若干其他参量,通过增加卷积层的个数来持续增加网络的深度(这种方式可行是由于使用了小的卷积核(3x3))。

三、VGG网络架构介绍

VGG网络输入固定化为224x224,数据预处理为简单的对每个像素点减去训练数据集的所有图像的RGB均值。网络的所有卷积层的卷积核尺寸为3x3,卷积步进长度为1,卷积输入的padding为1来使得卷积输入与输出尺寸保持不变。池化层采用2x2的最大池化,步进长度为2,最后跟三个全连接层,第一个和第二个分别含有4096个神经元,最后一个全连接层含有1000个神经元,对应ImageNet的1000个图像类别。每经过一个maxpooling层后,3x3卷积核的个数增加一倍,从64增加到512后保持不变,最后跟一个soft-max层,使得网络输出对应多类别的判别概率。所有隐藏层的神经元的激活函数是ReLU。LRN(Local Response Normalisation)归一化对提高网络性能没有帮助,反而增加内存消耗和计算量。实际代码实现时,第一个全连接层使用7x7卷积实现(因其前一层经maxpooling后尺寸为7x7x512),后面两个全连接使用1x1卷积实现。

VGG 使用小尺寸的卷积核,而没有使用大的卷积核(5x5,7x7)。两个堆叠起来的3x3卷积核具有和一个单层5x5卷积核相同的感受野,三个3x3可以具有和单个7x7具有相同的感受野。三个3x3与单个7x7对比所具有的优点有,1、三个3x3的网络层使得决策函数具有更强的区分力,三个3x3含有三个非线性激活层,一个7x7只有一个非线性激活层,2、具有更少的网络参数,假设网络的输入输出都为C个通道,则3x3含有参数3(3*3*C*C)=27C平方,7x7含有7*7*C*C=49C平方个参数。这有些类似于在给7x7层施加一个正则化操作,强制将其分解为若干个3x3卷积层。

使用1x1卷积核可以在不改变卷积核感受野范围的情况下增加决策函数的复杂性(1x1后面跟了非线性激活函数)。VGG与GoogLeNet都是使用小尺寸卷积核且深度较深的网络,其证明,小尺寸卷积核加多层是可以得到很好的性能的。

【论文阅读】Very deep convolutional networks for large-scale image recognition_第1张图片

四、分类网络训练

使用批量梯度下降法(momentum,因子0.9,更新参数的梯度等于0.9倍的上一次梯度加上这一批次的梯度),batch-size=256,对网络权重参数使用L2正则化(正则化权重因子0.0001),两个全连接层施加0.5因子的dropout。学习率初始设定为0.01,当交叉验证集的正确率不再下降则将学习率降低10倍,经过3次学习率下降,370k迭代(74epochs轮)后,网络模型Loss收敛。

网络模型参数初始化,由于深度网络的梯度的不稳定性,不好的初始化参数可能使得网络停滞不前。VGG 使用对浅层网络A进行0均值0.01方差的随机初始化,然后训练收敛后,将其参数(前四层卷积和最后三层全连接)作为深层网络相应层的初始化值,深层网络的其他层随机初始化,然后进行训练。

对训练数据集的丰富手段,对图像进行随机子块裁剪,随机水平翻转,RGB值随机扰动。原图像缩放处理,固定尺度,将原图最小边缩放到256,然后添加其他预处理再进行网络训练,对于大尺度384,使用256的参数值作为初始化值,再使用0.001的学习率进行训练。

对于多尺度训练,每一张图被随机缩放到[256,512]尺度,然后进行其他预处理操作,多尺度训练使用384尺度参数进行fine-tuning。

五、结论

VGG 网络是典型、传统、简单的卷积+激活+池化+激活的CNN网络,多层网络是在池化层之间增加多个卷积+激活层(统称为一个卷积层,卷积和池化后默认跟一个激活层,因激活层无需要训练的参数,其归属于卷积和池化层)。VGG 证明增加网络深度,有助于提高网络的性能,其证明即使是对于传统的简单卷积+池化的CNN,网络深度足够大,也可以获得较好的性能表现。

 

 

你可能感兴趣的:(论文阅读)