0
点赞
收藏
分享

微信扫一扫

走向深度|VGG(一)


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

论文题目:Very Deep Convolutional Networks for Large-Scale Image Recognition

paper是牛津大学发表在ILSVRC 2014上的工作

论文地址:​​链接​​

Abstract

在这项工作中,作者研究了卷积网络深度对其在大规模图像识别设置中的准确性的影响。主要贡献是对深度不断增加的网络进行了全面评估,这表明通过将深度提升到 16-19 个权重层可以实现对现有技术配置的显著改进。这些发现是作者提交2014年ImageNet挑战赛的基础,团队分别在定位和分类赛上获得了第一和第二名。作者的表示在其他数据集上有很好的通用性,在那里它们取得了最先进的结果。作者已经公开了两个性能最佳的 ConvNet 模型,以促进在计算机视觉中使用深度视觉表示的进一步研究。

1 Introduction

随着 ConvNets 在计算机视觉领域越来越火热,进行了许多尝试来改进网络以达到更好的准确性。例如,提交给ILSVRC-2013的表现最好的工作利用了较小的接收窗尺寸和较小的第一卷积层的步长。另一条改进涉及在整个图像和多个尺度上密集地训练和测试网络。 本文讨论了 ConvNet 架构设计的另一个重要方面——深度。为此,固定了架构的其他参数,并通过增加卷积层来稳步增加网络的深度,由于在所有层中使用了非常小的(走向深度|VGG(一)_深度学习)卷积滤波器,这一点是可行的。

因此,作者提出了明显更准确的ConvNet架构,它不仅在ILSVRC分类和定位任务上达到了最先进的准确度,而且也适用于其他图像识别数据集,即使与线性SVM分类器结合使用也能取得优异的性能,而无需进行微调。发布了两款性能最佳的架构以方便进一步研究。

本文的其余部分组织如下。在第2节,描述了本文ConvNet的配置。然后在第3节中介绍了图像分类训练和评估的细节。在第4节中,在ILSVRC分类任务中对这些配置进行了比较。为了完整起见,还在第5节中描述和评估了ILSVRC物体定位系统,并在第6节中讨论了非常深入的特征对其他数据集的通用性。第7节是本文的结论,附录A包含了论文的主要修订内容。

2 ConvNet Configurations

为了在公平的环境下衡量ConvNet深度增加所带来的改进,所有的ConvNet层配置都是采用相同的原则设计的,灵感来自于[2, 13]。在本节中,首先描述了ConvNet配置的通用布局(第2.1节),然后详细介绍了评估中使用的具体配置(第2.2节)。然后在第2.3节中讨论了本文的设计选择并与现有技术进行了比较。

2.1 Architecture

ConvNet的输入是一个固定大小为走向深度|VGG(一)_人工智能_02的RGB图像。作者所做的唯一预处理是从每个像素中减去在训练集上计算的平均 RGB 值。图像通过一堆卷积(conv.)层,使用具有非常小的感受野的过滤器:走向深度|VGG(一)_深度学习(这是捕捉左/右、上/下、中心概念的最小尺寸)。在其中一种配置中,作者还使用了走向深度|VGG(一)_深度学习_04卷积滤波器,这可以看作是输入通道的线性变换(随后是非线性变换)。卷积步长固定为1像素;卷积层输入的空间填充使得卷积后空间分辨率得以保留,即走向深度|VGG(一)_深度学习卷积层的填充为1个像素。空间池化由五个最大池化层执行,这些层级跟随一些卷积层(并非所有的卷积层都跟随最大池化)。最大池化在走向深度|VGG(一)_卷积_06像素窗口上执行,步长为 2。

一堆卷积层(在不同架构中具有不同数量的层)之后是三个全连接(FC)层:前两个每个有 4096 个通道,第三个执行 1000 路分类,因此包含 1000 个通道(每个class一个)。最后一层是soft-max变换层。全连接层的配置在所有网络中都是相同的。

所有的隐藏层都配备了校正非线性的功能。注意,本文的网络(除了一个)都没有包含局部响应归一化(LRN)的归一化:如第4节所示,这种归一化并没有提高ILSVRC数据集的性能,但会导致内存消耗和计算时间的增加。LRN层的参数与[13]的参数相同。

2.2 Configurations

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

表 1:ConvNet 配置(显示在列中)。随着添加更多层(添加的层以粗体显示),配置的深度从左侧 (A) 到右侧 (E) 增加。卷积层参数表示为“conv 走向深度|VGG(一)_卷积_07 receptive field size 走向深度|VGG(一)_权重_08 - 走向深度|VGG(一)_卷积_07 number of channels 走向深度|VGG(一)_权重_08”。为简洁起见,未显示 ReLU 激活函数。

走向深度|VGG(一)_深度学习_11

在表 2 中,报告了每种配置的参数数量。尽管深度很大,但本文网络中的权重数量不大于具有较大卷积层宽度和感受野的较浅网络中的权重数量[20]。

表 2:参数数量(以百万计)。

走向深度|VGG(一)_权重_12

2.3 Discussion

本文的 ConvNet 配置与 ILSVRC-2012 和 ILSVRC-2013 竞赛中表现最好的参赛作品中使用的配置完全不同。不是在第一个卷积层中使用相对较大的感受野(例如,走向深度|VGG(一)_人工智能_13步长为 4 ,或走向深度|VGG(一)_卷积_14步长为 2 ),本网络在整个网络中使用非常小的走向深度|VGG(一)_深度学习感受野,它们与每个像素的输入进行卷积(步长为 1)。很容易看出,两个走向深度|VGG(一)_深度学习的卷积层(中间没有空间池化)的堆栈具有走向深度|VGG(一)_人工智能_17的有效感受野;三个这样的层具有 走向深度|VGG(一)_卷积_14的有效感受野。

那么通过使用三个走向深度|VGG(一)_深度学习卷积层而不是单个走向深度|VGG(一)_卷积_14层的堆栈获得了什么?首先,合并了三个非线性校正层而不是单个,这使得决策函数更具判别性。其次,减少参数的数量:假设三层走向深度|VGG(一)_深度学习卷积堆栈的输入和输出都有走向深度|VGG(一)_计算机视觉_22个通道,堆栈参数化为走向深度|VGG(一)_卷积_23个参数;同时,单个走向深度|VGG(一)_卷积_14的卷积层需要走向深度|VGG(一)_深度学习_25个参数,参数量多出了 81%。这可以看作是对走向深度|VGG(一)_卷积_14卷积滤波器进行正则化,迫使它们通过走向深度|VGG(一)_深度学习滤波器进行分解(在其间注入非线性)。

加入走向深度|VGG(一)_深度学习_04卷积层(配置 走向深度|VGG(一)_计算机视觉_22,表 1)是一种在不影响卷积层感受野的情况下增加决策函数非线性的方法。尽管在本文的例子中,走向深度|VGG(一)_深度学习_04卷积本质上是对相同维度空间的线性投影(输入和输出通道的数量相同),但校正函数引入了额外的非线性。注意,最近在 Lin 等人的“网络中的网络”架构中使用了走向深度|VGG(一)_深度学习_04的卷积层[15]。

Ciresan 等人[2]之前曾使用小尺寸卷积滤波器,但它们的网络深度明显低于本文的网络,并且它们没有在大规模 ILSVRC 数据集上进行评估。 Goodfellow 等人将深度卷积网络(11 个权重层)应用于街道号码识别任务,并表明增加的深度会带来更好的性能。 GoogLeNet[23] 是 ILSVRC-2014 分类任务中表现最好的工作,是独立于本文的工作而开发的,但相似之处在于它基于非常深的 ConvNets(22 个权重层)和小型卷积滤波器(除了走向深度|VGG(一)_深度学习,他们还使用走向深度|VGG(一)_深度学习_04走向深度|VGG(一)_人工智能_17卷积)。然而,它们的网络拓扑结构比本文的更复杂,并且在第一层中更明显地降低了特征图的空间分辨率以减少计算量。如 Sect4.5 所示,我们的模型在单网络分类精度方面优于 Szegedy[23] 等人的模型。

3 Classification Framework

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

3.1 Training

ConvNet 训练过程遵循[13](除了从多尺度训练图像中对输入crops进行采样,如后所述)。即使用带有动量的小批量梯度下降优化多项逻辑回归目标来进行训练。批大小设置为 256,动量设置为 0.9。训练通过权重衰减(走向深度|VGG(一)_权重_35惩罚乘数设置为走向深度|VGG(一)_计算机视觉_36)和前两个全连接层的 dropout 正则化(dropout ratio 设置为 0.5)进行正则化。学习率最初设置为走向深度|VGG(一)_计算机视觉_37,然后在验证集准确性停止提高时降低10倍。总共降低了 3 次学习率,在 370K 次迭代(74 个 epoch)后停止学习。尽管与[13]相比,本文的网络有更多的参数和更大的深度,但由于 (a) 更大的深度和更小的卷积滤波器强加的隐式正则化,网络需要更少的时间来收敛; (b) 某些层的预初始化。

网络权重的初始化很重要,因为不合理的初始化会由于深度网络中梯度的不稳定性而导致学习停滞。为了规避这个问题,从训练配置 A(表 1)开始,它足够浅,可以通过随机初始化进行训练。然后,在训练更深层次的架构时,用网络 A 的层初始化了前四个卷积层和最后三个全连接层(中间层是随机初始化的)。没有降低预初始化层的学习率,允许它们在学习期间发生变化。对于随机初始化(如果适用),从均值为零且方差为走向深度|VGG(一)_计算机视觉_37的正态分布中对权重进行采样。偏差初始化为零。注意,在论文提交后,作者发现使用[19]的随机初始化程序可以在不进行预训练的情况下初始化权重。

为了获得固定大小的走向深度|VGG(一)_人工智能_02ConvNet 输入图像,它们是从重新缩放的训练图像中随机裁剪的(每次SGD迭代时,每张图片有一个裁剪)。为了进一步增加训练集,crops经历了随机水平翻转和随机 RGB 颜色偏移[13]。下面解释训练图像重新缩放。

Training image size.

走向深度|VGG(一)_卷积_40为各向同性重定比例的训练图像的最小边,从该边裁剪出ConvNet输入(也将走向深度|VGG(一)_卷积_40称为训练比例)。虽然裁剪大小固定为走向深度|VGG(一)_深度学习_42,但原则上走向深度|VGG(一)_卷积_40可以取不小于224的任何值:对于走向深度|VGG(一)_计算机视觉_44,裁剪将捕获整个图像的统计数据,完全跨越训练图像的最小边;对于走向深度|VGG(一)_计算机视觉_45,裁剪将对应于图像的一小部分,包含小目标或目标部分。

作者考虑了两种设置训练尺度走向深度|VGG(一)_卷积_40的方法。第一种是固定走向深度|VGG(一)_卷积_40,它对应于单尺度训练(请注意,采样crops内的图像内容仍然可以表示多尺度图像统计)。实验中,评估了在两个固定尺度上训练的模型:走向深度|VGG(一)_计算机视觉_48(已在现有技术中广泛使用)和走向深度|VGG(一)_深度学习_49. 给定一个 ConvNet 配置,首先使用走向深度|VGG(一)_计算机视觉_48训练网络。为了加速走向深度|VGG(一)_深度学习_49网络的训练,它使用走向深度|VGG(一)_计算机视觉_48预训练的权重进行初始化,并且使用了较小的初始学习率走向深度|VGG(一)_人工智能_53

设置走向深度|VGG(一)_卷积_40的第二种方法是多尺度训练,其中每个训练图像通过从某个范围走向深度|VGG(一)_权重_55随机采样走向深度|VGG(一)_卷积_40来单独重新缩放(使用 走向深度|VGG(一)_计算机视觉_57走向深度|VGG(一)_卷积_58)。由于图像中的目标可以具有不同的大小,因此在训练期间考虑到这一点是有益的。这也可以看作是通过尺度抖动来增加训练集,其中训练单个模型以识别各种尺度上的对象。出于速度原因,通过微调具有相同配置的单尺度模型的所有层来训练多尺度模型,预训练的固定走向深度|VGG(一)_深度学习_49

3.2 Testing

在测试时,给定一个训练好的 ConvNet 和一个输入图像,它按以下方式分类。首先,它被各向同性地重新缩放到预定义的最小图像侧,表示为走向深度|VGG(一)_权重_60(也将其称为测试尺度)。注意到走向深度|VGG(一)_权重_60不一定等于训练规模走向深度|VGG(一)_卷积_40。然后,网络以类似于[20]的方式密集应用在重新缩放的测试图像上。首先将全连接层转换为卷积层(第一个 FC 层为走向深度|VGG(一)_卷积_14的卷积层,最后两个 FC 层为走向深度|VGG(一)_深度学习_04的卷积层)。然后将得到的全卷积网络应用于整个(未裁剪)图像。结果是一个类分数图,其通道数等于类数,并且空间分辨率可变,取决于输入图像的大小。最后,为了获得图像类别分数的固定大小向量,对类别分数图进行空间平均(总和池化)。还通过图像的水平翻转来增加测试集;对原始图像和翻转图像的soft-max类后验进行平均以获得图像的最终分数。

全卷积网络应用于整个图像,因此无需在测试时对多个crops进行采样,由于它需要对每个作物进行网络重新计算,效率较低。同时,如[23]所做的那样,使用大量crops可以提高准确性,与全卷积网络相比,它可以对输入图像进行更精细的采样。此外,由于不同的卷积边界条件,多作物评估与密集评估是互补的:当将 ConvNet 应用于crops时,卷积特征图用零填充,而在密集评估的情况下,相同crops的填充自然会出现从图像的相邻部分(由于卷积和空间池化),这大大增加了整个网络的感受野,因此捕获了更多的上下文。虽然作者认为在实践中,增加多个crops的计算时间并不能证明潜在的准确性提高是合理的,但作为参考,作者还使用每个尺度 50 个crops(走向深度|VGG(一)_人工智能_17规则网格和 2 个翻转)评估本文的网络,总共 150 个crops超过 3 个尺度,与[23]使用的 4 个尺度的 144 种crops相当。

3.3 Implementation Details

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

虽然最近提出了更复杂的加速ConvNet训练的方法[12],这些方法采用了网络不同层的模型和数据并行,但与使用单个GPU相比,本文简单的方案已经在一个现成的4GPU系统上提供了3.75倍的速度。在配备有四颗英伟达Titan Black GPU的系统上,训练一个网络需要2-3周的时间,具体时间取决于架构。

参考文献

[2] D. C. Ciresan, U. Meier, and J. Schmidhuber. Multi-column deep neural networks for image classification. In Proc. CVPR, pages 3642–3649, 2012.

[12] A. Krizhevsky. One weird trick for parallelizing convolutional neural networks. CoRR, abs/1404.5997, 2014.

[13] A. Krizhevsky, I. Sutskever, and G. E. Hinton. ImageNet classification with deep convolutional neural networks. In NIPS, pages 1106–1114, 2012.

[15] M. Lin, Q. Chen, and S. Yan. Network in network. In Proc. ICLR, 2014.

[19] A. M. Saxe, J. L. McClelland, and S. Ganguli. Exact solutions to the nonlinear dynamics of learning in deep linear neural networks. In Proc. ICLR, 2014.

[20] P. Sermanet, D. Eigen, X. Zhang, M. Mathieu, R. Fergus, and Y. LeCun. OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks. In Proc. ICLR, 2014.

[23] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich. Going deeper with convolutions. CoRR, abs/1409.4842, 2014.


举报

相关推荐

0 条评论