深度学习论文翻译 -- Very Deep Convolutional Networks for Large-Scale Image Recognition

本文翻译论文为深度学习经典模型之一:VGG

论文链接https://arxiv.org/abs/1409.1556

摘要:在本文工作中,我们主要研究卷积网络的深度(Depth)对于大规模图像识别任务的准确度影响。主要的贡献在于对不同深度的网络作了详细、全面的评估。在现有技术前提下,使用非常小的卷积核(3x3Conv),以及将网络深度增加到16-19层,能够得到明显的效果提升。上述研究结果,使得我们团队在ImageNet Chanllenge2014的定位和分类任务中分别获得第一名和第二名。在其它数据集上,我们的网络结构也能取得很好的结果。为了推动视觉领域的进一步研究,我们公开了表现最好的两个模型。

1、Introduction

最近几年,大规模公共数据集(ImageNet)的公布和高性能计算机系统(GPUs或者分布式集群)的发展,使得卷积网络在大规模图像和视频识别领域取得巨大成功。

随着卷积网络在视觉领域的优异表现,很多学者对AlexNet网络作了更进一步的优化,取得更高的分类准确率。比如,ILSVRC-2013(Zeiler & Fergus 2013, Sermanet et al 2014) 采用更小的卷积窗口以及在第一层卷积使用更小的滑动。Sermanet et al 2014 Howard 2014 的改进方向是对整张图像进行密集训练和测试,并且使用多种尺度本文中,我们从网络的深度方面进行研究。为此,我们固定网络的其它参数,并逐渐增加网络的深度,在使用更小卷积核的情况下,网络达到很好的效果。

论文组织如下,Sect.2 表述了卷积网络的结构,Sect.3 详细表述了训练和评测过程,Sect.4 表述了与其它分类模型的对比设置。Sect.5对本文进行总结。

2、ConvNet Configurations

为了评测网络的改善是受卷积网络的深度影响,网络所有的卷积层都使用同样的设置准则(inspired by Ciresan2011, Kirzhevsky 2012)。这一部分,我们首先介绍网络的基本结构(Sect.2.1),然后详细指出测试过程中特定的设置(Sect.2.2),我们会在(Sect.2.3)讨论具体设计的选择,以及与其它网络的比较。

2.1、Architecture

在训练过程中,卷积网络的输入大小固定为 224 x 224的RGB图片。唯一的预处理是每一个像素分别减去RGB三通道的均值,该均值是在整个训练集上计算得到。图片输入到堆叠的卷积层中,滤波器感知域大小:3 x 3(which is the smallest size to capture the notion of left/right, up/down, center)。在其中一种网络配置中,我们使用了 1 x 1Conv,可以看作是对输入的通道维度(input channels)进行线性变换(后面会有非线性层,ReLU)。卷积核的滑动距离固定为 1 个像素;对卷积层的输入进行空间填充(spatial padding)的标准是保证卷积后特征图空间分辨率保持不变,例如 3x3 卷积层需要填充 1 个像素。整个网络使用了 5 层最大池化层(max-pooling layers),仅仅在某些卷积块后添加池化层。最大值采样层的大小为 2 x 2,滑动距离为 2 个像素。

堆叠的卷积层后面跟随三层全连接层(Fully-Connected,FC):前两层全连接层具有4096个通道,由于ILSVRC是1000分类,第三层包含1000个通道(每一个通道表示一类)。最后一层是soft-max 层,所有网络结构的全连接层是一样的。

所有的隐藏层都有非线性修正单元(ReLU),除了A-LRN网络,其它网络都没有使用局部响应归一化(Local Response Normalisation, LRN, AlexNet),Sect.4 表明LRN并不会提升网络效果,但是会导致内存消耗和计算代价

2.2、Configurations

本文的所有卷积网络的配置信息如Table1所示,每一列表示一种网络结构。接下来我们会用字母A-E表示这些网络结构。所有的网络结构基本配置信息如Sect.2.1所述,不同在于它们的深度:从11层(8层卷积和三层全连接)到19层(16层卷积和三层全连接层)。卷积层的宽度(the number of channels)非常小,从第一层的64个通道,然后每一次最大值采样后,通道数目乘以2,最终达到512通道。

如下图的Table2,给出了每一种网络结构的参数量。网络深度和宽度的增加并没有比拥有更大卷积宽度和感知域的浅层网络的参数多(144M权重 Sermanet et al, 2014),参数主要集中在全连接层。

 

2.3 、Discussion

我们的卷积网络与ILSVRC-2012(Krizhevskv et al, 2012)和ILSVRC-2013(Zeiler & Fergus, 2013; Sermanet et al. 2014)有明显的不同。Krizhevsky et al, 2012 在网络第一层使用相对非常大的感知域(11x11, 滑动距离为4个像素),或者  Zeiler  & Fergus, 2013 Sermanet et al, 2014 使用7x7卷积核,滑动2个像素的距离,然而,本文在整个网络中使用 3 x 3 的卷积核,滑动距离为1个像素。很容易可以发现,两个叠加在一起的3x3卷积层(中间没有降采样层)和一个5x5的卷积核的感知域是一样的;三个3x3的卷积核相当于一个7x7的卷积核的感知域。

Figure1

解释一下为什么2个3x3的卷积感受野等效于1个5x5的感受野?

如上图Figure1中,浅蓝色区域 = 5 x 5,当我们用一个 5 x 5 的卷积核操作,得到输出蓝色1x1

红色区域可以看作是 3x3 卷积核作用于黄色(3x3方格区域)区域的输出,而黄色的3x3的输出,需是3x3的卷积核在5x5的浅蓝色区域的9个3x3区域得到(也即是卷积核大小3x3,滑动为1个像素);因此可以得到结论,两个3x3的卷积核的感受野相当于1个5x5卷积核的感受野;

使用堆叠的3个3x3卷积层代替1个7x7卷积层,有什么优势?首先,引入三个非线性层,使得决策函数具有更强的判别性;其次,降低了参数数量:假设输入和输出的通道数是一样的,记为C,卷积核为3x3,总共的参数为3*[3*3*C(输入通道)]*C(输出通道)=27C^2,此时1个7x7的卷积核对应参数为:49C^{2}文章陈述:可以看作是在7x7的卷积核上施加了正则化,强行使用了3x3滤波器进行分解(并且添加非线性层ReLU)。

Table1中结果表明,在不影响卷积层感知域的情况下,C网络结构引入1x1卷积层是一种提升非线性的方式。尽管我们使用的1x1卷积本质上是同纬度的线性映射,但是激活函数(rectification function)引入非线性映射。而且,Lin et al. 2014 提出的网络结构 "Network in Network", 其中广泛使用了1x1卷积。

3、Classification Framework

前面的部分,我们介绍了网络的具体结构信息。接下来,我们详细描述分类网络的训练和评测细节。

3.1、Training

我们的网络训练流程和 Krizhevsky et al 2012 的基本一致(except for sampling the input crops from multi-scale training images)。本文使用带有动量(momentum)的批量梯度下降方法优化具有多项的逻辑斯蒂回归函数,Batch Size = 256,momentum = 0.9,训练添加了权重衰减(weight decay),L2 = \small 5\cdot 10^{-4},dropout 只在全连接的前两层添加,值为0.5,初始学习率0.01,当验证集准确度不在降低的时候,每次除以10。整个训练过程中,学习率衰减了三次,神经网络总共训练了370k(74 epochs)。我们猜想,与AlexNet相比,尽管我们的网络参数量大、网络更深,但是网络收敛速度更快,主要原因:(a)更深的网络和更小的卷积核(implicit regularisation, 隐含的正则化);(b)特定层的预初始化。

网络权重的初始化很重要,不合理的初始化会使得深度网络梯度不稳定。为了解决这个问题,我们先训练A网络,由于网络层数少,可以采用随机初始化。因此,我们使用A网络的权重初始化其它深层网络的前四层和三层全连接层(中间层使用随机初始化)。对于预初始化层,我们没有降低学习率,而是让其在训练的过程中自己调整学习率。对于随机初始化的部分,采用零均值,方差为0.01的正态分布进行初始化,偏置全为0。后面实验发现,采用用Glorot & Bengio 2010的随机初始化方法,可以不需要使用预训练权重。

为了获得固定大小为224x224的输入图片,随机对训练集进行裁剪(one crop per image per SGD iteration)。为了进一步扩充训练集,对裁剪图进行随机水平翻转和随机RGB颜色偏移(AlexNet)。下面会解释训练图片的重缩放。

Training Image Size: 令 是一张训练图片的最短边,然后对图片进行裁剪(我们也称S为训练尺度)。裁剪尺寸固定大小为224x224,S的值必须大于等于224:当S=224,裁剪图会抓取整张图片,并且完整覆盖图片的最短边;当S 》224,裁剪图只是训练图片的很小一部分,包含小目标或者目标的一部分。

Train Scale. 本文考虑两种方法设置训练尺度S。第一种方法是固定训练尺度 S,也即是单尺度训练(note that image content within the sampled crops can still represent multi-scale image statistics)。实验中,使用两种固定尺度评价模型:S=256(被广泛使用)和S=384。给定一个卷积网络,我们首先用S=256进行训练。为了加速训练,S=384的网络用S=256的权重进行初始化,并且使用更小的学习率0.001。

第二种方法设定 是多尺度训练,随机采样S,每一张训练图片单独进行缩放,的采样范围\small [S_{min}=256, S_{max}=512]。由于目标在图片中的尺寸不一样,考虑这种方式是有益的。这种操作可以看作是通过尺度抖动来增强训练集,那么一个模型训练可以覆盖大范围尺度。为了速度的原因,我们是在单尺度模型(S=384)的基础上进行微调(fine-tuning)。

3.2、Testing

测试时,给定训练的网络和一张输入图片,分类测试的方式如下:首先,将输入图片按照图片的最小边缩放到一个指定的尺度(需要保证图片的宽高比例,防止变形,isotropically rescaled), 定为 Q(称之为测试尺度)。需要指出,的值不一定和训练尺度 相等(Sect.4测试表明,针对每一个S值,使用多个Q值进行测试,效果会更好);其次,网络测试会参考Sermanet et al. 2014,将全连接层转化为卷积层(第一层全连接层转化为7x7的卷积层,最后两层转化为1x1的卷积层)。转换后的全卷积网络可以应用整张图进行测试,无需特定裁剪(uncropped)。网络的最终输出是分类分数图(class score map),其通道数等于分类数,而最终分数图的分辨率取决于输入图片的分辨率。 最终,获得了输入图像的固定大小的分类分数的向量,类分数图是通过空间平均得到(sum-pooled)。我们会对测试集进行水平翻转,原图和翻转图的预测分数最终的平均值是该图的最终分数。

由于全卷积网络可以应用于整张图像,测试的时候可以不需要进行多次裁剪,节省了计算时间消耗。与此同时,与全卷积网络相比,对输入图片进行较好的裁剪采样,那么大量的裁剪数据集进行测试,会产生更高的精度。当然,多种裁剪图的评价方法可以作为密集评价方法的补充。由于不同的卷积边界条件:当对裁剪图进行卷积网络测试时,卷积操作需要对图片边界进行零填充,而在密集评价的情况下,对于同样的裁剪图,它的填充来自于图片的内容区域(due to both convolutions and spatial pooling), 这样就潜在的提高了整个网络的感知域,那么就会获得更多信息,解释:如下图 Figure.2 所示,黄色和绿色区域是随机裁剪图,大小为224 x 224,蓝色大小为256 x N(最小边为256,长边大小不固定),那么在全连接网络的情况下,裁剪图需要进行边界零填充,而全卷积网络,对于同样的裁剪区域,填充的是周围图像的信息,相比之下,密集预测获得了更大的感受野,获取了更多信息。我们相信,实际情况下,更多的裁剪图只会增加计算消耗,对准确率提升有限,因此我们每个尺度下只裁剪了50张图(5 x 5方格,2次翻转),3个尺度下进行150次裁剪。

Figure 2

3.3、Implementation Details

我们的训练框架是C++ caffe,为了在单个系统下使用多个GPU以及多个尺度下的全图训练和测试,我们对框架作了很多重要修改。多GPU需要进行数据的并行操作,将一个batch数据平均分配到多个GPU。当所有GPU完成梯度计算,求得整个批次的梯度值。

4、Classification Experiments

Dataset. 这一部分主要介绍不同网络在ILSVRC-2012数据集的测试结果。该数据集包含1000类,划分为三个数据集:训练集(1.3M),验证集(50K images),和测试集(100K images with held-out class labels)。分类的评价标准采用两种方式:top-1和top-5 误差,前者是多类分类误差,表示不正确分类图片的比例;后者是主要使用的标准,表示真实分类在5个预测结果之外的图像比例。对于大部分实验,我们用验证集代替测试集,特定的测试仍需要使用测试集。

4.1、Single Scale Evaluation

我们开始在单尺度下评价模型,测试图片大小设置如下:Q=S(fixed S), 和 Q=0.5(\small S_{min} + S_{max}), \small S\in [S_{min}, S_{max}],结果如Table3所示。

首先,我们测试了A-LRN网络,相比于A网络,效果没有提升。因此后面深层网络(B-E)没有采用LRN。

其次,随着网络深度增加,从11层的A网络到19层的E网络,分类误差逐渐降低。当然,除了深度的增加,包含1x1卷积的C网络表现比D网络差(整个网络使用3x3卷积)。这表明,额外的非线性是有帮助的(C优于B),更大的感知域对于抓取空间信息同样很重要(D优于C)。当网络达到19层后,错误率处于停滞状态,或许更大的数据集才会需要更深的网络。当把B网络中的2个3x3的卷积换成1个5x5的卷积层(它们有着同样的感知域),称之为浅层网络。top-1误差比B网络高出7%,表明拥有小卷积核的深层网络优于具有大卷积核的浅层网络。

最后,训练的时候,随机选择S(\small S\in[256;512])的效果明显优于具有固定最短边(S=256, S=384)的训练集,即使测试时使用单尺度。表明通过随机尺度的数据增强确实更容易获取多尺度图片统计信息。

4.2、Multi-Scale Evaluation

当评测完单尺度网络后,可以得出尺度抖动对于测试的影响。模型需要运行不同尺度的测试集(不同的Q),最终的结果需要计算平均值。假设训练和测试的尺度有较大的差距,那么会使得测试效果降低,使用固定S训练的模型,并在三种尺度上测试图片(Q={S-32, S, S+32})。与此同时,训练时候的尺度抖动,允许测试时覆盖更大范围的尺度,因此模型训练尺度范围如下\small S\in[S_{min};S_{max}],那么评测尺度\small Q={S_{min},0.5(S_{min}+S_{max}),S_{max}}

测试结果Table4,表明尺度抖动的测试效果更优(可以对比单尺度下的模型,Table3)。与前面测试一样,更深的网络D和E表现最好,以及尺度抖动比固定尺度效果好。

4.3、Multi-Crop Evaluation

Table 5 比较密集网络(dense ConvNet)和多种裁剪网络的效果(参考Sect.3.2)。通过平均两种方式的soft-max输出,我们评估了他们的补充。可以看到,使用多种裁剪略优于密集网络,两种方法事实上具有互补作用,因为他们的结合表现优于各自方法。如上面提到的,我们假设这是由于不同的卷积边界条件造成的。

5、论文核心点解析

论文目的:研究深度对网络表现的影响;

VGG结构:将3x3小卷积核堆叠在一起;使用多个小卷积核代替一个大卷积核;

测试阶段处理:全连接换为全卷积,全连接的结构,要求输入必须是224x224x3的输入大小;而全卷积则可以对任意大小的原图进行操作,只需将原来4096对应7x7x512的操作,转化为1x1x4096对7x7x512进行操作;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值