VGG论文解读

论文地址链接

https://arxiv.org/abs/1409.1556


Abstract

在这项工作中,我们研究了卷积网络深度对其准确性的影响,在大规模图像识别设置。我们的主要贡献是使用带有非常小的(3×3)卷积滤波器的架构对深度不断增加的网络进行全面评估,这表明,通过将深度推进到16-19个权重层,可以实现对现有技术配置的显著改进。这些发现是我们提交的ImageNet 2014挑战赛的基础,我们的团队分别获得定位成绩的第一名和分类的第二名。我们还表明,我们的模型可以很好地泛化到其他数据集,在这些数据集上,它们获得了最先进的结果。我们公开了两个性能最好的ConvNet模型,以促进计算机视觉中深度视觉表征的进一步研究。

1. Introduction

卷积网络(ConvNets)近年来在大规模图像图像处理和视频识别领域取得了巨大的成功,由于大型公共图像库,如ImageNet和高性能计算系统,如gpu或大规模分布式集群,让这些已经成为可能。尤其,imagenetlarge -scale visualrecognition Challenge (ILSVRC) (Russakovsky et al., 2014)在深度视觉识别架构的发展中发挥了重要作用,该挑战已经作为几代大规模图像分类系统的测试平台,从高维浅特征编码(Perronnin et al., 2010) (ILSVRC-2011的获胜者)到深度卷积网络(Krizhevsky et al.,2012) (ILSVRC-2012优胜者)。

随着卷积神经网络在计算机视觉领域越来越商品化,为了达到更好的精度,人们做了许多尝试来改进 Alexnet 的原始架构。例如,提交给ILSVRC的最佳作品2013年(Zeiler & Fergus, 2013;Sermanet et al., 2014)利用较小的接收窗口大小和较小的第一卷积层步幅。另一种改进是在整个图像和多个尺度上密集地训练和测试网络。在本文中,我们讨论了ConvNet体系结构设计的另一个重要方面-深度。为此,我们固定了体系结构的其他参数,通过增加更多的卷积层来稳步增加网络的深度,这种方法是可行的,因为在所有层中都使用了非常小(3 × 3)的卷积滤波器。

因此,我们提出了明显更精确的ConvNet架构,它不仅实现了ILSVRC分类和定位任务的最先进的精度,而且也适用于其他图像识别数据集,即使是作为一个相对简单的管道的一部分(例如,未经微调由线性支持向量机分类的深度特征),它们也能实现出色的性能。我们已经发布了两种性能最好的模型,以促进进一步的研究。

2. Convnet Configuration

2.1 Architecture

在训练过程中,我们的ConvNets的输入是一个固定大小的224 × 224 RGB图像。我们所做的唯一预处理是从每个像素减去在训练集上计算的平均RGB值。图像通过一堆卷积层,其中我们使用了一个非常小的感受野的过滤器:3 × 3(这是捕捉左/右、上/下、中心概念的最小尺寸)。在其中一种配置中,我们还使用了1 × 1卷积滤波器,这可以看作是输入通道的线性变换(随后是非线性)。卷积步幅固定为1个像素;卷积层输入的空间填充是为了保持卷积后的空间分辨率,即对于3 × 3个卷积层填充1个像素。空间池化是由五个max-pooling layers执行的,它们遵循一些卷积层(不是所有的卷积层都遵循最大池化层)。最大池化是在一个2 × 2像素的窗口上执行的,步长为2。

卷积层的堆叠(在不同的架构中有不同的深度)后面是三个完全连接(FC)层:前两个有4096个通道,第三个执行1000路ILSVRC分类,因此包含1000个通道(每个类一个)。最后一个图层是soft-max图层。在所有网络中,完全连接的层的配置是相同的。

所有隐藏层都具有激活函数(ReLU )非线性。我们注意到,我们的网络(除了一个)都不包含局部响应归一化(LRN),这种归一化不会提高ILSVRC数据集的性能,但会增加内存消耗和计算时间。

2.2 Configuration

本文评估的ConvNet配置概述在表1中,每列一个。下面我们将用它们的名字(A-E)来指代网队。所有配置均遵循2.1节给出的通用设计,仅在深度上有所不同:从网络A中的11个权重层(8 con . 3 FC层)到网络E的19个权重层(16 con . 3 FC层)。卷积层的宽度(通道的数量)相当小,从第一层的64开始,在每个max-pooling层之后增加2倍,直到达到512。
在这里插入图片描述
在表2中,我们报告了每种配置的参数数量。尽管我们的网有很大的深度,但网中权重的数量并不大于具有较大的卷积层宽度和接收域的较浅网中的权重数量(144M权重(Sermanet et al., 2014))。

2.3 discussion

我们的ConvNet配置与ILSVRC-2012 (Krizhevsky et al., 2012)和ILSVRC-2013竞赛(Zeiler & Fergus,2013;Sermanet等,2014)是不同的,不同点事在第一个对话中使用相对较大的感受野(例如11×11 with stride 4 in (Krizhevsky et al., 2012),或7×7与stride 2 in (Zeiler & Fergus,2013;Sermanet et et al., 2014)),我们在整个网络中使用非常小的3 × 3感受野,这些感受野与每个像素的输入卷积(stride 1)。很容易看出两个3×3 卷积(没有空间池之间)相当于一个5×5卷积感受野的效果,三个3×3卷积相当于一个7×7卷积感受野的效果。 那么,通过使用三个3×3 conv.layers而不是单一的7×7层,我们得到了什么呢?首先,我们采用了三个非线性校正层来代替单一的激活层,使决策函数具有更强的判别性。其次,我们减少参数的数量:假设一个3 × 3层卷积堆栈的输入和输出都有C个通道,那么该堆栈的参数为 3 ( 3 2 C 2 ) = 27 C 2 3(3^2C^2)=27C^2 3(32C2)=27C2个权重;同时,单个7 × 7 conv.层需要 7 2 C 2 = 49 C 2 7^2C^2=49C^2 72C2=49C2参数个数,即:多出81%。这可以看作是对7 × 7 滤波器施加正则化,迫使它们通过3 × 3 滤波器进行分解(其间注入非线性)。

合并1 × 1的卷积层(配置C,表1)是一种增加决策函数的非线性而不影响卷积层感受野的方法。即使在我们的例子中1×1卷积本质上是在相同维度的空间上的一个线性投影(输入和输出通道的数目是相同的),一个额外的非线性是由激活函数引入的。值得注意的是,1×1 conv. layers最近被Lin等人(2014)的“Network in Network”架构所使用。
Ciresan等人(2011)曾使用过小型卷积滤波器,但他们的网络深度明显小于我们的,并且他们没有在大规模ILSVRC数据集上进行评估。Goodfellow等人(2014)将深度卷积网络(11个权重层)应用到街道号码识别任务中,并表明深度的增加会带来更好的性能。

GooLeNet(Szegedy等,2014),ILSVRC-2014分类任务的表现最好的项目,是独立于我们工作之外的开发的,但是类似的是它是基于非常深的ConvNets(22个权重层)和小卷积滤波器(除了3×3,它们也使用了1×1和5×5卷积)。然而,它们的网络拓扑结构比我们的更复杂,并且在第一层中特征图的空间分辨率被更积极地减少,以减少计算量。正如将在第4.5节显示的那样,我们的模型在单网络分类精度方面胜过Szegedy等人(2014)。

3. Classfication framework

3.1 Training

ConvNet训练程序一般遵循Krizhevsky等人(2012)(除了从多尺度训练图像中采样输入,后面会解释)。即通过使用小批量梯度下降法优化多项逻辑回归目标来进行训练(基于反向传播(LeCun等人,1989))的动量。批大小设置为256,动量设置为0.9。训练是通过体重衰减(l2惩罚乘数设置为 5 ∗ 1 0 − 4 5*10^{-4} 5104和正则化丢弃前两个完全连接的层(dropout=0.5)。学习速率最初设置为 1 0 − 2 10^{-2} 102,然后当验证集的准确性停止提高时,学习率降低了10倍。总的来说,学习速率降低了3倍,学习在370K迭代(74个epoch)后停止。我们推测,尽管与我们的网相比,我们有更多的参数和更大的深度(Krizhevsky等人,2012),网络需要更少的时间来收敛,由于(a)由更大的深度和更小的卷积滤波器尺寸引起的隐式正则化,(b)某些层的预初始化。

网络权值的初始化是重要的,因为不好的初始化会由于深度网络中梯度的不稳定性而导致学习停滞。为了避免这个问题,我们首先训练配置A(表1),它足够浅,可以用随机初始化进行训练。然后,当训练更深层的架构时,我们初始化了前四个卷积层,最后三个完全连接的层与网络A层(中间层是随机初始化的)。我们没有降低预初始化层的学习速率,允许它们在学习过程中改变。对于随机初始化(在适用的情况下),我们从均值为零、方差为 1 0 − 2 10^{-2} 102的正态分布中采样权重,偏置被初始化为零。值得注意的是,在论文提交后,我们发现可以通过使用gloot & Bengio(2010)的随机初始化程序来初始化权重,而无需进行预先训练。

为了获得固定大小的224×224 ConvNet输入图像,它们从归一化的训练图像中被随机裁剪(每个图像每次SGD迭代进行一次裁剪)。为了进一步增强训练集,裁剪图像经过了随机水平翻转和随机RGB颜色偏移(Krizhevsky等,2012)。下面解释训练图像归一化。

**训练图像大小。**令S是等轴归一化的训练图像的最小边,ConvNet输入从S中裁剪(我们也将S称为训练尺度)。虽然裁剪尺寸固定为224×224,但原则上S可以是不小于224的任何值:对于,裁剪图像将捕获整个图像的统计数据,完全扩展训练图像的最小边;对于,裁剪图像将对应于图像的一小部分,包含小对象或对象的一部分。

我们考虑两种方法来设置训练尺度S。第一种是修正对应单尺度训练的S(注意,采样裁剪图像中的图像内容仍然可以表示多尺度图像统计)。在我们的实验中,我们评估了以两个固定尺度训练的模型:(已经在现有技术中广泛使用(Krizhevsky等人,2012;Zeiler&Fergus,2013;Sermanet等,2014))和。给定ConvNet配置,我们首先使用来训练网络。为了加速网络的训练,用预训练的权重来进行初始化,我们使用较小的初始学习率。

设置S的第二种方法是多尺度训练,其中每个训练图像通过从一定范围(我们使用和)随机采样S来单独进行归一化。由于图像中的目标可能具有不同的大小,因此在训练期间考虑到这一点是有益的。这也可以看作是通过尺度抖动进行训练集增强,其中单个模型被训练在一定尺度范围内识别对象。为了速度的原因,我们通过对具有相同配置的单尺度模型的所有层进行微调,训练了多尺度模型,并用固定的进行预训练。

3.2 Testing

在测试时,给定一个训练好的卷积神经网络和输入图像,按照以下方法对卷积神经网络进行分类。首先,对其进行各向同性缩放,将其缩放到预先定义的最小图像边,记作Q(我们也称其为测试尺度)。我们注意到Q不一定等于训练尺度S(我们将在第4节中说明,对每个S使用几个Q值可以提高性能)。然后,该网络以类似于(Sermanet et al., 2014)的方式密集地应用于归一化的测试图像上。即,先将全连接层转换为卷积层(第一层FC为7 × 7 conv.层,后两层FC为1 × 1 conv.层)。然后将得到的全卷积网络应用于整个(未裁剪)图像。其结果是一个类分数映射,通道的数量等于类别的数量,以及取决于输入图像大小的可变空间分辨率。最后,为了获得图像的类别分数的固定大小的向量,类得分图在空间上平均(和池化)。我们还通过水平翻转图像来增强测试集;将原始图像和翻转图像的soft-max类后验进行平均,以获得图像的最终分数。

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

3.3 Implementation Details

我们的实现来自于公开可用的c++ Caffe工具箱(Jia, 2013)(在2013年12月分支出来),但是包含了许多重要的修改,允许我们对安装在单个系统中的多个图形进行训练和评估,以及在多个尺度上对全尺寸(未裁剪)图像进行训练和评估(如上所述)。多GPU训练利用数据并行性,将每批训练图像分割成若干个GPU批,在每个GPU上并行处理。计算GPU批处理梯度后,将其平均以获得完整批次的梯度。梯度计算是同步的,在GPU上训练,结果和在单个GPU上训练完全一样。

最近提出了更加复杂的加速ConvNet训练的方法(Krizhevsky,2014),它们对网络的不同层之间采用模型和数据并行,我们发现我们概念上更简单的方案与使用单个GPU相比,在现有的4-GPU系统上已经提供了3.75倍的加速。在配备四个NVIDIA Titan Black GPU的系统上,根据架构训练单个网络需要2-3周时间。

4. Classfication Experiments

**数据集:**在本节中,我们将介绍所描述的图像分类结果
ILSVRC-2012数据集上的ConvNet架构(用于ILSVRC 2012-2014chal - lenges)。该数据集包含1000个类的图像,并被分为三组:训练(1.3万幅图像)、验证(50K幅图像)和测试(100K留有类标签的图像)。分类性能采用两种方法进行性能评估:top-1和top-5错误率。前者是多类分类误差,即不正确分类图像的比例;后者是ILSVRC中使用的主要评估标准,并且计算为图像真实类别在前5个预测类别之外的图像比例。

对于大多数实验,我们使用验证集作为测试集。在测试集上也进行了一些实验,并将其作为ILSVRC-2014竞赛(Russakovsky等,2014)“VGG”小组的输入提交到了官方的ILSVRC服务器。

4.1 single scale evaluation

我们首先用2.2节中描述的层配置在单个尺度上评估单个ConvNet模型的性能。测试图像大小设置如下:当S是固定的大小时,Q = S;当 S ∈ [ S m i n , S m a x ] , Q = 0.5 ( S m i n + S m a x ) S∈[S_{min},S_{max}],Q = 0.5(S_{min} + S_{max}) S[Smin,Smax],Q=0.5(Smin+Smax)。结果如表3所示:在这里插入图片描述
首先,我们注意到使用局部响应归一化(A- LRN网络)并不能改善没有任何归一化层的模型A。因此,我们在更深层次的架构中不使用归一化(B-E)。
其次,我们观察到随着卷积网络深度的增加,分类误差减小A为11层,E为19层。注意的是,虽然深度相同,但配置C(包含3个1 × 1的conv. layers)的性能不如配置D(使用3 × 3的conv. layers)整个网络的层。这表明,虽然额外的非线性确实对网络有所有帮助(C比B好),但通过使用具有非平凡感受野的conv. filters (D比C好)捕捉空间上下文也很重要。当深度达到19层时,我们网络的错误率饱和,但更深入的模型可能对更大的数据集有益。这表明,虽然额外的非线性确实有帮助(C比B好),但通过使用具有非简单接收字段的conv. filters (D比C好)捕捉空间上下文也很重要。当深度达到19层时,我们架构的错误率饱和,但更深入的模型可能对更大的数据集有益。
最后,训练时的尺度抖动得到了与固定最小边(或)的图像训练相比更好的结果,即使在测试时使用单尺度。这证实了通过尺度抖动进行的训练集增强确实有助于捕获多尺度图像统计。

4.2 Multi-Scale Evaluation

当Q不是固定值时,即为multi-scale evaluation。它包括在一张测试图像的几个重缩放版本上运行模型,然后对所得到的类别后验进行平均。
考虑到训练和测试之间图像尺寸的巨大差异会导致性能下降,所以用固定S训练出的模型将会在三个测试图像尺寸上进行评估,这三个尺寸接近于训练时使用的尺寸S:Q = {S − 32, S, S + 32}。而用不固定S训练出的模型允许网络在测试时应用于更广的尺寸范围,所以用尺度抖动训练出的模型将在更大的尺寸范围Q = {256, 384, 512} 上进行评估。下图给出的结果表明,测试时的尺度抖动带来了更高的准确率 (表4比表3)。如前所述,最深的结构D和E效果最佳。
在这里插入图片描述

4.3 Multi-crops Evaluation

在表5中,我们将稠密ConvNet评估与多裁剪图像评估进行比较(细节参见第3.2节)。我们还通过平均其soft-max输出来评估两种评估技术的互补性。可以看出,使用多裁剪图像表现比密集评估略好,而且这两种方法确实是互补的,因为它们的组合优于其中的每一种。如上所述,我们假设这是由于卷积边界条件的不同处理.
在这里插入图片描述

4.4 ConvNet fusion

到目前为止,我们对单个卷积网络模型的性能进行了评估。在这一部分的实验中,我们通过对soft-max类别后验进行平均,结合了几种模型的输出。由于模型的互补性,这提高了性能,并在2012年(Krizhevsky等人,2012年)和2013年(Zeiler & Fergus, 2013年;Sermanet et al .,2014)。
结果如表6。在ILSVRC提交的时候,我们只训练了单规模网络,以及一个多尺度模型D(仅在全连接层进行微调而不是所有层)。由此产生的7个网络组合具有7.3%的ILSVRC测试误差。在提交之后,我们考虑了只有两个表现最好的多尺度模型(配置D和E)的组合,它使用密集评估将测试误差降低到7.0%,使用密集评估和多裁剪图像评估将测试误差降低到6.8%。作为参考,我们表现最佳的单模型达到7.1%的误差(模型E,表5)。
在这里插入图片描述

4.5 Comparsion with the strate of the art

最后,我们在表7中与最新技术比较我们的结果。在ILSVRC-2014挑战的分类任务(Russakovsky等,2014)中,我们的“VGG”团队获得了第二名,
使用7个模型的组合取得了7.3%测试误差。提交后,我们使用2个模型的组合将错误率降低到6.8%。
在这里插入图片描述
从表7可以看出,我们的very deep ConvNets明显优于上一代模型,在ILSVRC-2012和ILSVRC-2013比赛中取得了良好的成绩。我们的结果也与分类任务获胜者(GoogleNet与误差为6.7%),大大超过了ILSVRC-2013获奖作品Clarifai,后者在有外部训练数据的情况下获得了11.2%的成绩,在没有外部训练数据的情况下获得了11.7%的成绩。注意到,考虑到我们最好的结果是通过结合两个模型实现的—明显少于大多数模型使用的ILSVRC提交。在单模型网络性能方面,我们的架构获得了最好的结果(7.0%的测试误差),比单个GoogleNet的性能高出0.9%。还有,我们并没有脱离LeCun等人(1989)的经典ConvNet架构,而是通过大幅增加深度来改进它。

5. Conclusion

在这项工作中,我们评估了非常深的卷积网络(最多19个权重层)用于大规模图像分类。已经证明,表示深度有利于分类精度,并且深度大大增加的传统ConvNet架构(LeCun等,1989;Krizhevsky等,2012)可以实现ImageNet挑战数据集上的最佳性能。在附录中,我们还显示了我们的模型很好地泛化到各种各样的任务和数据集上,可以匹敌或超越更复杂的识别流程,其构建围绕不深的图像表示。我们的结果再次证实了深度在视觉表示中的重要性。


参考博客

1. https://blog.csdn.net/abc_138/article/details/80568450

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值