【开始时间】2018.09.23
【完成时间】2018.09.24
【论文翻译】VGG网络论文中英对照翻译--(very deep convolutional networks for large-scale image recognition)
【中文译名】 用于大规模图像识别的甚深卷积网络
【论文链接】https://arxiv.org/abs/1409.1556
目录
本文概述
Abstract
1.INTRODUCTION
2.CONVNET CONFIGURATIONS(ConvNet配置)
2.1 ARCHITECTURE(结构)
2.2 CONFIGURATIONS(配置)
2.3 DISCUSSION(讨论)
3 CLASSIFICATION FRAMEWORK(分类框架)
3.1 TRAINING(训练)
3.2 TESTING(测试)
3.3 IMPLEMENTATION DETAILS(实施细则)
4 CLASSIFICATION EXPERIMENTS(分类实验)
4.1 SINGLE SCALE EVALUATION(单尺度评价)
4.2 MULTI -SCALE EVALUATION(多尺度评价)
4.3 MULTI-CROP EVALUATION(多作物评价)
4.4 CONVNET FUSION(ConvNet融合)
4.5 COMPARISON WITH THE STATE OF THE ART(与最前进效果的比较)
5 CONCLUSION(总结)
本文是对介绍VGG网络的论文《very deep convolutional networks for large-scale image recognition》的中英对照翻译,VGG网络在 ILSVRC-2014上获得了第二名,只比GoogleNet差一些,但它的结构基本遵循了传统的CNN架构。
翻译过程中发现了一篇很好的对本论文进行总结的文章,并进行了转载:https://blog.csdn.net/C_chuxin/article/details/82833028,感兴趣的人可以两文对照起来阅读以增进理解。
题目:用于大规模图像识别的甚深卷积网络
在本工作中,我们研究了卷积网络深度对大规模图像识别设置精度的影响,我们的主要贡献是使用一种非常小的(3×3)卷积滤波器的结构对增加深度的网络进行了彻底的评估,这表明通过将深度推进到16-19层,可以实现对现有技术配置的显著改进。这些发现是我们的ImageNet 2014年挑战报告的基础,我们的团队分别在定位和分类轨道上获得了第一名和第二名。我们还表明,我们的表示很好地推广到了其他数据集,在这些数据集中,它们取得了最先进的结果。我们已经将我们的两种性能最好的ConvNet模型公之于众,以便进一步研究在计算机视觉中使用深度视觉表示法的问题。
卷积网络(卷积网)最近在大规模即时识别和视频识别方面取得了很大的成功(如 (Krizhevsky et al., 2012; Zeiler & Fergus, 2013; Sermanet et al., 2014;Simonyan & Zisserman, 2014)),这已经成为可能,因为大型的公共图像存储库,如ImageNet(邓等人,2009年)和高性能的系统,如GPU或大规模分布式集群(Dean等人,2012年)。特别是,大尺度图像识别挑战(ILSVRC(russakovsky等人,2014)为几代大规模图像分类系统提供了实验平台,它在深化视觉识别体系的发展中发挥了重要作用,从高维浅特征编码(perronnin等人,2010年)(ILSVRC-2011的获胜者)到深卷积网(Krizhevsky等人,2012年)(ILSVRC-2012的获奖者)。
随着凸网成为计算机视觉领域的一种商品,人们对Krizhevsky等人的原有体系结构进行了大量的改进以为提高准确性。例如,向ILSVRC-2013提交的最佳表现((Zeiler & Fergus, 2013; Sermanet et al., 2014)使用了较小的接收窗口大小和第一卷积层的较小步幅。另一个改进的方法是在整个图像和多个尺度上密集地训练和测试网络( (Sermanet et al.,
2014; Howard, 2014))。在本文中,我们讨论了convnet架构设计的另一个重要方面---它的深度。为此,我们确定了该体系结构的其他参数,并通过增加更多的卷积层来稳定地增加网络的深度,这是可行的,因为在所有层中都使用了非常小的(3×3)卷积滤波器。
因此,我们提出了更加精确的ConvNet体系结构,它不仅在ILSVRC分类和定位任务上实现了最先进的精度,而且还适用于其他图像识别数据集,即使作为相对简单的管道的一部分(例如,不经过微调的线性svm分类的深层特征),它们也可以获得优异的性能。为了便于进一步研究,我们已经发布了两款性能最好的模型【1】。
论文的其余部分按以下方式组织。在section2描述了我们的ConvNet配置。在Section3给出了图像分类、训练和评价的细节,并且在Section4对ILSVRC分类任务的配置进行了比较。在Section5总结了本论文。为了完整起见,我们还在附录A中描述和评估了我们的ILSVRC-2014对象定位系统,并在附录B中讨论了将非常深层次的特性推广到其他数据集。最后,附录c载有主要文件修订清单。
为了测量增加的ConvNet深度在一个公平的设置下带来的改进,我们所有的ConvNet层配置都是使用相同的原则设计的,这一原理受到ciresan等人的启发。(2011年);Krizhevsky等人。(2012年)。在本节中,我们首先描述ConvNet配置的一般布局((Sect.2.1),然后详细说明评估中使用的特定配置(Sect.2.2)。在Sect.2.3讨论我们的设计选择,并与现有的技术进行比较。
在训练过程中,我们的凸网的输入是一个固定大小的224×224 rgb图像。我们所做的唯一的预处理是从每个像素中减去平均rgb值,在训练集上计算。图像通过一堆卷积(conv.)层,在这里我们使用一个非常小的接收场:3×3的滤波器(它是捕捉左/右、上/下、中的概念的最小大小)。在其中一种配置中,我们还使用了1×1卷积滤波器,这可以看作是输入通道的线性变换(随后是非线性)。
卷积步幅固定在1像素,卷积层的空间填充使卷积后的空间分辨率保持不变,即3×3层的填充为1像素。空间池化由五个最大池化层执行,它们跟随在一些卷积层之后(不是所有的卷积层都跟随有最大池化层)。最大池在2×2像素窗口上执行,步幅为2。
一个卷积层(在不同的体系结构中有不同的深度)由三个完全连接(FC)层组成:前两个层每个有4096个通道,第三个层执行1000路ILSVRC分类,因此包含1000个通道(每个类一个)。最后一层是软最大( soft-max)层。在所有网络中,完全连接层的配置是相同的。
所有隐藏层都配有整流非线性单元(relu(Krizhevsky等人,2012年)。我们注意到,我们的网络(除一个外)没有一个网络包含局部相应归一化(LRN)(Krizhevsky等人,2012年),如将在节4中所示,这种规范化不会提高ILSVRC数据集的性能,但会增加内存占用和计算时间。在适用的情况下,LRN层的参数为论文中的设置(Krizhevsky等人,2012年)。
本文评估的ConvNet配置见表1,每列一个。下面我们将参考网名(A—E)。所有配置遵循SeCT提出的通用设计。2.1,并且仅在深度上不同:从网络a中的11个权重层(8个conv.和3个fc层)到网络e中的19个权重层(16个conv.和3个fc层)。连接层的宽度(信道的数量)相当小,从第一层的64开始,然后在每个最大汇聚层之后增加2倍,直到达到512。
在表2中,我们报告了每个配置的参数。尽管有很大的深度,但我们网中的权重数并不比有较大层数和接收场的较浅的网中的重量数目大(144M weights in (Sermanet et al., 2014))。
我们的ConvNet配置与ILSVRC-2012(Krizhevsky等人,2012年)和ILSVRC-2013竞赛中表现最好的作品中使用的配置非常不同。不是在第一个卷积层中使用相对较大的接受场(例如,11×11步长为4(Krizhevsky等人,2012年),或7×7步幅为2),我们在整个网络中使用非常小的3×3接收域(步幅1),它们与每个像素上的输入相结合。很容易看出,两层3×3的卷积层(之间没有空间池化)的有效接收场为5×5;3个这样的层有一个7×7的有效接收场。那么,通过使用三层3×3的卷积层而不是单一的7×7层,我们得到了什么呢?首先,我们采用了三个非线性校正层而不是单一的一个校正层,使得决策函数更具判别力。其次,我们减少了参数:假设三层3×3卷积堆栈的输入和输出都有c通道,则堆栈参数为,同时,一个7×7的卷积层需要个参数,相比多了81%。这可以被看作是对7×7卷积型滤波器施加了正则化,迫使它们通过3×3滤波器进行分解(在两者之间注入非线性)。
1×1卷积层的加入(配置c,表1)是一种在不影响卷积层的接收场的情况下增加决策函数的非线性的方法。即使在我们的情况下,1×1卷积实质上是在相同维数(输入和输出通道数相同)的空间上的线性投影,但通过校正函数引入了额外的非线性。得注意的是,最近在LIN等人的“网络中的网络”体系结构中使用了1×1卷积层。(2014年)。
CyrSon等人以前曾使用过小尺寸的卷积滤波器。(2011),但它们的网比我们的深度要小得多,并且没有在大规模ILVRC数据集上进行评价。古德费罗等人(2014年)将深度卷积网(11层重量层)应用于街道号码识别任务,并表明深度的增加导致了更好的性能。googlenet(szegedy等人,2014)是ilsvrc-2014分类任务中性能最好的条目,它是独立于我们的工作开发的,但相似之处在于它基于非常深的ConvNets(22个重量层)和小卷积滤波器(除了3×3之外,它们还使用1×1和5×5卷积)。然而,它们的网络拓扑比我们的要复杂得多,而且在第一层中,特征映射的空间分辨率被更积极地减少,以减少计算量。如将在4.5节中展示的,我们的模型优于Szegedy等人的模型。(2014),在单网络分类的准确性上。
在前面的章节中,我们详细介绍了我们的网络配置,在这一部分中,我们描述了分类ConvNet的训练和评估的细节。
卷积神经网络的训练过程一般遵循KrZevSkyet等。(2012)(除了从多尺度训练图像中采样输入作物之外,如后面所解释的)。也就是说,在训练过程中,采用带动量的最小批量梯度下降(基于反向传播(Le村等人,1989)对多项式Logistic回归目标进行优化。批次大小设为256,动量为0.9。训练按重量衰减(L2惩罚乘子设置为5·10^−4)和前两个完全连接层(dropout的概率为0.5)的Dropout正则化。学习率最初设置为10^−2,当验证集精度停止提高时,学习率下降了10倍。经370 k迭代(74个周期)后,学习率下降3次,学习停止。我们猜想,尽管我们的网的参数数目更多,深度也更深(Krizhevsky等人,2012年),但由于(A)较大深度和较小的卷积核所施加的隐式正则化;(B)某些层的预初始化,这些网需要较少的时间才能收敛。
网络权值的初始化是很重要的,因为由于深度网中梯度的不稳定性,错误的初始化会阻碍学习。为了避免这个问题,我们开始训练配置a(表1),足够浅,可以通过随机初始化进行训练。然后,在培训深度架构时,我们初始化了前四个卷积层和最后三个完全连接的层和neta层(中间层是随机初始化的)。然后,在培训深度架构时,我们初始化了前四个卷积层和最后三个完全连接的层与netA中的一致(中间层是随机初始化的)。我们没有降低预初始化层的学习速率,允许它们在学习过程中发生变化。对于随机初始化(在适用的情况下),我们从正态分布抽样的权重为零均值和10^−2方差。这些偏差是用零初始化的。值得注意的是,在提交论文后,我们发现可以通过使用glorot的随机初始化过程,不进行预训练就可以初始化权重。
为了获得固定大小的224×224的神经网络输入图像,将它们从重新缩放的训练图像中随机裁剪下来(每一次SGD迭代每张图像一次)。为了进一步扩大训练集,作物进行了随机水平翻转和随机RGB色移(Krizhevsky等人,2012年)。培训图像重新标度说明如下。
训练图像大小。设s是各向同性重新缩放的训练图像的最小边,从中裁剪convnet输入(我们还将s称为训练标度)。当作物大小固定在224×224时,原则上s可以取任何不小于224的值:当s=224时,作物将捕获整个图像统计数据,完全跨越训练图像的最小边;对于s≫224,裁剪将对应于图像的一小部分,其中包含一个小对象,一个对象部分。
我们考虑了两种设置培训规模S的方法。第一种是固定s,它对应于单尺度的培训(注意,采样作物中的图像内容仍然可以表示多尺度图像统计数据)。在我们的实验中,我们评估了在两个固定尺度上训练的模型:s=256(这在现有技术中已经广泛使用了)(Krizhevsky等人,2012年)以及S=384。在给定一个convnet配置的情况下,我们首先使用s=256对网络进行了训练,为了加快s=384网络的训练速度,我们用s=256的预训练权值初始化了该网络,并使用了较小的初始学习速率(10^−3)。
第二种设置s的方法是多尺度训练,通过从一定范围内随机采样s[smin,smax](我们使用smin=256和smax=512)对每个训练图像进行个别重标度。因为图像中的对象可以是不同大小的,在培训过程中考虑这一点是有益的。这也可以被看作是通过规模抖动来增强训练集,其中一个模型被训练来识别范围很广的对象。由于速度上的原因,我们通过微调具有相同配置的单尺度模型的所有层来训练多尺度模型,并使用固定的s=384进行预先训练。
在测试时,给定一个经过训练的ConvNet和一个输入图像,按以下方式对其进行分类。首先,它是同向重新标度到一个预定义的最小图像边,表示为q(我们也称它为测试标度)。我们注意到Q不一定等于训练尺度S(正如我们将在SeCT 4中所示),对每个S使用多个Q值可以提高性能。然后,以类似于sermanet al.(sermanet al.,2014)的方式在重标度的测试图像上密集地应用网络。.即,完全连接的层首先转换为卷积层(第一层FC层为7×7卷积层,最后两层FC层为1×1卷积层)。生成的完全卷积网络然后应用于整个(未裁剪)图像。结果是一个类别分数图,其通道数等于类数,空间分辨率随输入图像大小而变化。最后,为了获得图像的固定大小的分类分数向量,对类得分映射进行空间平均(和-池化)。最后,为了获得图像的固定大小的分类分数向量,对类得分映射进行空间平均(和-集合)。对原始图像和翻转图像的软最大类后验值进行平均处理,以获得图像的最终得分。
由于全卷积网络应用于整个图像,因此不需要在测试时取样多个作物(krizhevsky等人,2012年),这是低效率的,因为它需要对每一种作物进行网络重新计算。同时,使用大量的作物,如Szegedy等人所做的。(2014),它可以提高精度,因为与全卷积网相比,它可以使输入图像的采样更精细。此外,由于不同的卷积边界条件,多重值也是稠密评价的补充:当将ConvNet应用于作物时,将卷积的特征映射用零填充,而在密集评估的情况下,同一作物的填充自然来自图像的邻近部分(由于卷积和空间池),这大大增加了整个网络接收字段,因此捕获了更多的上下文。虽然我们认为在实践中,多作物计算时间的增加并不能证明精确性的潜力,作为参考,我们还是评估了每标度50种作物(5×5规则网格,2次翻转),在3个尺度上总共有150种作物,相当于Szegedy等人在4个尺度上使用的144种作物。(2014年)。
我们的实现来源于公开提供的c caffe工具箱(贾,2013年)(2013年12月分支),但包含了一些重要的修改,允许我们在多尺度上执行训练和评估,以及对全尺寸(未裁剪的)图像进行训练和评估(如上文所述)。多GPU训练利用数据并行性,将每一批训练图像分割成多个GPU批次,在每个GPU上并行处理。在计算GPU批处理梯度后,对它们进行平均,得到整个批处理的梯度。梯度计算在GPU上是同步的,因此与在单个GPU上进行训练时的结果完全相同。
尽管最近提出了更复杂的加速ConvNet培训的方法(Krizhevsky,2014),这种方法对网络的不同层使用了模型和数据并行性,但我们发现,与使用单个gpuo相比,我们的概念简单得多的方案已经在现成的4 GPU系统上提供了3.75倍的加速比。在一个配备了四块黑色GPU(NVIDIATitan Black GPUs)的系统上,根据体系结构训练一个单一的网络需要花费2-3周。
数据集。在本节中,我们介绍了描述的ConvNet体系结构在ILSVRC-2012数据集(用于ILSVRC 2012-2014Chal-Lenges)上所取得的图像分类结果。该数据集包含1000个类的图像,并分为三组:培训(130万张图像)、验证(50k图像)和测试(100 k图像保留类标签)。采用两种衡量标准:前1位误差和前5位误差对克隆化性能进行评估。前者是一种多类分类错误,即错误分类图像的比例;后者是ILSVRC中使用的主要评价标准,被计算为图像的比例,使得地面真相类别超出了前5个预测类别。+
对于大多数实验,我们使用验证集作为测试集,某些实验也在测试集上进行,并作为“vgg”团队进入ILSVRC-2014竞赛(russakovsky等人,2014年)提交给正式的ILSVRC服务器。
我们首先评估单个ConvNet模型的性能,并在Sect2.2中描述了层的配置。测试图像大小设置为:对于固定s为q=s,对于抖动为。结果见表3。
首先,我们注意到使用局部响应规范化(a-lrn网络)在没有任何标准化层的模型a上没有改进。因此,我们不在更深的体系结构中使用规范化(B-E)。
其次,我们观察到,分类误差随着ConvNet深度的增加而减小:从a中的11层下降到e中的19层。值得注意的是,尽管深度相同,配置c(包含三个1×1卷积层)的性能不如配置d,配置d在整个网络中使用3×3卷积层。这表明,虽然附加的非线性确实有帮助(c比b好),但是通过使用具有非平凡接收字段的conv.滤波器捕获空间上下文也很重要(d比c好)。当深度达到19层时,我们的体系结构的错误率会达到饱和,但是更深的模型可能对较大的数据集有好处。我们还将网b与5层5×5卷积层的浅网进行了比较,即用5×5卷积层代替每对3×3卷积层,得到5×5卷积层,如2.3节中所示。测得浅层网的顶1误差比b(中心作物)高7%,这证实了小滤波器的深网优于较大滤波器的浅网。
最后,训练时的尺度抖动(s∈[256;512])比固定最小边(s=256或s=384)的图像上的训练结果要好得多,即使在测试时使用单一尺度。最后,训练时的尺度抖动(s∈[256;512])比固定最小边(s=256或s=384)的图像上的训练结果要好得多,即使在测试时使用单一尺度。
在对ConvNet模型进行单尺度评估之后,我们现在评估了测试时尺度抖动的影响。它包括运行一个模型(对应于不同的Q值),然后对得到的类后验值进行平均。考虑到训练和测试尺度之间的巨大差异导致性能下降,用固定s训练的模型在三个测试图像大小上被评估,接近于训练图像的Q={s−32,s,s 32}。同时,训练时的尺度抖动允许网络在测试时间应用于更大范围的尺度,因此在较大的的较大范围内,对变量训练的模型进行了评估。
表4所示的结果表明,测试时的标度抖动会带来更好的性能(与表3所示的在单标度下评估同一模型相比)。和以前一样,最深的配置(d和e)表现最好,规模抖动优于固定最小侧的训练。我们在验证集上的最佳单网络性能是24.8%/7.5% Top-1/Top-5错误(在表4中用粗体突出显示)。在测试集上,配置达到7.3%个前5错误率。
在表5中,我们比较了密集ConvNet评价和多作物评价(详见第3.2节)。我们还通过对这两种评估技术的软最大输出进行平均来评估它们的互补性。可以看出,使用多种作物的效果略好于密集评价,这两种方法确实是相辅相成的,因为它们的组合优于每一种方法。如上所述,我们假设这是由于对卷积边界条件的不同处理。
【补充:】 预测方式:作者考虑了两种预测方式:
方法1: multi-crop,即对图像进行多样本的随机裁剪,然后通过网络预测每一个样本的结构,最终对所有结果平均
方法2: densely, 利用FCN的思想,将原图直接送到网络进行预测,将最后的全连接层改为1x1的卷积,这样最后可以得出一个预测的score map,再对结果求平均。.
到目前为止,我们对个性化凸网模型的性能进行了评价。在这一部分中,我们结合了几种模型的输出,平均它们的软-最大类后验。由于模型的互补性,这提高了性能,并在2012年(Krizhevsky等人,2012年)和2013年(Zeiler)提交的最高ILSVRC文件中使用。
结果如表6所示。在ILSVRC提交时,我们只训练了单尺度网络,以及多尺度模型d(只对完全连接的层进行微调,而不是对所有层进行微调)。在提交后,我们只考虑了两个性能最好的多尺度模型(配置d和e)的集成,从而将密集评估的测试误差降低到7.0%,采用密集和多作物联合评估将测试误差降至6.8%。作为参考,我们最好的单一模型的误差为7.1%(模型e,表5)。
最后,我们将我们的结果与表7中的最新情况进行了比较。在ILSVRC-2014挑战(Russakovsky等人,2014年)的分类任务中,我们的“VGG”团队使用7种模型组合,以7.3%的测试误差获得了第二名。提交后,通过两个模型的集成,我们将误差率降低到6.8%。
从表7可以看出,我们非常深的卷积网络明显优于以前的模型分类,在ILSVRC-2012和ILSVRC-2013能力方面取得了最好的结果。我们的结果在分类任务获奖者(错误6.7%的谷歌网)方面也具有竞争力,并且大大超过了ILSVRC-2013获奖提交的Clarifai,后者通过外部培训数据获得11.2%的成绩,在没有它的情况下达到11.7%。他是了不起的,考虑到我们最好的结果是通过合并两个模型-明显少于大多数ILSVRC提交的使用。在单网性能方面,我们的架构获得了最好的结果(7.0%的测试错误),比单一的Google网高出0.9%。值得注意的是,我们并没有偏离经典的ConvNet的Le村等人的体系结构。(1989),但通过大幅度增加深度来改进它。
在本工作中,我们对大规模图像分类的深度卷积网络(多达19层)进行了评估。结果表明,表示深度有利于分类精度,并且使用传统的卷积网络体系结构(Le村等人,1989年;Krizhevsky等人,2012年),可以在ImageNet挑战数据集上获得最先进的性能(Le村等人,1989;Krizhevsky等人,2012年)。在附录中,我们还展示了我们的模型能够很好地概括到广泛的任务和数据集,匹配或优于构建在较低深度图像表示上的更复杂的识别管道。我们的结果再次证实了深度在视觉表现中的重要性。
ACKNOWLEDGEMENTS(致谢)
这项工作得到ERC赠款228180号(ERC grant VisRec no. 228180)的支持。我们感谢NVIDIA公司捐赠用于这项研究的GPU。
REFERENCES(参考文献)
详见原论文
APPENDIX(附录)
之后补充