GoogLeNet v1

GoogLeNet v1论文翻译。一个经典图片分类卷积网络架构。主要思想是通过现有密集架构,组合出一个稀疏空间架构,也就是Inception模块。

GoogleNet: Going Deeper with Convolutions

Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich, 2014.11

Google Inc. University of North Carolina. Chapel Hill. University of Michigan. Ann Arbor Magic Leap Inc.

1. Introduction

在过去三年,我们的物体分类和检测能力因深度学习和卷积网络的提升有大幅进步。一个振奋人心的消息是大部分进展不是基于更强大的硬件、更大的数据集和更大的模型,而是一系列新想法、算法和网络架构提升。没有使用新的数据源。我们的提交模型GoogLeNet比两年前的胜者架构参数少12倍,同时还要精确得多。在物体检测前沿,最大的提升不是来自更大、更深的网络,而是深度架构和经典计算机视觉的协同,如Girshick等人的R-CNN算法$^{[6]}$。

另一个不可忽视的因素是移动设备和嵌入式设备的牵引,我们算法的效率——特别是电力和内存使用——变得更重要。需要注意的是这一考虑使本论文的深度架构设计包含了这一因素,而不是固定在精确的数字上。大部分实验中,模型都设计为保持计算量为15亿次,因此它不仅仅是学术玩具,而是在大数据集上也能以合理花费实际运用的。

在本论文中我们着力于一个用于计算机视觉的高效神经网络架构,代号“Inception(没错就是盗梦空间的名字)”,它的名字来自Lin等人的NIN论文$^{[12]}$中的一个梗。通常来说可以把Inception模块看做[12]的逻辑顶点logical culmination,同时得到了来自Arora等人的理论研究$^{[2]}$的激发和指导。架构的好处在ILSVRC 2014分类和检测竞赛上进行了实验验证,显著地超越了前沿方法。

自LeNet-5$^{[10]}$起,卷积神经网络就一直有一个标准结构—层叠的卷积层(选择性后缀归一化层和max-pooling层),后缀一个或多个全连接层。这一基础设计的变种流行于图片分类领域,并在MNIST,CIFAR和ImageNet分类上得到了最佳结果。对于大型数据集如ImageNet,近期潮流是增加层数、增大层的尺寸,同时使用dropout$^{[7]}$来解决过拟合的问题。

尽管存在对于max-pooling层对于空间信息精度损失的担忧,同样的卷积网络结构$^{[9]}$已成功用于定位$^{[9,14]}$,物体检测$^{[6,14,18,5]}$和人类姿态估计$^{[19]}$。

被灵长类视觉皮层的神经学模型所激发,Serre等人$^{[15]}$使用一系列固定的不同尺寸的Gabor filters来处理不同的尺度。我们使用了类似的策略。但与他们固定的两层深的模型不同,所有Inception结构中的filter都是需要训练的。而且Inception层重复了多次,得到GoogLeNet模型中的22层深度。

NIN是Lin等人$^{[12]}$提出的用于增加神经网络表达力的方法。在它们的模型中,加入了额外的$1\times1$卷积层以增加深度。我们在自己的架构中大量使用了该方法。不过我们设定中的$1\times1$卷积层有两个目的:它们很大程度上用做缩减维度模块,以移除计算量瓶颈,否则它会限制我们网络的大小。这不仅允许增大深度,还可以在没有明显性能损耗的情况下增大网络宽度。

最后,当下最前沿的物体检测算法是Girshick等人的R-CNN。R-CNN将检测问题分解为两个子问题:以领域不可知的形式(category-agnostic)使用低级线索如颜色和纹理来生成物体位置候选,用CNN分类器来在那些区域中识别物体类别。这一方法同时利用了使用低级线索的限位框分割的精确度和前沿CNN的强大分类能力。在我们的检测提交中采用了类似的流程,但在两个步骤中都找到了加强方法,如使用multi-box$^{[5]}$预测来获得更高的物体限位框召回率,组合方法来获得更佳的分类效果。

3. Motivation and High Level Considerations

提升神经网络性能最直接的方法就是增加它们的尺寸。这包括增加深度——网络的层数——以及宽度:每层单元数量。这是训练一个更高质量模型的简单又安全的方法,特别是有大量标注训练数据的情况下。但这一方法有两个主要弊端。

更大的尺寸通常意味着更多的参数,使得增大后的网络倾向于过拟合,特别是训练样本数量受限的情况下。这是主要的瓶颈,因为强力标注数据集非常耗时,也很昂贵,通常需要专家来进行区别视觉种类,如图1。

图1

另一个一致地增大网络尺寸的缺点是所需计算资源的增长。比如在一个深度视觉网络中,如果两个卷积层是相连的,任何对它们卷积核尺寸的增加都会导致计算量平方级的增加。如果增加的容量没有好好利用(如大部分权重最终为0),那么大部分计算都浪费掉了。通常计算资源都是有限的,因此计算资源的有效分布需要不随意增大尺寸,就算主要目标是提升分类质量。

一个解决这些问题的根本方法是稀疏性的引入和用更稀疏的层替换全连接层,甚至那些卷积中的。除了模仿生物系统,依据Arora等人的开创性理论工作$^{[2]}$,这还有坚固的理论基础。他们的主要成果说明,如果数据集的概率分布能通过一个大的、极稀疏的深度网络来表达,那么最优的网络拓扑可以通过分析之前层的激活值的相关统计和有着高度相关输出的神经元的聚类,一层一层地构建出来。尽管严格数学证明需要非常强的条件,但这一陈诉与我们熟知的Hebbian principle——同时激活的神经元,它们连在一起——的共振resonates,说明即使在实际应用中不那么严格的条件下,其想法也是合适的。

不幸的是,现在的计算架构对于未归一化的稀疏数据结构非常低效。就算算数运算数量缩减100倍,缓存查找和未命中的额外开销同样能占统治地位:切换到稀疏矩阵可能不会成功。稳步提升、高度调优的数值库的使用通过开发CPU和GPU硬件细节允许了极快极密集的矩阵乘法,进一步扩大了差距。而且,未归一化的稀疏模型需要更复杂的工程和计算架构。目前大部分面向视觉的机器学习系统仅把稀疏性用来利用卷积。不过,卷积是更早层的块的密集连接集合。卷积网络有在特征维度中使用随机、稀疏连接表的传统$^{[11]}$,为了打破对称性并提升训练效果,不过近年为了进一步并行优化,这一潮流变为了全连接$^{[9]}$。目前前沿的计算机视觉架构有着同样的结构。更大的filter数量和batch大小允许密集计算的高效。

这就引出一个问题,是否有一个中间步骤存在的希望:一个能利用filter级稀疏度的架构,如理论建议的那样,但通过利用密集矩阵的计算来开发我们目前硬件的潜力。大量稀疏矩阵计算的文献(如[3])建议将稀疏矩阵聚集为相对密集的子矩阵能为稀疏矩阵乘法带来有竞争力的性能。看起来在不久的将来类似的方法就会用于未归一化深度学习架构的自动构建。

Inception架构起源于对复杂网络拓扑结构算法的假定输出评定,一个用于模拟[2]隐含的用于视觉网络的稀疏架构,并覆盖了现成的密集组件的假定输出。尽管是个高度投机的事业,与参照网络[12]相比,很早就发现了少许优势。经过一点调优后,差距进一步扩大,Inception被证明在定位和物体检测中用作[5]和[6]的基础网络特别有用。有趣的是,尽管大部分原始架构选择都分别被怀疑,被彻底测试过,但结果它们都接近于局部最优。有一点需要十分小心:尽管Inception架构在计算机视觉获得了成功,它对于导致它的构建的指导原则能否有贡献仍值得怀疑。弄清楚这个需要更彻底的分析和验证。

4. Architecture Details

Inception架构的主要思想是一个卷积视觉网络的最优局部稀疏结构能通过现成密集组件近似并覆盖到什么程度。需要注意平移不变性需要我们网络使用卷积结构构建。我们需要做的是找到最优局部结构,并在空间上不断重复它。Arora等人$^{[2]}$建议采用一层层的结构,每一层需要分析上一层的相关性统计,并把高度相关的单元聚集到一起。这些簇由下一层的单元组成,连接至前一层的单元。我们假定前一层的每个单元都对应于输入图片的一些区域,它们聚集起来就成了滤波器组filter banks。在更低的层中(更接近输入图片)相关的单元会关注局部区域。因此我们最终会得到许多关注到一个区域的簇,它们能通过下一层的$1\times1$卷积覆盖cover,如[12]所提出的那样。不过仍有少量的空间分布得更开的簇,它们可以被更大块patch的卷积覆盖,随着区域变大,patch的数量会减小。为了避免块对齐patch-alignment问题,目前的Inception架构被限制为卷积核大小:$1\times1,3\times3,5\times5$,这一决策的考虑更多是基于方便,而不是必要。这也意味着建议结构是把所有层将它们的滤波器组连接为一个输出向量,作为下一步的输入。另外,由于池化操作对于当前的卷积网络的成功非常关键,说明在每个这样的步骤中增加一个额外的并行池化路径应该能有额外的收益(见图2(a))。

所有这些Inception模块都一个个堆叠起来,它们输出的相关性统计会有很大差异:因为高度抽象的特征由更高层捕获,它们的空间关注度会减小。这也说明随着层数变高,$3\times3$和$5\times5$占比应该变高。

以上模块的一个大问题就是,就算$5\times5$卷积数量很少,它如果放置于有大量卷积核的卷积层之上,也会过于昂贵。一旦加入了池化单元,这一问题更严重了:输出的卷积核数量等于之前步骤的卷积核数量。加入了池化层后,逐步增加的输出数量不可逆转。尽管这一架构也许能覆盖最优空间结构,它也是非常低效的,导致几层之内计算量就会爆炸。

图2

这导致了第二版Inception架构:只要计算量会增大太多,就降低维度。这是基于嵌入式embedding的成功:就算低维的嵌入也能包含一个相对大的图片块的许多信息。不过嵌入式以一种密集、压缩的形式表达信息,而压缩过的信息更难处理。这一表达需要在大部分地方保持稀疏(如[2]的条件所需),并在信号不得不被全部聚集时才压缩它们。也就是说,$1\times1$卷积用在昂贵的$3\times3$和$5\times5$之前以降低维度。除了用作维度缩减,它们还包含了ReLU激活。最终结果是图2(b)。

通常来说,一个Inception网络是一个由以上类型模块互相堆叠,间或有步长为2的max-pooling层来减半分辨率所组成的。出于技术上的原因(训练中的内存效率),似乎保持底层传统卷积形式,在更高的层才使用Incepition也能收益。这不是严格必须的,仅是反应了我们目前实现上的一些基础结构的低效。

这一架构有个有用的方面,它允许每个阶段的单元数量显著增长,而不会导致之后阶段的计算量复杂度不受控制地增长。这是通过有着更大尺寸的昂贵卷积之前的无处不在的维度缩减的使用所获得的。而且这一设计遵从了实践直觉:视觉信息应在不同的尺度处理并聚合使得下一阶段能从不同尺度同时抽象特征。

这一计算资源使用的提升允许同时增大每一阶段的宽度和阶段数量,而不用面临计算困难。任何人都能使用Inception结构来创建稍低级但计算量更少的版本。我们已经发现对计算资源的平衡控制使网络比同样性能的无Inception架构的网络快3-10倍,不过这需要小心的手工设计。

5. GoogLeNet

GooLeNet这个名字特指我们的ILSVRC 2014竞赛的提交所用的Inception架构。我们也用了一个更深、更宽的Inception网络,质量稍高,但将其加入模型组合只提高了一点点结果。我们省略了那个网络的细节,因为经验证明额外的建筑参数影响相对小。表1解释了竞赛中用得最多的Inception实例。这个网络(用不同的图片块采样方法训练)占了我们7个组合模型中的6个。

表1

所有的卷积,包括Inception中的,使用ReLU激活。我们网络的输入是RGB空间的$224\times224$,均值为0。“#$3\times3$”和“#$5\times5$”指$3\times3$和$5\times5$卷积层前$1\times1$卷积核数量。也可以看到pool proj列中内建max-pooling后的projection层的$1\times1$卷积核数量。所有的reduction/projection层也同样使用ReLU激活。

网络在设计时就考虑了计算效率和实用性,它能在各种设备上运行,甚至是计算资源有限的设备,特别是内存较低的那些。只计算有参数的层的话,网络共22层(如果计入池化层,则是27)。网络结构中所有的层数(独立建筑块)约100个。具体数字取决于如何对层计数。基于[12],我们在分类器前使用了平均池化,但在我们的实现中增加了额外的线性层。线性层允许我们轻松地将网络适配到其他标注数据集,但它的使用主要出于方便,并未期待有何影响。我们发现将全连接层替换为平均池化层获得了0.6%的top-1准确度提升,但就算移除了全连接层,dropout层依然至关重要。

当网络深度相对大时,能高效地在这些层中反向传播就重要起来了。更浅网络在这个任务上的强劲表现说明网络中间的层产生的特征非常有识别力。通过为这些中间层连接额外的分类器,可以期待这些更低阶段的分类器有辨识力。这是出于对梯度消失问题的考虑,同时提供了正则化。分类器以更小的卷积网络形式放置于Inception(4a)和(4b)模块输出之上。在训练中,它们的loss会以有折扣的权重加入整个网络的loss中(额外的分类器loss权重为0.3)。在应用时,这些额外的网络会被丢弃。稍后的控制实验显示额外的网络效果相对小(约0.5%),而只需一个那样的网络就能获得同样的效果。

网络额外结构如下:

  • 一个尺寸为$5\times5$的步长为3的平均池化层。用作了(4a)的一个$4\times4\times512$的输出和(4d)的$4\times4\times528$。
  • 一个有128个$1\times1$卷积核的层,进行维度缩减和ReLU
  • 一个有1024个单元和ReLU的全连接层
  • 一个70%的比例的dropout层
  • 一个使用softmax做为分类器的线性层(与主分类器预测同样的1000类,但使用时移除)

整个网络如图3。
图3

6. Training Methodology

GoogLeNet是使用分布式机器学习系统DistBelief$^{[4]}$训练的,使用了适度的模型和数据并行。尽管我们只使用了CPU实现,粗略估计GoogLeNet能使用少量高端GPU在一周内训练至收敛,主要限制在于内存使用。我们的训练使用了异步SGD,动量为0.9,固定的学习率计划(每8个epoch降低4%的学习率)。使用了Polyak averaging$^{[13]}$来得到测试使用的最终模型。

近几个月图片采样方法已充分改变,已收敛的模型是用其它选项训练的,有时还改变了超参数,如dropout和学习率。因此很难给出一个决定性的最有效的训练指导。受[8]激发,有些模型主要在相对小的裁切上训练的,其余在更大的。竞赛后验证了一个管理非常有用,包括以不同的patch size采样,从8%到100%,长宽比保持在$[\frac 3 4, \frac 4 3]$。我们同样发现Andrew Howard的广度扰动$^{[8]}$也很能对抗过拟合。

7. ILSVRC 2014 Classification Challenge Setup and Results

ILSVRC 2014分类挑战是将图片分类到ImageNet层级中的1000个叶子种类。共约120万张训练图片,5万验证和10万测试。每个图片与一个gt类别关联,性能是基于最高得分的预测测量的。通常报告两个数据:top-1准确度,把gt类与最高预测相比;和top-5错误率,把gt类与前5预测相比,如果gt在这5个类中就认为分类正确。这一挑战使用了top-5错误率作为排名依据。

我们没有使用额外的数据来训练我们的参赛模型。除了本论文提到的训练技术,我们还采用了一系列测试技术来获得更高性能:

  1. 我们独立训练了同样模型的GoogLeNet的7个版本(包括一个更宽的版本),并用它们组合预测。这些模型以同样的初始化设置和学习率策略训练。它们仅有采样方法和图片输入顺序随机化的不同。
  2. 在测试时我们采用了Krizhevsky等人的更激进的切图方法$^{[9]}$。特别的是,我们将图片缩放到4个尺度,让短边分别是256,288,320和352,从缩放后的图片取左、中、右三个方块(对于肖像照就是上、中、下方块)。对于每个方块我们取四个角和中心的$224\times224$块,连同整块缩放,共6种,以及它们的镜像版本。这就为每张图片带来$4\times3\times6\times2 = 144$个方块。Andrew Howard$^{[8]}$曾在去年的提交中使用了类似的方法,我们靠经验推断比这一方法要稍差。需要提到的是实际应用也许不需要如此激进的切块,因为随着切块数量足够之后,更多块的收益变得很小(我们随后会展示)。
  3. softmax概率在多个块上平均。我们在验证数据集上分析了不同的方法,如在每个块上max pooling,并在分类器平均。但比简单的平均性能低。

在剩余的论文中,我们分析了对于最终提交总体性能有帮助的多个因素。

我们的最终提交在验证和测试集上top-5误差为6.67%,排名第一。相对2012的SuperVIsion有近56.5%的相对提升,相比去年的最佳方法(Clarifai)有40%的相对提升,它们还都使用了额外数据来训练。表2是过去3年的顶级方法统计。

表2

我们也分析并报告了多个测试选择的性能,通过测试时使用不同的模型数量和切块数量,见表3。当使用一个模型时,选用了在验证集上错误率最低的模型。所有数据都基于验证集,以避免过拟合测试数据统计。

表3

8. ILSVRC 2014 Detection Challenge Setup and Results

ILSVRC检测任务是为图片中的可能为200种的物体产生限位框。当类匹配且与gt框Jaccard交集大于50%,就认为检测正确。无关检测被视作false positive,将被惩罚。与分类任务不同的是,图片中可能没有物体,或很多物体,而它们尺度相差巨大。结果以mAP的形式报告。我们采用了与R-CNN类似的方法,但将Inception模型用作了区域分类器。另外,候选区域步骤使用multibox和SS的合并以获得更高的限位框召回率。为了降低false positive数量,超像素superpixel尺寸增大了两倍。这将SS算法产出的候选区域数量减半。我们加入了来自multibox的200个候选区域,其中共60%的候选被[6]使用,同时将覆盖率从92%提升至93%。这一区域数量裁剪和覆盖率的增加,一起为单模型增加了1%的mAP。最后,我们使用了6个GoogLeNet的组合来为每个候选区域分类。需要注意与R-CNN不同的是,由于时间关系我们没有使用限位框回归。

我们首先报告了最近检测结果,并展示了自第一届检测竞赛依赖的进展。与2013年的结果相比,精确度接近翻倍。最佳性能均使用了CNN。我们在表4列出了各队伍的官方得分和共同策略:额外数据,组合模型或上下文模型。额外数据通常是ILSVRC12分类数据,用于预训练一个用于分类的模型。有的队伍也提到了定位数据的使用。因为检测集中并未包含较好的定位数据,他们可以预训练一个通用的限位框回归器。GoogLeNet没使用额外的定位数据进行预训练。

表4

在表5中,我们比较了单模型的效果。最佳模型是Deep Insight,但它使用3个的组合模型时,只提升了0.3,而GoogLeNet组合效果强得多。

表5

9.Conclusion

我们的结果成为了通过现成的密集建筑块来逼近期望的最优空间结构是可行的提升用于计算机视觉的神经网络的方法的强力证明。这一方法的主要优点是比起更浅更窄的架构,仅需合理的计算量增长就能获得很大的质量增长。

我们的物体检测研究具有竞争力,尽管没有使用上下文或进行限位框回归,说明Inception架构仍有潜力。

对于分类和检测,可以预期有着近似深度和宽度的,更昂贵的非Inception网络也能获得近似的质量。但我们的方法证明了向稀疏架构发展是有用且可行的想法。这建议了未来研究基于[2]的基础,自动地创建稀疏、精炼的结构,以及将Inception架构的思想应用于其它领域。

References

[1] Know your meme: We need to go deeper.
http://knowyourmeme.com/memes/we-need-to-go-deeper.
Accessed: 2014-09-15.
[2] S. Arora, A. Bhaskara, R. Ge, and T. Ma. Provable
bounds for learning some deep representations. CoRR,
abs/1310.6343, 2013.
[3] U. V. C¸ atalyurek, C. Aykanat, and B. Uc¸ar. On ¨
two-dimensional sparse matrix partitioning: Models,
methods, and a recipe. SIAM J. Sci. Comput.,
32(2):656–683, Feb. 2010.
[4] J. Dean, G. Corrado, R. Monga, K. Chen, M. Devin,
M. Mao, M. Ranzato, A. Senior, P. Tucker, K. Yang,
Q. V. Le, and A. Y. Ng. Large scale distributed deep
networks. In P. Bartlett, F. Pereira, C. Burges, L. Bottou,
and K. Weinberger, editors, NIPS, pages 1232–1240. 2012.
[5] D. Erhan, C. Szegedy, A. Toshev, and D. Anguelov.
Scalable object detection using deep neural networks.
In CVPR, 2014.
[6] R. B. Girshick, J. Donahue, T. Darrell, and J. Malik.
Rich feature hierarchies for accurate object detection
and semantic segmentation. In Computer Vision and
Pattern Recognition, 2014. CVPR 2014. IEEE Conference
on, 2014.
[7] G. E. Hinton, N. Srivastava, A. Krizhevsky,
I. Sutskever, and R. Salakhutdinov. Improving neural
networks by preventing co-adaptation of feature detectors.
CoRR, abs/1207.0580, 2012.
[8] A. G. Howard. Some improvements on deep convolutional
neural network based image classification.
CoRR, abs/1312.5402, 2013.
[9] A. Krizhevsky, I. Sutskever, and G. Hinton. Imagenet
classification with deep convolutional neural
networks. In Advances in Neural Information Processing
Systems 25, pages 1106–1114, 2012.
[10] Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E.
Howard, W. Hubbard, and L. D. Jackel. Backpropagation
applied to handwritten zip code recognition.
Neural Comput., 1(4):541–551, Dec. 1989.
[11] Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner.
Gradient-based learning applied to document recognition.
Proceedings of the IEEE, 86(11):2278–2324,1998.
[12] M. Lin, Q. Chen, and S. Yan. Network in network.
CoRR, abs/1312.4400, 2013.
[13] B. T. Polyak and A. B. Juditsky. Acceleration of
stochastic approximation by averaging. SIAM J. Control
Optim., 30(4):838–855, July 1992.
[14] P. Sermanet, D. Eigen, X. Zhang, M. Mathieu, R. Fergus,
and Y. LeCun. Overfeat: Integrated recognition,
localization and detection using convolutional
networks. CoRR, abs/1312.6229, 2013.
[15] T. Serre, L. Wolf, S. M. Bileschi, M. Riesenhuber, and
T. Poggio. Robust object recognition with cortex-like
mechanisms. IEEE Trans. Pattern Anal. Mach. Intell.,
29(3):411–426, 2007.
[16] F. Song and J. Dongarra. Scaling up matrix computations
on shared-memory manycore systems with 1000
cpu cores. In Proceedings of the 28th ACM International
Conference on Supercomputing, ICS ’14, pages
333–342, New York, NY, USA, 2014. ACM.
[17] I. Sutskever, J. Martens, G. E. Dahl, and G. E. Hinton.
On the importance of initialization and momentum in
deep learning. In ICML, volume 28 of JMLR Proceedings,
pages 1139–1147. JMLR.org, 2013.
[18] C. Szegedy, A. Toshev, and D. Erhan. Deep neural networks
for object detection. In C. J. C. Burges, L. Bottou,
Z. Ghahramani, and K. Q. Weinberger, editors,
NIPS, pages 2553–2561, 2013.
[19] A. Toshev and C. Szegedy. Deeppose: Human
pose estimation via deep neural networks. CoRR,
abs/1312.4659, 2013.
[20] K. E. A. van de Sande, J. R. R. Uijlings, T. Gevers,
and A. W. M. Smeulders. Segmentation as selective
search for object recognition. In Proceedings of the
2011 International Conference on Computer Vision,
ICCV ’11, pages 1879–1886, Washington, DC, USA,2011. IEEE Computer Society.
[21] M. D. Zeiler and R. Fergus. Visualizing and understanding
convolutional networks. In D. J. Fleet, T. Pajdla,
B. Schiele, and T. Tuytelaars, editors, ECCV,
volume 8689 of Lecture Notes in Computer Science,
pages 818–833. Springer, 2014.