VERY DEEP CONVOLUTIONAL NETWORKSFOR LARGE-SCALE IMAGE RECOGNITION(VGGnet论文翻译(附原文))

附原文:

链接:https://pan.baidu.com/s/1fqoXZ5g4B1k17bYDf0OYDg 
提取码:wlho

目录

摘要

1.引言

2.卷积神经网络结构

2.1架构

2.2网络配置

 2.3讨论

3 .分类框架

3.1 训练       

3.2 测试

3.3 实现细节

4.分类实验

4.1 单一尺寸测试数据评估

4.2 多尺寸测试数据评估

4.3 多裁剪评估

4.4 卷积网络融合

4.5 与业界最好结果的比较

5. 结论


摘要

        在这篇文章中,我们研究了卷积神经网络的深度对其在大规模图像识别任务中精度的影响。本文的主要贡献是使用一个非常小的卷积核(3×3的卷积核)来对增加深度的网络进行全面的评估,这些表明了将网络增加到16~19个权重层的时候,可以对现有网络实现显著的改进。这些发现是我们2014年ImageNet挑战提交的基础,我们的团队分别在localisationclassifification中分别获得了第一名和第二名。我们的这些发现也可以推广到其他数据集上,在那些数据集上达到了目前最好的效果。我们已经公开了两种性能最好的ConvNet模型,以促进在计算机视觉中使用深度视觉表示的进一步研究。

1.引言

       由于大型公共图像存储库如ImageNet ,和高性能计算系统如gpu或大规模分布式集群的发展,卷积神经网络最近在大规模图像识别和视频识别方面取得了巨大的成功。特别是,ImageNet大规模视觉识别挑战在深度视觉识别体系结构的发展中发挥了重要作用,它已成为几代大规模图像分类系统的试验平台,从高维浅特征编码到深度视觉识别。

        随着卷积网络越来越成为计算机视觉领域的一种网络结构,为了达到更高的精度,人们尝试改进Krizhevsky等人(2012)的原始架构。例如,向ILSVRC-2013(Zeiler&Fergus,2013;Sermanet et al.,2014)提交的表现最好的文件利用了较小的接收窗口大小和较小的第一卷积层步长。另一系列改进涉及在整个图像和多个尺度上密集地训练和测试网络(Sermanet al.,2014;Howard,2014)。在本文中,我们讨论了卷积网络结构设计的另一个重要方面——深度。为此,我们固定了架构的其他参数,并通过添加更多卷积层稳步增加网络深度,这是可行的,因为所有层中都使用了非常小的(3×3)卷积核。

        因此,我们想出了更准确的网络架构,不仅实现最先进的精度ILSVRC分类和本地化任务,而且也适用于其他图像识别数据集,即便作为一个相对简单的管道的一部分他们也能实现优秀的性能(例如深度特性分类的线性SVM没有微调)。我们已经发布了我们的两个表现最好的模型,以促进进一步的研究。        

        本文的组织结构如下:在第二节中我们描述了我们的卷积神经网络结构的配置,在第三节中描述了图像分类训练和评估的细节,第四节中在ILSVRC分类任务上进行配置比较,第五节进行论文的总结。为了完整起见,我们还在附录A中描述和评估了我们的ILSVRC-2014对象定位系统,并在附录b中讨论了将非常深的特征推广到其他数据集。最后,附录C包含了主要的论文修订列表。

2.卷积神经网络结构

        为了衡量在相同的环境下深度的增强所带来的改进,我们所有的网络层配置都采用相同的原则设计。在本节中,我们首先在2.1小节中描述ConvNet的通用架构,在2.2小节中,详细说明在评估中使用的具体配置,然后在2.3小节中讨论了我们的设计选择,并与现有技术进行了比较。

2.1架构

        在训练过程中,我们的输入是固定大小为224×224的RGB图像,我们所做的唯一的预处理是从每个像素上减去在训练集上计算出的平均RGB值。图像通过一堆卷积(conv)进行传递,在我们使用一个非常小的3×3的卷积核,这是可以捕获图像左/右,上/下,中心特征的最小的尺度。在其中一个网络层中,我们还使用了1×1的卷积核,这可以看作是输入通道的线性变换(后面也有非线性变换)。卷积步长固定为1,padding方式是卷积前后尺寸相同,也就是对于 3\times 3 卷积核来说padding是1个像素。池化是由五个最大池化层组成,窗口是 2\times 2,步长是2。

        卷积层之后是三个全连接层,前两个层每个有4096个通道,第三个层执行1000路ILSVRC分类,因此包含1000个通道(每个类一个)。后一层是softmax层。在所有的网络中,全连接层的配置都是相同的。

        所有的隐藏层都带有ReLu函数,我们发现,我们的网络除了一个层以外,其他的都不包含LRN。如第四节所示,这种规范化(LRN)并没有提高ILSVRC数据集上的性能,而是导致了内存消耗和计算时间的增加。

2.2网络配置

        本文中评估的ConvNet配置见表1,在下面,我们将提到这些网的名字(A-E)。所有的配置都遵循章节2.1中提出的网络架构。从网络A的11层(8conv。和3个FC层)到网络E中的19个权重层(16个conv。和3个FC层),除了深度不同之外,其它之处基本类似。卷积层的宽度(通道的数量)相当小,从第一层的64层开始,然后在每个最大池化层后增加2倍,直到达到512层。(这些网络虽然很深,但是很瘦,所以参数数量并不比有些浅而比较胖的模型多)。在表2中,我们报告了每个配置的参数的数量。尽管深度很大,但我们的网中的权重数并不大于一个较浅的网中的权重数。

表1:卷积神经网络的配置(如列所示)。随着添加更多的层,配置的深度从左(A)向右(E)增加(添加的层以粗体显示)。卷积层参数表示为“通道的对接受场齐h数”。为了简洁起见,我们没有将ReLU的激活函数显示出来。

 

 表2:参数的数量(以百万个为单位)。

 

 2.3讨论

        我们的ConvNet配置与ILSVRC-2012和ILSVRC-2013比赛的顶级参赛作品中使用的配置非常不同;我们在整个网络中使用非常小的3×3卷积核,而不是在第一卷积层中使用相对较大的卷积核(例如,步幅为4的11×11卷积核或步幅为2的7×7卷积核)。这些感受野与每个像素的输入(步幅为1)进行卷积。很容易看出,由两个3×3 卷积层堆叠一起具有5×5的有效感受野;三个这样的3×3的卷积层具有7×7的有效感受野。我们使用了三个3×3卷积核而不是一个7×7卷积核,我们得到了什么?这么所的好处有:(1):两个或多个卷积层的非线性比一个卷积层的非线性强;(2):参数数量减少了,这相当于在 7\times 7 卷积层上加上了正则化。 1\times 1 卷积核的引入是一种在不影响卷积层感受野的前提下增加决策函数非线性的方式。

        合并1×1的卷积层层(表1中的配置C)是一种在不影响卷积层感受野的情况下增加决策函数非线性的方法。即使在我们的情况下,1×1卷积本质上是相同维度空间上的线性投影(输入和输出通道的数量相同),校正函数也会引入额外的非线性。

        Ciresan等人(2011)之前曾使用过小型卷积滤波器,但它们的网络深度明显低于我们的,而且它们没有在大规模ILSVRC数据集上进行评估。Goodfellow等人(2014)将深度卷积神经网络(11个重量层)应用于街道数字识别任务,结果表明,深度的提高会导致更好的性能。GoogLeNet(Szegedy等人,2014)是ILSVRC-2014分类任务有最佳的效果,是独立于我们的工作开发的,但相似之处在于它基于非常深入的网络(22层权重层)和很小的卷积核(除了3×3的卷积核,他们也使用了1×1的卷积核和5×5的卷积核)。然而,它们的网络拓扑结构比我们的更复杂,并且特征图的空间分辨率在第一层被降低,以减少计算量。

3 .分类框架

        前面的部分我们介绍了网络设置的细节。这一部分,我们将详细描述分类卷积神经网络的训练与评估。

3.1 训练       

        卷积神经网络的训练过程与Krizhevsky等人(2012)(除了多尺寸训练数据样本的裁剪,后面会介绍)的一样。就是说,通过用包含动量的小批量梯度下降(基于反向传播)做多项式逻辑回归的优化器来对模型进行训练。批次大小为256,动量为0.9,通过权值衰减(L2惩罚因子设置为5*10-4)和对前两个全连接层进行dropout(比率0.5)实现正则化。学习率初始化为0.01,当验证集准确率不提升时以10倍速率衰减(除以10)。总的来说,学习率会衰减3次,然后训练次数为370K(74代)。我们猜想,尽管与Krizhevsky(2012)等人的网络相比,我们的网络参数更多,深度更深,但是却需要更少的迭代次数来收敛,因为:(1)深度及更小的滤波器数量隐式增强了正则化;(2)某些层执行了预初始化。

        网络权重的初始化很重要,由于深度网络梯度下降的不稳定性,不好的初始化会阻碍学习。为了规避这个问题,我们从训练网络A(表1)开始,它足够浅,能用随机初始化。然后,当训练更深网络结构时,我们用网络A的权重初始化前四个卷积层和后三个全连接层(中间层随机)。对预初始化层,不降低学习率,允许他们在学习过程中改变。对于随机初始化,我们从具有0均值和0.01方差的正态分布中取值。偏差初始化为0。值得注意的是,我们发现可以用Glorot&Bengio-(2010)中的随机初始化程序来对权重进行初始化,而不需要进行预训练。        

        为了得到固定的224x224的RGB输入图片,我们随机从经过尺寸缩放的训练集图片中进行裁剪(每张图的每次SGD迭代时裁剪一次)。为了进一步对训练集数据进行扩增,被裁剪图片将进行随机水平翻转及RGB颜色转换。训练图片的尺寸缩放将在后面阐释。

        训练集图片尺寸: 令S为各向同性缩放的训练图像最小边, 卷积神经网络的输入就是从中裁剪的(S也称为训练尺寸)。裁剪尺寸固定为224x224,原则上S可以取任何大于等于224的值:若S=224,裁剪图像将使用整个图像的统计信息,完全涵盖训练图像的最小边;若S>>224,裁剪图像就会取图像的一小部分,包含一个很小的对象或对象的一部分。

        我们考虑使用两种方式来设置训练尺寸S。第一种是固定S,针对单尺寸图片的训练。(注意,裁剪的样本图像内容仍然能够代表多尺寸图片的统计信息)在实验中,评估了两种固定尺寸的训练模型:S=256(在之前研究中广泛使用)和S=384。给一个卷积神经网络,首先用S=256训练。为了加速S=384的训练,使用在S=256上的预训练权重来初始化权重,并且使用较小的初始学习率0.001。        

        第二种设置S的方式是使用多尺寸图像训练,即每个训练图片的尺寸是[Smin,Smax]之间的随机数(这里使用Smin=256,Smax=512)。由于图像中的对象可能大小不一,所以训练中采用这种方式是有利的。这可以看作是一种尺寸不定(scale jittering)的训练集数据增强,使得一个单一模型能够识别各种尺寸的对象。考虑到速度,我们使用与微调后的S=384的单一尺寸预训练模型相同设置的模型,来训练多尺寸模型。

3.2 测试

        在测试时,给定一个训练后的卷积神经网络及一张输入图片,用以下方式进行分类。首先,各向同性缩放成预定义的最小边,设为Q(也称为测试尺寸,注意Q不需要等于训练尺寸S(将在第4部分解释),每个S使用多个Q可以提高性能)。然后,根据Sermanet的方法将网络密集应用在测试图片上,也就是说,全连接层先转化为卷积层(第一个全连接层转为7x7的卷积层,后两个转化为1x1的卷积层)。再将这样得到的全卷积网络运用在整幅图像上(未裁切的)。输出是一个分类得分图,通道数与类别数先沟通呢个,空间分辨率依赖于输入图片的尺寸。最后,为了得到固定尺寸的分类得分向量,将分类得分图进行空间平均化(求和——池化)。我们同样使用水平翻转对测试图像进行增强;在原始图像和翻转图像上的soft-max分类概率的平均值作为这幅图像的最终得分。

        由于测试阶段将全卷积网络用在了整个图像,因此不需要对图像进行多个裁切采样,因为网络对每个裁切的重新计算会使效率降低。但是,使用大量裁切图像可以提高准确率,如同Szegedy等人的网络,因为和全卷积网络相比,它能生成关于输入图像更好的采样。同样的,由于不同的卷积边界条件,多重裁切评估与密集评估是互补的:对一个裁剪图片使用卷积网络,卷积得到的特征图被0填充,而密度评估中,相同裁切图的填充自然而然来自于图片的相邻像素(由于卷积和空间池化),大大增加了网络整体的接受域,所以更多上下午信息被获取。尽管我们认为在实践中多尺寸裁切图像增加的计算时间并不能证明其具有更高准确率的潜质,但是为了参考,我们依然在评估时对每个尺寸使用了50 张裁切图像(5×5个规则网格以及水平翻转),3种尺寸一共150张裁切图像,这和Szegedy等人的网络中使用4种尺寸一共144张裁切图像是可比的。

3.3 实现细节

        我们的实现使用开源的C++ Caffe工具箱(Jia,2013)(2013年12月的分支),但是进行了一些重新修改,允许我们用同一个系统的多个GPU训练和评估模型,以及对全尺寸(未裁剪)图片的多种缩放(上文提到的)进行训练评估。GPU批量梯度下降计算完成后,取平均数作为所有批次的梯度。梯度计算在多个GPU间是并行计算的,所以结果与在单个GPU上训练是一样的。

        虽然最近提出了更复杂的加速卷积网络训练的方法(Krizhevsky2014),它在网络不同层上用模型和数据并行计算,但是我们发现我们的方法更简单,且在4个GPU系统上的速度相对于单GPU提升了3.75倍,在NVIDIA Titan Black GPU上,训练单个网络需要2~3周的时间。

4.分类实验

        数据集: 在本章,我们讲述了卷积神经网络在ILSVRC2012数据集上的分类结果(被用在ILSVRC2012——2014挑战赛上)。数据集包含1000个类别,被分为三部分:训练集(1.3M张图片),验证集(50K张图片),测试集(100K张图片,没有标签)。分类性能使用两个办法评估:top-1和top-5 error。前者是一个多类分类错误率,即错误分类图像的比例;后者是在ILSVRC上的主要评估标准,即真实类别不在top-5预测类别之中的图像的比例。

        对于大部分实验,我们使用验证集作为测试集。某些实验也在测试集上进行,并提交给官方ILSVRC服务器作为“VGG”团队参加ILSVRC-2014竞赛。

4.1 单一尺寸测试数据评估

        我们从评估在单一尺度上使用第2.2中配置的独立卷积网络模型的性能开始。测试集图片大小如下设置:对于固定的S,Q=S,对于变动的S∈[Smin, Smax>],Q=0.5(Smin + Smax>)。结果如表3中。

表3 单一尺寸上的卷积网络性能

        首先,注意使用局部相应标准化网络(A-LRN)的性能并没有比未用标准化层的A高。因此我们没有在更深的网络结构上使用标准化操作(B-E)。

        其次,我们发现分类的错误率随着卷积层的增加而减少:从11层的A到19层的E。注意,尽管深度相同,配置C(包含3个1x1卷积层)没有配置D(使用3x3卷积层)性能好,这意味着添加非线性层的确有用(C比B好),但是使用卷积获取空间上下文信息更有用(D比C好)。当深度达到19层时,错误率达到饱和,但是更大的数据集使用更深的模型会更好。我们也用网络B与一个5x5的浅卷积网络(派生自B但是将3x3卷积层换成了一个5x5卷积层,与2.3种所述接受域相同)进行了比较,浅层网络的top-1错误率比B(在中心裁剪图像上)高了7%,证明了小滤波器的神剧卷积网络比大滤波器的浅层网络性能更好。

        最后,训练时尺寸变化(S ∈ [256;512]) 的性能比固定最小边(S = 256 or S = 384)的性能要好,尽管测试时使用的是单一尺寸。这证明训练集通过变化尺寸来进行数据增强的确能获取更多尺寸的图片统计信息。

4.2 多尺寸测试数据评估

        评估了卷积网络模型在单一尺度上的性能之后,我们现在来评估在测试阶段使用尺寸抖动的效果。先在多个尺寸的测试数据上运行模型(多个Q值),然后计算每个类概率的平均值。考虑到训练尺寸与测试尺寸的差异太大会导致性能下降,模型使用固定的S训练,通过3个接近训练集的测试集尺寸评估,:Q={S-32, S, S+32}。同时,训练时的尺寸波动使测试时能使用更大范围尺寸的图像,所以使用S ∈ [Smin;Smax]训练的模型用更大范围的Q来评估,Q={Smin, 0.5(Smin, Smax), Smax}。
        结果如表4,表明在测试时图片尺寸波动会使性能更好(对比表3中单一尺寸的结果)。与之前相同,最深的配置(D和E)表现的最好,并且训练时尺度波动比固定最小边S表现更好。我们在验证集上最好的单一网络模型错误率为24.8%(top-1)7.5%(top5),在表4种加粗。在测试集上,配置E达到了7.3%的top-5错误率。

表4 多尺寸测试集上的卷积网络表现

4.3 多裁剪评估

        表5中我们对密集卷积网络评估和多重裁切评估进行了比较(见Sect 3.2)。我们同样还评估了两种技术通过计算两者soft-max输出平均值的互补结果。可以看出,使用多重裁切比密集评估的效果略好,并且两种方法是完全互补的,因为两者组合的效果比每一种都要好。根据以上结果,我们假设这是由对于卷积边界条件的不同处理方法造成的。

表5 卷积网络评估技术比较。所有实验中,S来源于[256,512],三个测试尺寸Q为{256, 384, 512}

4.4 卷积网络融合

                到目前为止,我们评估了独立卷积网络模型的性能。这一部分的实验,我们将通过计算多个模型soft-max分类概率的平均值来对它们的输出进行组合。由于模型的互补性,性能得到了改善,这也用在2012 (Krizhevsky et al., 2012) 和2013(Zeiler & Fergus, 2013; Sermanet et al., 2014)的ILSVRC的最佳结果中。

        结果如表6。在ILSVRC比赛中我们进训练了单一尺寸网络和多尺寸网络D(仅仅微调了全连接层而非所有层)。7个模型组合结果在ILSVRC中测试的错误率为7.3%。提交后,我们考虑禁用两个最好表现的多尺寸模型(D和E)进行组合,使用密集评估时错误率减少到7.0%,使用密集和多裁剪评估时错误率为6.8%。作为参考,我们的最佳单一模型错误率为7.1%(E,表5)。

表6 多卷积网络融合结果

4.5 与业界最好结果的比较

        最后,我们在表7与业界最好结果进行了比较。在2014年的ILSVRC比赛的分类任务中,我们的VGG团队取得了第二名的成绩,使用了7个模型组合的测试错误率,为7.3%,提交后,使用2个模型的组合,将错误率降低到了6.8%。

        从表7可以看出,我们的深度卷积神经网络比在ILSVRC-2012和ILSVRC-2013中成绩最好的模型效果明显要好。我们的结果与分类任务的冠军旗鼓相当(GoogLeNet为6.7%的错误率),并且明显比ILSVRC-2013的冠军Clarifai的表现好得多,它使用外部训练数据时的错误率为11.2%,而不使用外部数据时为11.7%。更标志性的是,我们最佳的结果是通过对两个模型的组合——这明显比大多数ILSVRC参赛模型要少。在单一网络性能上,我们的模型取得了最好的结果(7.0%的测试错误率),比单一的GoogLeNet低0.9%。值得注意的是,我们并没有摒弃经典的卷积网络框架,并通过显著增加深度对它的性能进行了提升。

表7 与ILSVRC分类任务中的最佳结果比较。我们的方法叫VGG,只显示了未使用外部训练数据的结果

5. 结论

        本文评估了深度卷积网络(到19层)在大规模图片分类中的应用。结果表明,深度有益于提高分类的正确率,通过在传统的卷积网络框架中使用更深的层能够在ImageNet数据集上取得优异的结果。附录中,展示了我们的模型可以很好的泛化到更多数据集种,性能达到甚至超过了围绕较浅深度的图像表达建立的更复杂的识别流程。我们的实验结果再次确认了深度在视觉表达中的重要性。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值