Very Deep Convolutional Networks For Large-Scale Image Recognition(VGGnet)


                          用于大规模图像识别的非常深的卷积神经网络


Abstract(摘要)

在这项工作中,我们研究了卷积网络深度对其在大规模图像识别设置中的准确性的影响。我们的主要贡献使使用非常小(3\times 3)卷积滤波器的架构对越来越深的网络进行全面评估,这表明通过将深度堆到16-19的权重层可以实现对现有技术配置的显著改进。这些发现使我么提交的ImageNet Challenge 2014的基础,我们的团队分别在定位任务和分类任务中获得了第一和第二名。我们也展示我们的模型而可以很好地推广到其他数据集,在这些数据集中,它们可以实现最先进的结果。我们公开了两种表现最佳的ConvNet模型,以便进一步研究在计算机视觉中使用深度视觉表示。

1. Introduction(介绍)

卷积网络(ConvNets)最近在大规模图像和视频识别方面取得了巨大成功,这已成为可能由于大型公共图像存储库,如ImageNet,以及高性能计算系统,如GPU或大规模分布式集群。特别是,ImageNet大规模视觉识别挑战赛(ILSVRC)在深度视觉识别架构的发展中发挥了重要作用。该挑战赛成为几代大规模图像识别系统的试验平台。从高维度浅层特征解码(ILSVRC-2011的获得者)到深度ConvNets(ILSVRC-2012的获胜者)。

随着ConvNets成为计算机视觉领域的一种重要的技术,已经进行了许多尝试来改进Krizhevsky等人的原始架构。为了达到更好的准确率。例如,提交给ILSVRC-2013的最佳表现模型,利用较小的感受野窗口和第一卷积层较小的步长。另一项改进涉及在整个图像和多个尺度上密集地训练和测试网络。在本文中,我们讨论了ConvNet架构设计的另一个重要方面-它的深度。为此,我们固定了架构的其他参数,并通过添加更多卷积层来稳定地增加网络的深度,这是可行的,因为在所有层中使用非常小的(3\times 3)卷积滤波器。

因此,我们提出了更加精确的ConvNet架构,它不仅可以实现ILSVRC分类和定位任务最先进的准确率,而且还适用于其他图像识别数据集,当用作相对简单管道一部分时,甚至可以实现卓越的性能(例如,没有微调的通过线性SVM的深度特征分类)。我们发布了两个表现最佳的模型,以促进进一步的研究。

本文的其余部分安排如下。在Sect.2我们描述了我们的ConvNet配置。然后,图像分类和评估的细节将在Sect.3中介绍,并在Sect.4中将网络配置与ILSVRRC分类任务进行了比较。Sect.5总结了论文。为了完整起见,我们还在附录A中描述和评估了我们的ILSVRC-2014对象定位系统,并讨论了附录B中对其他数据集的深层特征的推广。最终,附录C包含主要纸质修订清单。

2. Convnet Configurations(卷积网路配置)

为了衡量卷积网络深度的增加在一个合理的设置中所带来的性能提升,我们所有的卷积层都使用相同的原理设计,灵感来自Ciresan(2011)/Krizhevsky(2012)等人。在本节中,我么首先描述卷积网络配置的一系列设计(第2.1节),然后详细介绍评估中使用的特定配置(第2.2节)。然后讨论我们的设计选择,并在2.3节中与现有的技术进行比较。

2.1 Architecture

在训练期间,我们的卷积网络的输入是固定大小的224\times 224RGB图像。我们唯一的预测里是从每个像素中减去在训练集上计算的平均RGB值。图像通过一堆卷积(conv.)层,我们使用具有非常小的感受野的过滤器:3\times 3(这是捕获左/右,上/下,中心信息的最小尺寸)。在其中一种配置中,我们还使用1\times 1卷积滤波器,可以看作是输入通道的线性变换(后面是非线性)。卷积步长固定为1像素。卷积层输入的空间填充使得在卷积之后保留空间分辨率,即对于3\times 3卷积,填充是1个像素。空间池化由五个最大池化层执行,这些层跟在一些卷积层之后(不是所有的卷积层都有最大池化层)。最大池化在2\times 2像素窗口上执行,步长为2.      

一堆卷积层(在不同的架构中具有不同的深度)之后是三个全连接层(FC):前两个有4096个通道,第三个执行1000类ILSVRC分类,因此包含1000个通道(一个为一类)。最后一层是softmax层。全连接层的配置在所有网络中都是相同的。

所有隐藏层都配置了整流非线性(ReLU)。我们注意到,我们的网络(除了一个)都没有包含本地响应归一化(LRN):将会展示在Sect.4中,这种归一化不会改善在ILSVRC数据集上的性能,但会导致内存消耗和计算时间增加。在使用的情况下,LRN层的参数是(Krizhevsky等,2012)的参数。

2.2 Configurations(配置)

本文评估的卷积网络的配置在表1中列出,每列一个。在下文中,我们将通过名称(A-E)来引用网络。所有的配置都遵循在2.1节中提供的通用设计,并且仅在深度上不同:从网络A中的11个个权重层(8个卷积层和3个FC层)到网络E中的19个权重层(16个卷积层和3个FC层)。卷积层的宽度(通道数)相当小,从第一层中的64开始,然后在每个池化层之后增加2倍,直到达到512.

在表2中,我们报告了每种配置的参数数量。尽管深度很大,我们网络中权重的数量不大于具有更大卷积宽度和感受野的更浅层网络中的权重数(144M权重在(Sermanet))。

2.3 Discussion(讨论)

我们的卷积网络配置与ILSVRC-2012(Krizhevsky等,2012)和ILSVRC-2013竞赛(Zeiler&Fergus, 2013;Sermanet等,2014)的最佳表现中使用的配置截然不同。我们没有在第一个卷积层使用大的感受野(例如,具有步长为4的11\times 11的过滤器,或具有步长为2的7\times 7的过滤器),我们在整个瓦盖罗中都将使用非常小的3\times 3感受野,与每个像素的输入都做卷积(步长为1)。很容易看出两个堆在一起的3\times 3卷积层(中间没有空间池化)与5\times 5感受野具有相同的效率。三个3\times 3的感受野相当与一个7\times 7的感受野。那么,我们使用三个3\times 3的感受野代替一个7\times 7的感受野我们获得了什么?首先,我们结合了三个非线性整流层,而不是一个非线性整流层,这使决策函数更有判别行。第二,我们减少了参数的数量:假设一个三层的3\times 3卷积堆的输入输出都有c个通道,这个卷积堆有3(3^{2}C^{2})=27C^{2}个参数;与此同时,单个7\times 7的卷积层将有7^{2}C^{2}=49C^{2}个参数,81%更多。这可以看作是7\times 7卷积过滤器进行正则化,迫使他们通过3\times 3滤波器进行分解(其间注入非线性)。

结合1\times 1卷积层(配置C,表1)是一种增加决策函数非线性而不影响卷积层感受野的方法。通过在我们的案例中,1\times 1的卷积层基本上是在相同维度的空间上的线性投影(输入和输出通道的数量是相同的),但是整流函数引入了额外的非线性。1\times 1的过滤器应该别注意,最近在Lin等人的“NIN”架构中使用了这些层。

Ciresan等人先前已经使用了小尺寸的卷积滤波器,但是它们的网络深度远远低于我们的网络,并且他们没有评估大规模的ILSVRC数据集。Goodfellow等人将深度ConvNets(11个权重层)应用于街道号码识别任务,并表明增加的深度导致了更好的性能。GoogLeNet,ILSVRC-2014分类任务的最佳表现模型,是独立于我们的工作开发的,但类似之处在于它基于非常深的ConvNets(22个卷积层)和小卷积滤波器(除了3x3,他们还使用了1x1和5x5).然而,他们的网络拓扑比我们的网络拓扑更复杂,并且在第一层更加积极地降低特征图的空间分辨率以减少计算量,如将在4.5节中展示的,我们的模型在单网络分类准确性方面优于Szegedy等人。

3. Classification Framework(分类框架)

在上一节中,我们介绍了网络配置的详细信息。在本节中,我们将描述卷积网络分类训练和评估的详细信息。

3.1 Training(训练)

卷积网络的寻来你通常遵循Krizhevsky等人的观点(预期从多尺度训练图像中对输入裁剪进行采样,如后面所述)。即,通过使用具有东来你的小批量梯度下降(基于反向传播(LeCun等人))优化多项逻辑回归目标来执行训练。批量大小设置为256,动量为0.9.通过权重衰减(L2惩戒乘数设置为5\cdot 10^{-4}和前两个全连接层的“dropout”正则化(丢失率设置为0.5)对寻来你进行正则化。学习率初始设置为10的-2次幂。然后当验证集精度停止改善时,学习率除以10。总计,那学习率下降了3次,并且在370K迭代(74个周期)之后学习被停止。我们推测,尽管参数数量较多且网络深度较大相比较于(Krizhevsky等),网络只需要更少的周期就可以收敛,这是因为(a)更大深度和更小的卷积过滤器大小加强了正则化,(b)某些层的预初始化。

网络权重的初始化很重要,因为由于深网中梯度的不稳定性,不良的初始化会使学习失速。为了避免这个问题,我们开始训练配置A(表1),其足够浅以便随机初始化进行训练。然后,当训练更深层的结构时,我们使用网络A层的权重初始化前四个卷积层和最后三个全连接层(中间层随机初始化)。我们没有降低预初始化层的学习率,允许它们在学习期间改变。对于随机初始化(如果适用),我们从具有零均值和10^{-2}方差的正态分布中对权重进行采样。偏差初始化为0.值得注意的是,在提交论文之后,我们发现通过使用Glorot&Bengio的随机初始化程序,可以在没有预训练的情况下初始化权重。

为了获得固定大小的224\times 224卷积网络的输入图像,从重新缩放的训练图像中随机裁剪它们(每个SGD迭代每个图像一个裁剪)。为了进一步增加训练集,那个裁剪图像经历了随机水平翻转和随机RGB颜色转移。下面解释训练图像重新缩放。

训练图像大小:设S是各向同性重新缩放的训练图像的最小边,从ConvNet输入中裁剪(我们也将S称为训练规模)。虽然裁剪大小固定为224\times 224,但原则上S可以采用不小于224的任何值:对于S=224,裁剪区域将捕获全图像统计数据,完全跨越训练图像的最小边;对于S>>224,裁剪将对应于图像的一小部分,包含一个小物体或一个对象部分。

我们考虑了两种方法设置训练规模S。第一种是固定S,这对应于单一规模的训练(注意,采样裁剪种的图像内容仍然可以代表多规模图像统计)。在我们的实验种,我们评估了在两个固定尺度下训练的模型:S=256(已在现有技术中使用)和S=384.在给定卷积网络配置的情况下,我们首先使用S=256训练网络。为了加速S=384网络的训练,使用预先训练的S=256的权重对其进行初始化,并且我们使用较小的初始值学习率10^{-3}.

设置S的第二种方法是多尺度训练,其中通过从特定范围\left [ S_{min},S_{max} \right ]随机采样来单独地重新调整每个训练图像。由于图像中的物体可以具有不同的尺寸,因此在训练期间考虑这一点是有益的。这也可以被视为通过尺寸抖动的训练集增强,其中训练单个模型以识别各种尺度上的对象。出于速度原因,我们通过使用相同配置微调单尺度模型的所有层来训练多尺度模型,使用固定的S=384进行预训练。

3.2 Testing(测试)

在测试时,给定经过训练的卷积网络和输入图像,按以下方式对其进行分类。首先,是一个被各向同性重新缩放到预定义的最小的图像边,记为Q(我们也将其称为测试尺度)。我们注意到Q不一定等于训练尺度S(正如我们将在第4节中所示,每个S使用几个Q值可以提高性能)。然后,以类似于(Sermanet等人,2014)的方式将网络密集地应用于重新缩放的测试图像上。即,首先将全连接层转换为卷积层(第一FC层为7\times 7卷积层,最后两个FC层转换为1\times 1卷积层)。然后将得到的完全卷积网络应用于整个(未剪切的)图像。结果时类别得分映射,其中通道数等于类的数量,并且可变空间分辨率取决于输入图像大小。最后,为了获得对于图像固定大小类别得分向量,对类别得分图进行空间平均(求和)。我们还可以通过水平翻转来增加测试集;将原始图像和翻转图像softmax类化后平均化以获得图像的最终分数。

由于完全卷积网络应用于整个图像,因此无需在测试时对多个裁剪进行采样,因为它需要对每种裁剪进行网络重新计算,效率较低。与此同时,使用大量裁剪,如Szegedy等人所作的那样。可以提高准确度,因为与完全卷积相比,它可以对输入图像进行更精细的采样。此外,由于不同的卷积网边界条件,多裁剪评估是对密集评估的补充;当将卷积网络应用与裁剪图像时,卷积网络的特征图用零填充,而在密集评估的情况下,同一裁剪图像的填充来自图像的相邻部分(由于卷积和空间池化),这大大增加了整个网络的感受野,因此捕获了更多的上下文信息。虽然我们认为实际上多种裁剪的计算时间增加并不能证明准确性的潜在增益,但作为参考,我们还使用每个每个规模50个裁剪(5\times 5规则网格,2个翻转)评估我们的网络,总共150个3种尺度的裁剪,与Szegedy等人使用的4种尺度的144种裁剪相当。

3.3 Implementation Details(实现细节)

我们实现源自公开的C++ Caffe工具箱(Jia, 2013),但包含许多重要的修改,允许我们对安装在单个系统中的多个GPU进行训练和评估。作为训练并评估多尺度的全尺寸(未剪切)图像(如上所述)。多GPU训练利用数据的并行性,并通过将每批训练图像分成几个GPU批次来执行,并在每个GPU上并行处理。在计算GPU批量梯度之后,对它们进行平均以获得完整批次的梯度。梯度计算在GPU之间是同步的,因此结果与在单个GPU上训练时的结果完全相同。

虽然最近提出了加速卷积网络训练的更复杂的方法,它采用了网络不同层的模板和数据并行性,但我们发现我们在概念上更简单的方案运行在县城的4-GPU系统与单个GPU相比,已经提供了3.75倍的加速。在配备四个NVIDIA Titan Black GPU的系统上,根据架构的不同,训练一个网络需要2-3周。

4. Classification Experiments(分类实验)

数据集:在本节中,我们将介绍所描述的卷积网络在ILSVRC-2012数据集上实现的图像分类结果(用于ILSVRC 2012年的挑战赛)。该数据集包括1000个类的图像,并分为三组:训练(1.3M图像),验证(50K图像)和测试(具有保持类标签的100K图像)。使用两个度量评估分类性能:top-1和top-5错误。前者是一个多类别的分类错误,即错误分类的图像的比例。后者是ILSVRC中使用的主要评估标准,并且计算为图像的比例,使得真实类别在前五个类别之外。

对于主要的实验,我们使用验证集作为测试集。还在测试集上进行了某些实验,并作为“VGG”团队的条目提交给官方ILSVRC服务器参加ILSVRC-2014竞赛。

4.1 Single Scale Evaluation(单尺度评估)

我们首先使用Sect.2.2中描述的层配置,以单一尺度评估各个卷积网络模型的性能。测试图像的尺寸设定如下:对于固定的S,Q=S,对于抖动的S\in \left [ S_{min},S_{max} \right ],Q=0.5\cdot \left [ S_{min}+S_{max} \right ]。结果如表3所示。

首先,我们注意到在没有任何归一化层的情况下,使用局部响应归一化(A-LRN网络)不会改进模型A。因此,我们不在更深层的架构(B-E)中使用归一化。

其次,我们观察到分类误差随着卷积网络的深度的增加而减小:从A中的11层到E中的19层。值得注意的是,尽管深度相同,但配置C(其中包含三个1\times 1卷积层),比使用3\times 3卷积层的配置D表现更差。这表明额外的非线性确实有帮助(C是优于B的),使用具有非平凡感受野的卷积过滤器捕获空间上下文也很重要(D由于C)。当深度达到19层时,我们的架构的错误率会饱和,但更深的模型可能对更大的数据集有益。我们使用具有5个5\times 5卷积网络的浅层网络与网络B进行比较。从B中使用一对3\times 3的卷积层替换5\times 5的卷积层(在2.3 节中解释了它们具有相同的感受野)。浅层网络的top-1错误率为7%比网络B高1%(在中心裁剪上),这证实了具有小过滤器的深网优于具有大过滤器的浅网。

最后,即使在测试时使用单尺度,在训练时刻(S属于256到384之间)的尺度抖动比具有固定最小边(S=256或384)的图像上的训练显示出更好的效果。这证实了通过尺度抖动的训练集增强确实有助于捕获多尺度图像统计信息。

表三:单个测试尺度的卷积网络性能

4.2 Multi-Scale Evaluation(多尺度评估)

在单一尺度评估卷积网络模型后,我们现在评估在测试时尺度抖动的影响。它包括在测试图像的几个重新缩放版本运行模型(对应于不同的Q值),然后对得到的类后验结果进行平均。考虑到训练和测试之间的差异导致性能下降,使用固定S训练的模型在三个测试图像大小上进行评估,接近训练一:Q={S-32, S, S+32}。同时,在训练时尺度抖动允许网络在测试时应用于更宽范围的尺度,因此模型训练变量S\in \left [ S_{min},S_{max} \right ]被评估在一个更大范围的Q={S_{min}, 0.5(S_{min}+S_{max}),S_{max}}

表4中显示的结果表明,在测试时尺度的抖动导致更好的性能(与在单一尺度上评估相同模型相比,如表3所示)。因此,最深的配置(D和E)表现最佳,并且尺度抖动优于使用固定最小边S的训练。我们在验证集上的最佳单网络性能是24.8%/7.5%对应top-1/top-5错误率(表4中以粗体突出显示)。在测试集上,配置E达到7.3%的top-5错误率。

表4:多个测试尺度的卷积网络性能

4.3 Multi-Crop Evaluation(多个裁剪评估)

在表5中,我们将密集的卷积网络评估与多裁剪图像评估做比较(参见第3.2节)。我们还通过平均其softmax输出来评估两种评估技术的互补性。可以看出,使用多种裁剪图像的表现略好于密集评估。这两种方法是互补的,因为它们的组合优于每一种。如上所述,我们假设这是对于卷积边界的不同处理。

表5:卷积评估技术的比较。在所有的实验训练尺度S从[256;512]中取样,并且三个测试尺度Q被考虑:{256,384,512}。

4.4 ConvNet Fusion(卷积网络聚变)

到目前为止,我们评估了各个ConvNet模型的性能。在这部分实验中,我们将几个模型的输出结合起来,然后通过平均它们的softmax类别后验概率。由于模型的互补性,这改善了性能。并且在2012和2013年顶级ILSVRC提交中使用。

结果显示在表6中。到ILSVRC提交时,我们只训练了单尺度网络,以及多尺度模型D(通过仅微调全连接层而不是所有层)。由此产生的7个网络集合具有7.3%的ILSVRC测试错误。提交后,我们考虑了仅有两个表现最佳的多尺度模型(配置D和E)的集合,使用密集评估将测试误差降到7.0%,使用密集和裁剪组合评估将测试误差降到了6.8%。作为参考,我们性能最佳的单一模型可实现7.1%的误差(模型E,表5).

表6:多个卷积聚变的结果

4.5 Comparison With The State of The Art(与先进技术的比较)

最后,我们将结果与表7中的现有技术进行了比较,在ILSVRC-2014挑战的分类任务中,我们的“VGG”团队以7.3%的测试误差获得了第二名,使用了7个模型的合集。提交后,我们使用2个模型的集合将错误率降低到6.8%。

从表7中可以看出,我们非常深度的卷积网络明显优于上一代模型,这些模型在ILSVRC-2012和ILSVRC-2013竞赛中取得了最佳效果。我么的结果在分类任务获胜者(GoogLeNet误差为6.7%)方面也具有竞争力,并且大大优于ILSVRC-2013获胜者提交的Clarifai,其中外部训练数据达到11.2%,没有它的11.7%。这是非常值得注意的,因为我们的最佳结果是通过仅仅结合两个模型来实现的-显著的低于大多数ILSVRC提交的模型。就单网性能而言,我们的架构实现了最佳结果(7.0%测试错误),优于单个CoogLeNet 0.9%。值得注意的是,我们并未脱离LeCUn等人的经典的ConvNet架构。但通过大幅增加深度来改善它。

表7:与ILSVRC分类中先进技术的比较。我们的方法是“VGG".那个结果获取报告没有外部数据获取

5. Conclusion(总结)

在这项工作中,我们评估了非常深的卷积网络(最多19个权重层),用于大尺度图像分类。已经证明,表示深度有利于分类准确性,并且可以使用深度大幅度增加的传统的ConvNet架构实现ImageNet挑战数据集上的最先进性能(LeCun,1989;Krizhevsky,2012)。在附录中,我们还展示了我们模型很好地适用于广泛的任务和数据集,匹配或优于围绕不太深的图像表示构建的更复杂的识别管道。我们的结果再次证实了深度在视觉表现中的重要性。

 

猜你喜欢

转载自blog.csdn.net/gyt15663668337/article/details/88067572