目录
用于大规模图像识别的深层卷积网络
摘要
在这项工作中,我们研究了卷积网络的深度对大规模图像识别配置中的准确性的影响。 我们的主要贡献是使用具有非常小(3×3)卷积滤波器的架构对深度增加的网络进行全面评估,这表明通过将深度推至16-19个权重层可以实现对现有技术配置的显著改进。这些调查结果是我们提交的ImageNet Challenge 2014的基础,我们的团队分别在定位和分类中分别获得了第一和第二的位置。 我们还表明,我们的表示可以很好地推广到其他数据集,在这些数据集中,它们可以实现最先进的结果。 我们公开了两种表现最佳的ConvNet模型,以便进一步研究在计算机视觉中使用深度视觉表示。
1.引言
由于大的公开图像存储库(例如ImageNet)与高性能计算系统(例如GPU或大规模分布式集群(Dean等,2012))的出现,使得卷积网络(ConvNets)近来在大规模图像和视频识别方面取得了巨大成功(Krizhevsky等,2012;Zeiler&Fergus,2013;Sermanet等,2014;Simonyan&Zisserman,2014)成为可能。其中特别的,ImageNet大型视觉识别挑战(ILSVRC)(Russakovsky等,2014)对深度视觉识别架构的发展起着非常重要的推进作用,它是从高维度浅层特征编码(Perronnin等,2010)(ILSVRC-2011的获胜者)到深层ConvNets(Krizhevsky等,2012)(ILSVRC-2012的获奖者)等几代大规模图像分类系统的测试平台。
随着ConvNets在计算机视觉领域的越来越流行,为了达到更高的准确性,已经进行了许多尝试来改进Krizhevsky等人(2012)最初的架构。例如,ILSVRC-2013(Zeiler&Fergus,2013;Sermanet等,2014)表现最佳的提交对于第一层卷积层使用了更小的感受窗口尺寸和更小的步长。(utilised smaller receptive window size and smaller stride of the first convolutional layer)[这里有人翻译:为使用较小的接受窗口大小和在第一个卷积层更小的步长]另一条改进措施是在整个图像和多个尺度上对网络进行密集地训练和测试(Sermanet等,2014;Howard,2014)。在本文中,我们解决了ConvNet架构设计的另一个重要方面——其深度。为此,我们修复了架构的其他参数,并通过添加更多卷积层来稳定地增加网络的深度,这是可行的,因为在所有层中使用非常小的(3×3)卷积滤波器。
因此,我们提出了更为精确的ConvNet架构,这个架构不仅可以在ILSVRC分类和定位任务上取得了最佳的准确性,而且还适用于其它的图像识别数据集,它们可以获得优异的性能,即使使用相对简单流程的一部分(例如,通过线性SVM分类深度特征而不进行微调)。我们发布了两款表现最好的模型,以便进一步研究。
本文的其余部分组织如下:在第2节,我们描述了我们的ConvNet配置,图像分类训练和评估的细节在第3节,在第4节中在ILSVRC分类任务上对配置进行了比较,第5节总结了论文。为了完整起见,我们还将在附录A中描述和评估我们的ILSVRC-2014目标定位系统,并在附录B中讨论了非常深层的特征在其它数据集上的泛化。最后,附录C包含了主要的论文修订列表。
2. ConvNet配置
为了在公平的环境中来评估由卷积神经网络深度增加带来的精度提高,受Ciresan等(2011);Krizhevsky等人(2012年)的启发,我们所有的ConvNet层配置都使用相同的规则。在本节中,我们首先描述ConvNet配置的通用设计(第2.1节),然后详细说明评估中使用的特定配置(第2.2节)。最后,我们的设计选择将在2.3节进行讨论并与现有技术进行比较。
2.1架构
在训练中,我们的ConvNet的输入是固定大小的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)的参数。
表1:ConvNet配置(以列显示)。随着更多的层被添加(添加的层以粗体显示),配置的深度从左(A)增加到右(E)。卷积层参数表示为“conv(感受野大小)-(通道数)”。为了简洁起见,不显示ReLU激活函数。
表2:参数数量(百万级别)
2.2配置
本文评估的ConvNet配置在表1中列出,每列一个。接下来我们将按网络的名称(A-E)来提及网络。所有配置都遵循2.1节提出的通用设计,并且仅是深度不同:从网络A中的11个加权层(8个卷积层和3个FC层)到网络E中的19个加权层(16个卷积层和3个FC层)。卷积层的宽度(通道数)相当小,从第一层中的64开始,然后在每个最大池化层之后增加2倍,直到达到512。
在表2中,我们报告了每个网络配置的参数数量。尽管深度很大,我们的网络中权重数量并不大于具有更大卷积层宽度和感受野的较浅网络中的权重数量(144M的权重在(Sermanet等人,2014)中)。
2.3讨论
我们的ConvNet配置与ILSVRC-2012(Krizhevsky等,2012)和ILSVRC-2013比赛(Zeiler&Fergus,2013;Sermanet等,2014)表现最佳的参赛提交中使用的ConvNet配置有很大不同。不是在第一卷积层中使用相对较大的感受野(例如,在(Krizhevsky等人,2012)中的11×11,步长为4,或在(Zeiler&Fergus,2013;Sermanet等,2014)中的7×7,步长为2),我们在整个网络使用非常小的3×3感受野,与输入的每个像素(步长为1)进行卷积。很容易看到两个3×3卷积层堆叠(没有空间池化)有5×5的有效感受野;三个这样的层具有7×7的有效感受野。那么我们通过使用三个3×3卷积层的堆叠而不是单个7×7卷积层获得了什么?
首先,我们结合了三个非线性修正层,而不是单一的,这使得决策函数更具判别性。其次,我们减少参数的数量:假设三层3×3卷积堆叠的输入和输出有C个通道,堆叠卷积层的参数为3()=27个权重;同时,单个7×7卷积层将需要 =49个参数,即参数多81%。这可以看作是对7×7卷积滤波器进行正则化,迫使它们通过3×3滤波器(在它们之间注入非线性)进行分解。
并入1×1卷积层(配置C,表1)是增加决策函数非线性而不影响卷积层感受野的一种方式。即使在我们的案例下,1×1卷积基本上是在相同维度空间上的线性投影(输入和输出通道的数量相同),但是修正函数引入了附加的非线性。应该注意的是1×1卷积层最近在Lin等人(2014)的“Network in Network”架构中已经得到了使用。
Ciresan先前已使用小尺寸卷积滤波器,但是他们的网络深度远远低于我们的网络,他们并没有在大规模的ILSVRC数据集上进行评估。Goodfellow等人(2014)在街道号识别任务中采用深层ConvNets(11个权重层),显示出增加的深度导致了更好的性能。GooLeNet(Szegedy等,2014),ILSVRC-2014分类任务的表现最好的项目,是独立于我们工作之外的开发的,但是类似的是它是基于非常深的ConvNets(22个权重层)和小卷积滤波器(除了3×3,它们也使用了1×1和5×5卷积)。然而,它们的网络拓扑结构比我们的更复杂,并且在第一层中特征图的空间分辨率被更显著地减少,以减少计算量。正如将在第4.5节显示的那样,我们的模型在单网络分类精度方面胜过Szegedy等人(2014)。
3.分类框架
在上一节中,我们介绍了我们的网络配置的细节。在本节中,我们将介绍分类ConvNet训练和评估的细节。
3.1训练
ConvNet训练过程通常遵循Krizhevsky等人(2012)(除了从多尺度训练图像中对输入裁剪图像进行采样外,如下文所述)。也就是说,通过使用具有动量的小批量梯度下降(基于反向传播(LeCun等人,1989))来优化多项式逻辑回归目标函数来进行训练。批量大小设为256,动量为0.9。训练通过权重衰减(L2惩罚乘子设定为5⋅10-4)和前两个全连接层的dropout正则化(丢弃率设置为0.5)对训练进行正则化。学习率初始设定为10^(-2),然后当验证集准确率停止改善时,减少10倍。学习率总共降低3次,学习在37万次迭代后停止(74个epochs)。我们推测,尽管与(Krizhevsky等,2012)相比我们的网络参数更多,网络的深度更大,但我们的网络需要更小的epoch就可以收敛,这是由于(a)由更大的深度和更小的卷积滤波器尺寸引起的隐式正则化,(b)某些层的预初始化。
网络权重的初始化是重要的,因为由于深度网络中梯度的不稳定,不好的初始化可能会阻碍学习。为了规避这个问题,我们开始训练配置网络A(表1),足够浅,可以随机初始化训练。然后,当训练更深的架构时,我们用网络A初始化了前四个卷积层和最后三个全连接层(中间层是随机初始化的)。我们没有减少预初始化层的学习率,允许他们在学习过程中改变。对于随机初始化(如果应用),我们从均值为0和方差为10-2的正态分布中对权重进行采样。偏置被初始化为零。值得注意的是,在提交论文之后,我们发现可以通过使用Glorot&Bengio(2010)的随机初始化程序来初始化权重而不进行预训练。
为了获得固定大小的224×224 ConvNet输入图像,它们从经过尺寸缩放的训练图像中被随机裁剪(每个图像每次SGD迭代进行一次裁剪)。为了进一步增强训练集,裁剪图像经过了随机水平翻转和随机RGB颜色偏移(Krizhevsky等,2012)。下面解释训练图像的尺寸缩放。
训练图像大小。令S是等轴归一化[这里有人翻译为:经过各向同性缩放]的训练图像的最小边,ConvNet输入从S中裁剪(我们也将S称为训练尺度)。虽然裁剪尺寸固定为224×224,但原则上S可以是不小于224的任何值:对于S=224,裁剪图像将捕获整个图像的统计数据,完全扩展训练图像的最小边;对于S»224,裁剪图像将对应于图像的一小部分,包含一个小对象或对象的一部分。
我们考虑两种方法来设置训练尺度S。第一种方法是针对单尺度图像的训练,固定S(注意到,采样裁剪图像中的图像内容仍然可以表示多尺度图像的统计信息)。在我们的实验中,我们评估了以两个固定尺度训练的模型:S=256(已经在现有技术中广泛使用(Krizhevsky等人,2012;Zeiler&Fergus,2013;Sermanet等,2014))和S=384。给定ConvNet配置,我们首先使用S=256来训练网络。为了加速S=384网络的训练,用S=256预训练的权重来进行初始化,并且我们使用较小的初始学习率10-3。
设置S的第二种方法是多尺度训练,其中每个训练图像通过从一定范围[Smin,Smax](其中Smin=256和Smax=512)随机采样S来单独进行归一化。[这里有人翻译为:每一幅图像单独的从[Smin,Smax]中随机选取S来进行尺寸缩放]由于图像中的目标可能具有不同的大小,因此在训练期间考虑到这一点是有益的。这也可以看作是通过尺度抖动进行训练集增强,即训练单个模型以识别各种尺度的物体。出于速度原因,我们通过对具有相同配置的单尺度模型的所有层进行微调,训练了多尺度模型,并用固定的S=384进行预训练。
3.2测试
在测试时,给定经过训练的ConvNet和输入图像,按以下方式对其进行分类。首先,将其等轴地归一化到预定义的最小图像边,表示为Q(我们也将其称为测试尺度)。我们注意到,Q不一定等于训练尺度S(正如我们将在第4节中所示,每个S使用Q的几个值可以提高性能)。然后,网络以类似于(Sermanet等人,2014)的方式密集地应用于归一化的测试图像上。即,全连接层首先被转换成卷积层(第一FC层转换到7×7卷积层,最后两个FC层转换到1×1卷积层)。然后将所得到的全卷积网络应用于整个(未裁剪)图像上。结果是类别得分图的通道数等于类别的数量,并且可变空间分辨率[这里有人翻译为:空间分辨率]取决于输入图像大小。(and a variable spatial resolution, dependent on the input image size.)最后,为了获得图像的类别分数的固定大小的向量,对类得分图在空间上平均(求和-池化)。我们还通过水平翻转图像来增强测试集;将原始图像和翻转图像的soft-max类后验进行平均,以获得图像的最终分数。
由于全卷积网络被应用在整个图像上,所以不需要在测试时对多个裁剪图像进行采样(Krizhevsky等,2012),因为网络对每个裁切的重新计算会使效率降低。同时,如Szegedy等人(2014)所做的那样,使用大量的裁剪图像可以提高准确度,因为与全卷积网络相比,它使输入图像的采样更精细。此外,由于不同的卷积边界条件,多裁剪图像评估是密集评估的补充:当将ConvNet应用于裁剪图像时,卷积特征图用零填充,而在密集评估的情况下,相同裁剪图像的填充自然会来自于图像的相邻部分(由于卷积和空间池化),这大大增加了整个网络的感受野,因此捕获了更多的上下文。虽然我们认为在实践中,多裁剪图像的计算时间增加并不足以准确地证明潜在收益,但作为参考,我们还在每个尺度使用50个裁剪图像(5×5规则网格,2次翻转)评估了我们的网络,在3个尺度上总共150个裁剪图像,与Szegedy等人(2014)在4个尺度上使用的144个裁剪图像相当。
3.3 实现细节
我们的实现来源于公开的C++ Caffe工具箱(Jia,2013)(2013年12月版本),但包含了许多重要的修改,使我们对安装在单个系统中的多个GPU进行训练和评估,也能训练和评估在多个尺度上(如上所述)的全尺寸(未裁剪)图像。
多GPU训练利用数据并行性,通过将每批训练图像分成几个GPU批次,并在每个GPU上并行处理。在计算GPU批次梯度之后,将其平均以获得完整批次的梯度。梯度计算在GPU之间是同步的,所以结果与在单个GPU上训练的结果完全一样。
最近提出了更加复杂的加速ConvNet训练的方法(Krizhevsky,2014),它们对网络的不同层之间采用模型和数据并行,我们发现与使用单个GPU相比,我们概念上更简单的方案已经在现成的4-GPU系统上提供了3.75倍的加速。在配备四个NVIDIA Titan Black GPU的系统上,根据架构的不同,训练一个网络要2-3周的时间。
4 分类实验
数据集。在本节中,我们介绍了描述的ConvNet架构在ILSVRC-2012数据集上(用于ILSVRC 2012-2014挑战)实现的图像分类结果。数据集包括1000个类别的图像,并分为三组:训练(130万张图像),验证(5万张图像)和测试(留有类标签的10万张图像)。使用两个措施评估分类性能:top-1和top-5错误率。前者是多类分类误差,即不正确分类图像的比例;后者是ILSVRC中使用的主要评估标准,并且计算为图像真实类别在前5个预测类别之外的图像比例。
对于大多数实验,我们使用验证集作为测试集。在测试集上也进行了一些实验,并将其作为ILSVRC-2014竞赛中(Russakovsky等,2014)“VGG”小组的输入提交到了官方的ILSVRC服务器。
4.1 单尺度评估
我们首先评估单个ConvNet模型在单尺度上的性能,其层结构配置如2.2节中描述。测试图像大小设置如下:对于固定S的Q=S,对于抖动S∈[Smin,Smax],Q=0.5(Smin+Smax)。结果如表3所示。
首先,我们注意到使用局部响应归一化(A-LRN网络)并没有提高不使用任何标准化层的模型A的性能。因此,我们在较深的架构(B-E)中不采用归一化。
第二,我们观察到分类误差随着ConvNet深度的增加而减小:从A中的11层到E中的19层。值得注意的是,尽管深度相同,配置C(包含3个1×1卷积层)比在整个网络层中使用3×3卷积的配置D更差。这表明,虽然额外的非线性确实有帮助(C优于B),但通过使用具有非平凡感受野的卷积过滤器来捕获空间上下文也很重要。当深度达到19层时,我们架构的错误率饱和,但更深的模型可能对更大的数据集有益。我们还将网络B与具有5个5×5卷积层的浅层网络进行了比较,这个浅层网络可以通过用单个5×5卷积层替换B中每对3×3卷积层得到(其具有相同的感受野如第2.3节所述)。测得浅层网络top-1错误率比网络B的top-1错误率(在中心裁剪图像上)高7%,这证实了具有小滤波器的深层网络优于具有较大滤波器的浅层网络。
最后,即使在测试时使用单尺度,训练时的尺度抖动(S∈[256;512])导致了比固定最小边(S=256或S=384)的图像训练相比更好的结果。这证实了通过尺度抖动进行的训练集增强确实有助于捕获多尺度图像统计。
表三:ConvNet模型在单尺度上的性能表现
4.2 多尺度评估
在单尺度上评估ConvNet模型后,我们现在评估测试时尺度抖动的影响。它包括在测试图像的几个经过尺度缩放的测试图像上运行模型(对应于不同的Q值),然后对所得到的类后验进行平均。考虑到训练和测试尺度之间的巨大差异会导致性能下降,因此在模型训练时,我们固定S的值,使用接近于S的三个测试尺寸Q={S−32,S,S+32}来进行评估。同时,训练时的尺度抖动允许网络在测试时应用于更广的尺度范围,所以用变量S∈[Smin;Smax]训练的模型在更大的尺寸范围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:在多个测试尺度上的ConvNet性能
4.3 多裁剪图像评估
在表5中,我们将稠密ConvNet评估与多裁剪图像评估进行比较(细节参见第3.2节)。我们还通过平均其soft-max输出来评估两种评估技术的互补性。可以看出,使用多裁剪图像表现比密集评估略好,而且这两种方法确实是互补的,因为它们的组合优于其中的每一种。如上所述,我们假设这是由于卷积边界条件的不同处理。
表5:ConvNet评估技术比较。在所有的实验中训练尺度S从[256;512]采样,考虑了三种测试尺度Q:{256, 384, 512}。
4.4 卷积网络融合
到目前为止,我们评估了各个ConvNet模型的性能。在这部分实验中,我们通过对soft-max类别后验进行平均,结合了几种模型的输出。由于模型的互补性,这提高了性能,并且在2012年(Krizhevsky等,2012)和2013年(Zeiler&Fergus,2013;Sermanet等,2014)中被用于ILSVRC的最高提交。
结果如表6所示。在ILSVRC提交的时候,我们只训练了单规模网络,以及一个多尺度模型D(仅在全连接层进行微调而不是所有层)。由此产生的7个网络组合具有7.3%的ILSVRC测试误差。在提交之后,我们考虑了只有两个表现最好的多尺度模型(配置D和E)的组合,它使用密集评估将测试误差降低到7.0%,使用密集评估和多裁剪图像评估将测试误差降低到6.8%。作为参考,我们表现最佳的单模型达到7.1%的误差(模型E,表5)。
表6:多个卷积网络融合结果
4.5 与现有技术比较
最后,我们将结果与表7中的现有技术进行了比较。在ILSVRC-2014挑战的分类任务中(Russakovsky等,2014),我们的“VGG”团队使用7个模型的集合以7.3%的测试误差获得第二名。提交后,我们使用2个模型的组合将错误率降低到6.8%。
从表7可以看出,我们非常深的ConvNets显著优于前一代模型,这些模型在ILSVRC-2012和ILSVRC-2013竞赛中取得了最好的结果。我们的结果对于分类任务获胜者(GoogLeNet具有6.7%的错误率)也具有竞争力,并且大大优于ILSVRC-2013获胜者Clarifai的提交,其使用外部训练数据取得了11.2%的错误率,没有外部数据则为11.7%。这是非常了不起的,考虑到我们最好的结果是仅通过组合两个模型实现的——明显少于大多数ILSVRC提交的模型。在单网络性能方面,我们的架构取得了最好结果(7.0%测试误差),超过单个GoogLeNet 0.9%。值得注意的是,我们并没有偏离LeCun(1989)等人经典的ConvNet架构,但通过大幅增加深度改善了它。
表7:在ILSVRC分类中与现有技术比较。我们的方法表示为“VGG”。只展示没有外部训练数据的结果。
5 结论
在这项工作中,我们评估了非常深的卷积网络(达到了19个权重层)用于大规模图像分类。已经证明,表示深度(the representation depth)有利于分类精度,并且深度大大增加的传统ConvNet架构(LeCun等,1989;Krizhevsky等,2012)可以实现ImageNet挑战数据集上的最佳性能。在附录中,我们还显示了我们的模型很好地泛化到各种各样的任务和数据集上,匹敌或超越构建在不太深的图像表示上的更复杂的识别流程。(matching or outperforming more complex recognition pipelines built around less deep image representations.)我们的结果再次证实了深度在视觉表示中的重要性。
致谢
这项工作得到ERC授权的VisRec编号228180的支持.我们非常感谢NVIDIA公司捐赠GPU为此研究使用。
附录A :目标定位
本文的主体内容中,我们考虑了ILSVRC挑战的分类任务,并对不同深度的ConvNet框架进行了全面的评估。在这个部分我们主要介绍挑战中的目标定位任务,在这项上我们以25.3%的错误率获得了2014年的冠军。这可以看做是目标检测的一种特殊情况,对于top-5类中的每一类,需要预测一个单一的目标边界框,而不需考虑每一类目标的实际数量。为此,我们在ILSVRC-2013定位任务冠军模型sermanet2013overfeat的基础上,进行了一些修正。Sect A.1描述了我们的方法,Sect A.2对我们的方法进行了评估。
A.1 目标定位ConvNet
在目标定位中,我们使用了非常深的卷积网络,最后一个全连接层用来预测边界框的位置而不是分类得分。边界框由一个4-D向量表示,包括了它的中心坐标、宽度和高度。关于边界框的预测有两种方案:是在所有类之间共享的(单类回归,SCR)还是针对特定类的(每类回归,PCR)。对于前一种,最后一层的输出维度是4-D;而对于后一种,最后一层的输出维度是4000-D(因为数据集中共有1000中类别)。除了最后一个边界框预测层,前面我们使用配置D的卷积网络,它包含16个权重层,在分类任务中性能是最好的(Sect.4)。
训练:
定位卷积网络的训练和分类卷积网络的训练类似(Sect 3.1)。主要的区别是我们将逻辑回归目标替换成了欧式损失(Euclidean loss),用来惩罚预测的边界框参数与真值之间的偏差。我们训练了两个定位模型,分别使用单一尺寸:S=256 和 S=384 (由于时间限制,在ILSVRC-2014的提交上我们并没有在训练时使用尺寸抖动)。训练使用对应的分类模型进行初始化(使用相同尺寸训练),初始学习率为10-3。我们研究了两种调优方式:在所有层进行微调和只在前两个全连接层进行微调。最后一个全连接层使用随机初始化并从头开始训练。
测试:
我们考虑两种测试方案。第一种用来比较使用不同网络修正(modifications)(即调优方式不同,所有层调优/全连接层调优)在验证集上的区别,只考虑对真实类别的边界框预测(去除了分类错误).只在图像的中心裁切上使用网络来获得边界框。
第二个全面的测试程序基于将定位ConvNet密集应用于整个图像,这类似于分类任务(Sect 3.2)。不同的是,最后一个全连接层的输出是用一组边界框预测取代了分类得分图(the class score map)。为了获得最终预测结果,我们使用了sermanet2013overfeat中的贪婪合并程序,先合并空间上紧密的预测(通过计算坐标的平均值),然后根据从分类ConvNet获得的分类得分对他们进行评级。当使用了一些定位ConvNets时,我们首先得到它们对边界框预测的合集,然后在这个合集上运行合并程序。我们并没有使用sermanet2013overfeat中用来增加边界框预测空间分辨率的多重池化偏移技术来进一步提升结果。
(译者注:即第一种是在真实类上预测边界框,为了确定模型配置;第二种在确定模型配置后,使用预测类,在预测类上预测边界框。)
A.2:目标定位实验
这个部分中,我们先来确定性能最好的定位网络配置(使用第一种测试方案),再使用一个全面的方案(第二种方案)来对它进行评估。定位错误率根据ILSVRC标准进行衡量,即,如果预测的边界框与真实边界框的重叠率大于0.5,则被认为是正确的。
配置比较:Table8 中可以看出,每类回归(PCR)优于类无关的单类回归(SCR),而这和sermanet2013overfeat中的发现正好相反。我们也注意到,对于定位任务,在所有层进行微调的结果明显比只在全连接层微调的结果好得多(与sermanet2013overfeat相同)。在这些实验中,图像的最小边设置为S=384;S=256的结果类似,为了简洁不进行展示。
表8:对于不同修正方式的定位错误率,使用了一个简化的测试方案:使用了真实类别,在单一的中心剪裁图像上来预测边界框。所有ConvNet(除了最后一层)都按照配置D进行配置(Table 1),最后一层使用单类回归(SCR)或者每类回归(PCR)。
全面评估.在得到了最佳的定位网络设定(PCR,在所有层微调)后,我们使用一个完整的方案来进行评估,使用我们性能最好的分类系统(Sect 4.5)来对top-5类别进行预测,然后使用sermanet2013overfeat的方法来对多个密集计算预测的边界框进行合并。从Table9 中可以看出,在整幅图像上使用定位ConvNets,比在中心裁切图像上(Table8 )的结果明显要好, 尽管使用的是top-5的预测类而不是真实类。与分类任务(Sect.4)相同,在多个尺度上进行测试然后组合多个模型的预测结果,能够对性能产生进一步的提升。
与现有技术的比较。Table10 将我们的定位模型结果与业界最好的结果进行比较。我们的“VGG”团队以25.3%的测试错误率获得了ILSVRC-2014定位比赛的冠军。值得注意的是,我们的结果比ILSVRC-2013的冠军Overfeat要好得多,尽管我们使用了较少的尺度,也没有使用他们的分辨率增强技术。我们认为如果这一技术能容纳到我们的方法中,可以获得更好的定位效果。这表明了我们非常深的ConvNets能给性能带来很大的提升——只使用了一个很简单的定位方法,但更强力的表达(a more powerful representation),我们得到了更好的结果。
表10:在ILSVRC定位任务上与业界最好的结果比较。我们的方法称为“VGG”
附录B:深层特征的泛化
在前几章,我们讨论了非常深的卷积网络在ILSVRC数据集上的训练和评估。在这个部分,我们将对使用在ILSVRC上预训练的卷积网络作为其他更小数据集的特征提取器进行评估,因为小数据集上从头开始训练大的模型会由于过拟合而变得很困难。最近,人们对这种使用案例感兴趣(Zeiler & Fergus, 2013;Donahue et al., 2013; Razavian et al., 2014; Chatfield et al., 2014),因为事实证明,在ILSVRC上学到的深度图像表达,在其他数据集上的泛化性能也很好,太闷的表现优于其他大规模手工制作进行表达的数据集。(where they have outperformed
hand-crafted representations by a large margin.)根据这一系列工作,我们也开始研究我们的模型是否能比业界最好方法所使用的的浅层模型效果更好。在这项评估中,我们考虑两个在ILSVRC上分类性能最好的模型(Sect.4)——配置“Net-D”和“Net-E”(我们都进行了公开)。
为了在其它数据集上使用在ILSVRC上预训练的模型来进行图像分类,我们去除了最后一个全连接层(用来进行1000类的ILSVRC分类),使用倒数第二层的4096-D激活作为图像特征,并在多个位置和尺度之间聚合。由此产生的图像描述使用L2正则化并与一个在目标数据集上训练的线性SVM分类器组合。为了简单起见,保留了预训练的ConvNet的权重(不进行微调)。
特征的聚合与我们的ILSVRC评估程序(Sect 3.2)相似。也就是说,先将图像尺寸缩放到使它的最短边等于Q,然后在图像平面上密集的应用网络(当所有权重层被视为卷积层时,这是有可能的)。然后在产生的特征图上使用全局平均池化,便产生了一个4096-D的图像描述子。再将这个描述子与在对应的水平翻转图像上产生的描述子取平均。如Sect 4.2所展示的,多个尺度上的评估是有利的,因此我们也在多个尺度Q上提取特征。由此产生的多尺度特征既可以尺度间堆叠也可以池化。堆叠也使得之后的分类器能够学习如何最优的将多个尺度的图像统计特征进行组合;但是这是以增加描述子维度为代价的。我们在下面的实验中回到对这个设计选择的讨论。我们还评估了使用两个网络计算的特征的后期融合,这是通过它们各自的图像描述子的堆叠完成的。
表11:在VOC-2007、VOC-2012、Caltech-101, and Caltech-256上的图像分类与业界最好结果的比较。我们的模型称为“VGG”,标有*的是在ILSVRC拓展数据集上(2000类)预训练的卷积网络实现的结果。
在VOC-2007和VOC-2012上对图像进行分类
我们开始评估PASCAL VOC-2007和VOC-2012基准数据集的图像分类任务。这两个数据集分别包含10K和22.5K张图像,每一张图像标注有一个或多个标签,对应有20个目标种类。VOC组织者将数据集分为训练集、验证集和测试集(VOC-2012测试集并没有公开,而提供了一个官方的评估服务器)。识别性能通过多类上的平均精度(mAP)来评估。
值得注意的是,通过验证在VOC-2007和VOC-2012验证集上的性能,我们发现通过计算多个尺度间的平均来融合描述子与通过堆叠来融合的效果相似。我们认为这是因为VOC数据集中,目标通常呈现在多个尺度上,因此并没有分类器可以利用的特定的尺度和语义。由于计算平均并不会增加描述子的维度,我们能够融合大范围尺度的图像描述子:Q∈{256,384,512,640,768}。值得注意的是,小范围尺度{256,384,512}的改善相对微不足道(0.3%)。(the improvement over a smaller range of {256, 384, 512} was rather marginal (0.3%).)
在测试集上的性能以及与其他方法的比较见Table11。我们的网络“Net-D”和“Net-E”在VOC数据集上展现了相同的性能,它们的组合对结果略有提高。我们在ILSVRC数据集上的预训练模型,展现了优异的图像表达能力,比之前最好的结果chatfield2014return高出了6%。值得注意的是wei2014cnn的方法,使用了2000类的ILSVRC拓展数据集进行预训练,增加了额外的1000个类别,这与VOC数据集很相近,它在VOC-2012上的mAP比我们的结果高出了1%。它还有利于物体检测与辅助分类管道的融合。
在Caltech-101和Caltech-256上对图像进行分类.在这个部分,我们在Caltech-101和Caltech-256的图像分类基准上对非常深的特征进行评估。Caltech-101包含9k张图像,一共有102类标签(101个目标种类和一个背景类别),Caltech-256有31K张图像和257种类别。一个标准的评估方案就是将这些数据集随机分成多份训练和测试数据,然后报告多份之间的平均识别性能,识别性能由平均类召回率来衡量(是对每类测试图像数量不相同的补偿)。在Caltech-101上我们随机生成了3份训练和测试数据,每一份中每类含有30张训练图像,以及每个类多达50张的测试图像。在Caltech-256上我们也随机生成3份数据,每一份每类含有60张训练图像(剩下的都用来测试)。在每一份中,20%的训练图像作为验证集,用来进行超参数选择。
我们发现与VOC不同的是,在Caltech数据集上,将多个尺度上计算的描述子进行堆叠的效果比求平均或者最大池化的效果好。这可能是因为,在Caltech图像中,目标通常占据整幅图像,因此多个尺度上的图像特征在语义上是不同的(捕获整个目标 vs 目标的一部分),而堆叠使得分类器能够利用这样特定尺度的表达。我们使用三种尺度:Q∈{256,384,512}。
Table11 中对我们的模型与业界最好的结果进行了比较。可以看出来,更深的19层的Net-E比16层的Net-D效果更好,它们俩的组合能够进一步的提升性能。在Caltech-101上,我们的表达与he2014spatial中的方法性能相近,但是它在VOC-2007上的表现明显比我们的模型差得多。在Caltech-256上,我们的特征比业界最好的结果chatfield2014return有了很大的提升(8.6%)。
在VOC-2012上对图像进行分类.我们同样在PASCAL VOC-2012动作分类任务上评估了我们性能最好的图像表达(Net-D和Net-E特征的堆叠),包含了在给定人物动作的边界框时,从单个图像预测动作类。数据集包含4.6K张训练图像,共有11类标签。与VOC-2012目标分类任务相似,性能用mAP 来评估。我们考虑以下两种训练设定:
(i) 在整幅图像上计算卷积网络特征,并忽略提供的边界框;
(ii) 在整幅图像上和在提供的边界框上计算特征,然后将它们堆叠来获得最终的表达。
在Table12 中对我们的方法和其他方法的结果进行了比较。
我们的表达在不使用提供的边界框时,在VOC动作分类任务上达到了业界最好的水平,而同时使用图像和边界框时的结果得到了进一步的提升。不同于其他方法,我们并没有使用任何任务特定的探索法,只是依赖于非常深的卷积特征的表达能力。
其他识别测试.自从我们的模型公开以来,它们被研究机构广泛的使用在图像识别任务中,并一致的优于浅层表达的性能。例如,girshick2014rich通过将krizhevsky2012imagenet中的卷积网络替换成我们的16层模型,达到了目标检测业界最好的结果。在语义分割、图像字幕生成}以及纹理和材料识别都有着类似的结果。
附录C:论文版本修订
在这里,我们列出了主要的论文修订清单,概述了为方便读者而进行的实质性修改。
v1初始版本。 介绍在ILSVRC提交之前进行的实验。
v2使用缩放抖动添加提交后的ILSVRC实验和训练集扩充,从而提高性能。
v3在PASCAL VOC和Caltech图像分类数据集上添加泛化实验(附录B)。 用于这些实验的模型是公开的。
v4该论文转换为ICLR-2015提交格式。 还添加了多个图像剪裁的分类。
v6 ICLR-2015会议的最终定稿论文。 添加网络B与浅层网络的比较以及PASCAL VOC动作分类基准的结果。