Going deeper with convolutions论文翻译

摘要

我们提出了一个名为“Inception”的深度卷积神经网结构,其目标是将分类、识别ILSVRC14数据集的技术水平提高一个层次。这一结构的主要特征是对网络内部计算资源
的利用进行了优化。这一目标的实现是通过细致的设计,使得在保持计算消耗稳定不变的同时增加网络的宽度和深度。为了提高质量,网络结构基于Hebbian原则和多尺度处理规则设计。一个具体化的例子是GoogLeNet,也就是我们提交到ILSVRC14的成果,它是一个22层深的网络,其质量在分类和检测这两项指标中获得评估。

1. 引言

最近三年,主要由于深度学习和越来越实际的卷积网络的发展【10】,图像识别以及物体检测的质量都在以惊人的速度提高。一个振奋人心的消息是大多数进步并不只是更强大的硬件、更大的数据库和模型所带来的,而主要是一些新创意、新算法,以及优化的网络结构的成果。

例如,在ILSVRC 2014竞赛中,除了用于检测目的的同一竞赛的分类数据集外,没有使用新的数据集。我们提交到ILSVRC 2014的GoogLeNet实际上使用了比赢得两年前比赛的Krizhevsky等人【9,即AlexNet】 少12倍的参数,但精确度提高了很多。在物体识别方面,最大的收获其实并不归功于深度网络或是大型模型的单独使用,而是来自深度结构和传统机器视觉的协同作用,比如Girshick【6】提出来的R-CNN算法。

另一个值得注意的要素是随着移动计算和嵌入式计算的发展,我们的算法的效率——尤其是其能量和存储利用率——变得越来越重要。值得注意的是,这篇文章中提出的深度结构在设计时就考虑了这些因素,而不仅是执着于单纯提高精度。对于我们的大部分实验,模型计算量限制在预测时间内15亿次乘加运算左右,这让我们的实验并不仅仅是为了满足学术好奇心(而盲目提高精确度),而是可以在现实中使用,即使对于很大的数据集,开销也是合理的。

在本文中,我们所关注的是一个应用于计算机视觉的深度神经网络,名为“Inception”,它的名字来源于Lin等人【12】关于网络的论文,以及名言“我们要走向深度”【1】。在我们这,“深”有两层含义:首先,我们引入了一种高水平的组织方式来构建Inception的模块,同时以更加直接的方式来增加网络深度。一般来说,人们可以把Inception模型看作是【12】的逻辑顶点,同时从Arora等人的理论工作中获得灵感和指导【2】。网络结构的优势已经在ILSVRC 2014分类与检测挑战中得到验证,在比赛中它大大超越了现有水平。

2. 相关研究

从LeNet-5开始【10】,卷积神经网络(CNN)就已经具有标准化的结构了——堆叠起来的卷积层(可能后面跟着对比度归一化层和最大池化层),后面跟着一个或多个全连接层。这种基础设计的变种在图像分类领域十分流行,并且在MNIST,CIFAR等数据集,尤其是ImageNet分类挑战赛【9,21】中产生了极佳的结果。对于ImageNet这样的大型数据集,最近流行的趋势是增加层数【12】和每一层的大小【21,14】,并利用dropout算法解决过拟合问题。

虽然最大池化层会造成了准确空间信息的丧失,文献【9】中的网络结构还是被成功地应用到了定位【9,14】,物体检测【6,14,18,5】和人体姿势识别【19】等方面。Serre【15】等人受灵长类视觉皮层的神经科学模型启发,使用一系列不同大小的固定Gabor过滤器来处理多个尺度,类似于Inception模型。然而,相比文献【15】中固定的两层模型,Inception中所有过滤器是学习得到的。进一步的,Inception的各层都重复多次出现,形成了GoogLeNet——一个22层网络模型。

网中网(Network-in-Network)是Lin提出来的一种结构【12】,其目的是为了增加神经网络的表现力。当应用于卷积层的时候,这一方法可以看做一个额外的1×1卷积层,后面通常跟着一个修正的线性激活(rectified linear activation)。这使得Network-in-Network能够轻松地集成到现有的CNN流水线中。这种方法在我们的网络体系结构中被大量地使用。然而,在我们的设定中,1×1卷积具有双重目的:最重要的一点是,它们被主要用于降维模块以打破计算瓶颈,否则我们的网络规模会受到限制。这使得我们不仅可以加深网络,同时还可以加宽,而不造成严重的性能下降。

现在最好的物体检测方法是R-CNN,由Girshick【6】提出。R-CNN将整个检测问题分解为两个子问题:首先利用颜色和超像素一致性等低层次线索,以一种类无关的方式来处理潜在的对象建议,然后接下来利用CNN在这些区块信息上识别物体类别。这种两阶段的方法利用了对低层次信息边界框分割的准确性,以及最先进的CNNs的强大分类能力。我们在提交检测时采用了类似的流程,但在这两个阶段都进行了增强,比如多框【5】预测以提高的对象边界框的召回率,以及集成方法来更好地分类边界框建议。

3. 动机与高层设计考虑

最直接提高深度神经网络性能的方法是增加其规模,包括:通过增加层数以增大深度,通过增加每一层的节点数以增加宽度。这是一种训练高质量模型最简单安全的方法,特别是考虑到有大量标记的训练数据的可用性。然而这种简单的解决方法有两大缺陷。

更大的网络规模往往意味着更多的参数,这使得扩大后的网络更易产生过拟合,特别是当训练集中的标签样例有限的时候。这将成为一个主要的瓶颈,因为制作高质量的训练集是要技巧的,也是很昂贵的,特别是如果需要专业的人工评分员来区分类似于ImageNet中的细粒度可视类别(即使是在1000类ILSVRC子集中)时,如图1所示。
在这里插入图片描述
网络规模一致增长的另一个缺点是计算资源的使用急剧增加。例如,在一个深度视觉网络,如果两个卷积层相连,任何相同增加过滤器数量的改动都会导致增加二次方倍数的计算量。如果增加的计算力没有被有效使用(比如大部分的权值趋于0),那么大量的计算会被浪费。实际应用中可用的计算力的预算是有限的,如果以提高模型质量为主要目标的话,高效分布计算资源实际上也比盲目增加网络体积更加有效。

解决这两个问题的基本方法一般是把全连接改成稀疏连接的结构,甚至包括在卷积中也这么做。除了模拟生物系统,根据Arora【2】的突破性研究证明,这样做也可以在理论上获得更强健的系统。 Arora等人的主要结果显示如果数据集的概率分布是一个十分稀疏的大型深度神经网络所能表达的,那么可以通过分析每步最后一层激活的相关统计量,聚类输出高度相关的神经元,逐层构建最优网络拓扑。虽然严格的数学证明需要很强的条件,但事实上这种情况符合著名的赫布原则——神经元如果激活条件相同,它们会彼此互联——这意味着在实践中,赫布原则在不那么严苛的条件下还是可以使用。【转自百度百科:Hebb学习规则是一个无监督学习规则,这种学习的结果是使网络能够提取训练集的统计特性,从而把输入信息按照它们的相似性程度划分为若干类。这一点与人类观察和认识世界的过程非常吻合,人类观察和认识世界在相当程度上就是在根据事物的统计特征进行分类。Hebb学习规则只根据神经元连接间的激活水平改变权值,因此这种方法又称为相关学习或并联学习。】
不利的一面是,当今的计算基础设施在处理非均匀稀疏数据结构的数值计算时非常低效。即使算术运算量降低100倍,查找和缓存丢失的开销也依然如此之大,以至于切换到稀疏矩阵也无法处理。如果使用稳定改进(steadily improving)、高度调优(highly tuned)、允许非常快的密集矩阵乘法的数值库、利用底层CPU或GPU硬件的微小细节,那么这种计算需求与计算资源之间的鸿沟甚至可能被进一步拉大。另外,非均匀的稀疏模型需要复杂的工程结构与计算结构。目前大部分面向机器学习的系统都利用卷积的优势在空间域中使用稀疏性。然而,卷积是通过一系列与前层区块的密集连接来实现的,文献【11】发表后,卷积神经网通常在特征维度中使用随机的稀疏的连接表,以打破对称性,提高学习水平,然而,根据文献【9】这种趋势会变回为全连接模式,以便更好地优化并行计算。统一的结构、大量的过滤器数量和更大的批次(batch)规模将允许使用高效的密集矩阵运算。

这就导致了一个问题,是不是存在一个后续的中间步骤,如同理论上所显示的,能够让整个结构即使在过滤器层面上都能使用额外的稀疏性,但依旧是利用现有硬件进行密集矩阵计算。大量关于稀疏矩阵计算的文献,比如文献【3】,将稀疏矩阵聚类成相对稠密的子矩阵,往往会使稀疏矩阵乘法具有最先进的实用性能,把同样的方法应用到自动构建非均匀深度学习结构上,在不远的将来看起来不是空想。

Inception的体系结构始于第一作者研究的一个例子——评估复杂拓扑结构的网络算法的假设输出,尝试近似地用一个密集的可获得的组件表示一个文献【2】提出的视觉网络的稀疏结构的假设输出。 尽管这项工作在很大程度上是基于假设进行的,但是仅仅在两次迭代之后,我们就已经能够看到基于【12】的参考体系结构所带来的好处。在进一步调节了学习速率、超系数,和采用了更好的训练方法之后,我们成功地建立了Inception的体系结构,使之能够在基于文献【5】和【6】提出的定位和物体检测的上下文环境中非常好用。有趣的是,虽然大多数最初的架构选择都受到了质疑和彻底的测试,但它们至少在局部是最优的。

然而还是需要被谨慎考虑的是:虽然我们提出的体系结构在计算机视觉方面的应用很成功,但这能否归功于其背后的设计指导原则还不是很确定。想要确定这一点还需要更加彻底的分析和验证:比如,基于这些规则的自动化工具是否能够找到与之类似但却更好的用于视觉网络拓扑结构。最有说服力的证据将会是自动化系统能够利用相同的算法在不同的领域创建出具有相似结果,但全局架构有很大不同的网络拓扑。最后,Inception最初的成功为探索这一领域让人激动的未来产生了巨大的动力。

4. 结构细节

Inception架构的主要思想是找出卷积视觉网络中最优的局部稀疏结构是如何被容易获得的稠密组件近似表达和覆盖的。注意,假设平移不变性意味着我们的网络将由卷积构建块构建。我们所需要做的只是寻找局部最优化结构并在空间上对其进行重复。Arora等人在文献【2】中提出一个逐层搭建的结构,需要分析每一步最后一层的统计关联性,并将高度相关的神经单元聚类为簇。这些簇组成了下一层的单元并与前一层的各个单元相连。我们假设前面一层的每个单元都对应输入图像的某些区域,而这些单元被分组分配给过滤器。在较低的层次(更靠近输入端),相关的单元聚焦于局部区域。这意味着我们能够得到大量聚焦于同一区域的簇,它们会被下一层的1×1卷积覆盖,如同文献【12】所述。

然而,我们也可以预期,在更大的patch上,能够被卷积覆盖的空间分布更广的集群的数量会更少,对应区域越大,patch越少。(理解:patch为感受野,region为对应原图大小)为了避免区块对齐问题(patch alignment issues),现有的Inception结构将过滤器大小限制为1×1,3×3 和 5×5的大小,然而这种设定更多是为了方便而不是必要的。这也意味着该网络结构应该是将这些层级输出结果合并为单一向量作为输出以及下一层的输入。另外,因为池化操作对于现有水平的卷积网络是很重要的,建议最好在每一步增加一条并行池化通路,这样应该也会有一些额外的好处(如图2a所示)。
在这里插入图片描述
Inception模块是一层一层往上栈式堆叠的,所以它们输出的关联性统计会产生变化:更高层抽象的特征会由更高层次所捕获,而它们的空间聚集度会随之降低,因为随着层次的升高,3×3和5×5的卷积的比例也会随之升高。

上述模型的一个大问题是,至少是朴素形式(naive form)的模型,即使只有很有限个数的5×5卷积,其最上层卷积层的巨量过滤器的开支都会让人望而却步。一旦把池化层加进来,这个问题会变得更加严重:它们的输出过滤器个数与前面过程的过滤器个数相等。池化层输出与卷积层输出的合并会导致无法避免的每步输出的暴增。即使是当这种结构覆盖了最优的稀疏结构,它可能依然还是很低效,从而导致少数几步的计算量就会爆炸式增长。

这种情况导致我们提出了第二种设想:审慎地把降维和投影使用到所有计算量可能急剧增加的地方。这是基于嵌入的成功(success of embeddings)来设计的:相对于一个大型的图像区块,即使是低维的嵌入也可能包含大量的信息。然而,嵌入会把信息以一种致密的,压缩的方式展现出来,而压缩信息是很难被建模的。我们还是想在大部分位置保持稀疏性(如同文献【2】所要求的),而只在信号需要被聚合的时候压缩它们。也就是说,1×1卷积被用于在昂贵的3×3和5×5卷积之前降维。除了用于降维,它们也被用于数据线性修正激活(rectified linear activation),这使之具有双重使命。最后的结果如图2(b)。

一般而言,一个Inception网络是由一系列上述结构栈式堆叠而成,有时候步长为2的最大池化层将网络的分辨率减半。出于技术原因(更高效的训练),只在高层使用Inception结构而把低层保留为传统的卷积模式似乎是有利的。这并不是严格必要的,只是反映了我们当前实现中的一些基础设施效率低下。

这一结构一个有利的方面是它允许每一步的神经元大量增加,而不会导致计算复杂度的暴增。 降维的普遍存在能够阻挡大量来自上一层的数据涌入下一层的过滤器,在大区块上对其进行卷积之前就对其进行降维。该设计另一个在实践中很有用的方面是,它符合这样一种直觉,即视觉信息应该在不同的尺度上处理,然后聚合,以便下一阶段可以同时从不同的尺度上提取特征。

计算资源的优化利用允许我们增加每层网络的宽度以及层数,而无需面对增加的计算困扰。另一种使用Inception架构的方法是开发一种质量稍差,但计算起来更便宜的版本。
我们已经发现,用于平衡计算资源的控制因素可以使得我们的网络比性能相同而不使用Inception结构的网络快2~3倍,只是这需要极为精细的人工调整。

5. GoogLeNet

我们选择GoogLeNet作为我们参加ILSVRC14比赛的队名。这个名字是为了纪念先驱者Yann LeCuns开发的LeNet5网络【10】。我们也是用GoogLeNet作为我们在比赛中提交的Inception结构的具体实现的名字。我们使用了一个更深、更宽的Inception网,其质量稍差,但是将它添加到集成中似乎能略微改善结果。我们忽略了那个网络的实现细节,因为我们的实验表明,特定的某一结构参数的影响相对而言是很微小的。在此,最成功的实现实例GoogLeNet是如表1所示的情况。在我们的集成中,7个模型中的6个使用了完全相同的拓扑结构(使用不同的采样方法进行训练)。
在这里插入图片描述
所有的卷积,包括那些Inception模块内的卷积,都使用修正线性激活函数(rectified linear activation)。我们网络的感受野是一个RGB三色通道的224×224区域,并且经过了减去均值的处理。“#3×3 reduce”和“#5×5 reduce”表示在进行3×3和5×5卷积之前,瓶颈层中使用的1×1个滤波器的数量。1×1过滤器的数量可以在池化投影列(pool proj column)中的最大池化层后面的投影层中看到。所有的降维层和投影层也都使用修正线性激活函数(rectified linear activation)。
网络的设计是基于计算的效率与可实践性展开的,因此其推演过程可以在单台设备上进行,即使这些设备的运算资源极其有限(尤其是内存极其有限的设备)。如果只计算有参数的层,我们的网络有22层深(算上池化层有27层)。用于构建网络的总层数(独立块)有将近100个。然而,这一数量需要依靠机器学习的基础设施。用于分类器之前的平均池化层是基于文献【12】设计的,虽然我们的实现方式有点不同:我们使用了一个多出来的线性层(use an extra linear layer)。这使得在其它标签数据集上调整我们的网络变得容易,但这主要是为了方便,我们并不指望会有什么大的影响。我们发现,从全连接层到平均池化的移动会让TOP-1准确度提高0.6%,然而,即使在删除了全连接层之后,dropout的使用仍然至关重要。

考虑到网络的深度相对较大,以有效的方式将梯度传播回所有层的能力令人担忧。一个有趣的理论是,在这项任务中,相对浅层的网络的强大性能表明,网络中间各层所产生的特征应该具有很强的辨别能力。通过增加一些与这些中间层相连的辅助的分类器,我们期望在分类器的较低阶段提高辨别能力,增加传播回来的梯度信号,同时增加更多的正则化。 这些分类器采用较小的卷积网络形式,被安置在Inception(4a)和(4d)模块的输出的顶部。 在训练中,它们的损失被减弱后加到总偏差中(附加分类器的损失乘以0.3)。在预测过程中,这些附加网络会被抛弃。

附加网络的结构,包括附加分类器的结构如下:

  • 一个平均池化层,过滤器为5×5,步长为3,在4(a)得到一个4x4x512的输出,在4(d)得到一个4x4x528的输出。
  • 一个1x1卷积,有128个过滤器,用于降维和修正化线性激活。
  • 一个拥有1024个单元和修正化线性激活的全连接层。
  • 一个会抛弃70%输出的DROPOUT层。
  • 一个使用softmax损失的线性层,这一层被用作分类器(与主分类器一样,它进行1000类分类,但在推理阶段,它会被抛弃)
    最后得到的整个网络的示意图如图三所示。
    在这里插入图片描述

6. 训练方法

我们的网络使用文献【4】提出的分布式机器学习系统进行训练,该系统使用少量的模型和数据并行性。虽然我们只使用基于CPU的实现,一个粗略的估计证明GoogLeNet可以在少数几个高速GPU终端上进行训练并在一周内收敛,其主要限制是内存。 我们的训练使用动量(momentum)为0.9的异步随机梯度下降,并将学习速率固定为每八次迭代减少4%。Polyak均值【13】被用于建立在推理过程中使用的最终模型。

我们的图片采样方法在比赛前数个月就进行了彻底的修改,并在其他设置条件下通过了收敛测试——包括结合不同的超系数(比如dropout和学习速率),所以很难为找到最高效的训练网络的方法提供极为准确的指导。更复杂的是,根据文献【8】的思路一些模型主要是在相对较小的粒度上进行训练,而另一些采用更大的粒度。所以,一个在比赛之后已经被证明非常有效的方案是将取样区块的大小平均分布在图片区域的8%到100%之间,宽高比随机分布与3/4和4/3之间。 同时,我们发现AH【8】提出的光度变换对于对抗过拟合在某种程度上是很有用的。此外,我们开始使用随机插值方法(等概地使用双线性、面积、最近邻和立方插值)以便在相对靠后的阶段重新确定取样大小,以及其他超系数的结合,所以我们无法明确知道这些方法的使用对于最后结果是不是真的有积极影响。

7. ILSVRC 2014分类挑战的设置与结果

ILSVRC 2014分类挑战包括将图片分类到1000个ImageNet层次结构的叶子节点类别中。
一共有120万张图片用于训练,5万张图片用于验证,10万张图片用于测试。每张图片都有金标准,而性能则通过模型判断的可能性最高的类别是否合理进行检验。两个指标被用于报告中:TOP-1精确度——比较真实情况与预测认为可能性最高的情况;TOP-5精确度——比较真实情况与预测认为可能性最高的前五种情况:一张图片的真实分类如果落入前五种预测分类之一,则视为分类正确,不考虑类别的排序位置。挑战赛利用TOP-5错误进行排名。

我们不利用任何附加数据参加这项挑战赛。除了论文前述的训练技术,我们还采用了如下一系列测试技术去提高性能:
1.我们独立训练了七个版本的相同的GoogLeNet模型(包括一个宽度更大的版本)
然后将其联立起来进行预测。这些模型训练基于相同的初始化(由于一个oversight,甚至初始权值都是相同的)以及学习速率策略。唯一的不同是采样方法和图片输入顺序不同。
2.在测试中,我们采取了比Krizhevsky等人【9】更大胆的裁切策略。特别地,我们将图片重设为四种不同的尺度,其短边(高或宽)分别是256,288,320和352,取出左中右三个方块(如果说肖像图,我们取顶中底三块)。对于每一块,我们取其四角和中心,裁切出5个224x224的区块以及224×224的缩放,同时取其镜像。结果每张图就得到了4×3×6×2 = 144个区块。同样的方法AH【8】也在前些年的比赛中用了,根据我们的经验证明,其表现会比他们提出来的差一点。我们注意到,如此激进的方法可能在实际应用中不是很有必要,因为当区块数超过合理范围之后,其带来的好处也有限(我们后面会展示)。
3.softmax概率分布被平均到不同的裁切以及所有的单分类器上以获取最终的预测结果。
在我们的试验中,我们在验证数据上分析了所有可选的方法,比如各个裁切区块上的最大池化,以及对分类器取平均。但它们会导致比简单平均更差的表现。

在余下的文章中,我们将分析各个因子在最终提交的作品中对整体性能的影响。
我们最后提交的挑战赛作品将TOP-5错误在验证集和测试集上都降到了6.67%,在参赛者中排名第一。与2012年的SuperVision方法相比,降低了56.5%,与去年获得第一的Clarifai方法相比降低了40%,而且这些方法都使用了外部数据来训练分类器。 如下表格展示了历年最优方法的统计数据。
在这里插入图片描述
我们还通过改变模型数量以及切分数量,分析并报告了其他几种测试策略对于图片进行预测的效果,结果见下表。当我们使用一个模型,我们选择其在验证数据上的最低TOP-1错误率。所有数据报告基于验证数据集,以避免测试集上的过拟合。
在这里插入图片描述

8. ILSVRC 2014识别挑战的设置与结果

ILSVRC的识别任务是在两百中可能类别上产生围绕物体的边界线(bounding boxes)。
如果边界线与金标准重合至少50%(使用交除以并的雅卡尔系数Jaccard Index)则认为识别物体成功。无关的识别将视为假阳性错误并遭受处罚。与分类不同,每张图可能包含多个物体,也可能不包含任何物体,物体可大可小。结果报告采用平均精度mAP。

GoogLeNet所采取的物体检测方法与文献【6】提出的R-CNN很类似,但因为在Inception模型中作为局部分类器使用而被放大了。另外,为了获得更高的边界线召回率,通过将多尺度边界预测【5】与选择性搜索(Selective Search)【20】相结合,区域建议的步骤得到了改进。为了减少假阳性错误率,超像素的大小被扩大了两倍。这导致了选择搜索提取数量的减半。我们又把两百个多尺度边框【5】提取区域加了回去,总共包括了文献【6】提出的60%,把覆盖率从92%提高到了93%。利用增加覆盖率减少提取区域的总体效果是每个模型的平均精确度增加了1%。最后,在分类每个区域的时候我们使用6个卷积神经网络的集合,从而将准确率从40%提高到了43.9%。请注意与R-CNN相比,限于时间,我们并未使用边界线回归(bounding box regression)。

我们首先报告了可能性最高的检测结果,并从第一个版本的检测任务开始展示了整个过程。与2013年的结果相比,准确率几乎翻了一倍。表现最好的队伍都使用了卷积神经网络。我们在表4展示了官方分数以及每个队伍的通用策略:是否使用外部数据、模型集成或是其他上下文模型。外部数据主要是用ILSVRC12分类数据来进行预训练,然后再将模型在检测数据上微调。一些队伍还提到了使用定位数据。由于定位任务边界框的很大一部分没有包含在检测数据集中,因此可以使用这些数据对一般的边界框回归器进行预训练,其方法与使用分类进行预训练的方法相同。GoogLeNet参赛时没有使用定位数据进行预训练。(用了分类数据)
在这里插入图片描述
在表5中,我们仅使用单个模型比较结果。表现最好的模型是DeepInsight,令人惊讶的是,与3个模型的集成只有0.3个百分点的改善,而GoogLeNet通过聚合得到明显更强的结果。
在这里插入图片描述

9. 结论

我们的结果似乎产生了一个坚实的结论——利用现有密集块逼近预想中的最佳稀疏结构,是一种可行的提高计算机视觉神经网络能力的方法。这种模型的主要优势是与浅层且较窄的网络相比,只要增加少量计算需求就能极大地提升质量。还请大家注意,我们的检测技术即使没有使用上下文和边界回归,结果依然很好,这一事实提供了进一步的证据证明Inception结构的强大。虽然相同质量的网络可以被同样宽度和深度的更昂贵的网络实现,我们的方法却切实地证明了切换到一个更稀疏的结构上是一个在普遍情况下可行且有用的方法。这意味着未来有希望在[2]的基础上,以自动化的方式创建更稀疏、更精细的结构。

发布了1 篇原创文章 · 获赞 0 · 访问量 279

猜你喜欢

转载自blog.csdn.net/qq_35024702/article/details/105100488