天天看点

论文笔记《Going deeper with convolutions》1409

Abstract

Inception网络的主要特点是在网络内提高计算资源的利用率。在有限的计算预算下,作者精心设计网络架构来增加网络的深度和宽度。

Introduction

目标检测领域增益来自:

  • 更深更大的网络模型
  • 深度框架与经典CV的结合,如R-CNN

移动和嵌入计算的需求使得算法的有效性(功耗和内存)日渐重要。

Related Work

从LeNet-5开始,卷积神经网络已经有一个标准的结构——卷积层堆积(有选择性地增加contrast normalization and max-pooling)紧跟着一个或多个全连接层。对于大数据集如ImageNet,最近的趋势是增加层的数目和层的尺寸,同时利用dropout来克服过拟合问题。

尽管担心max-pooling层会导致空间信息的丢失,卷积网络结构如【9】被成功用来定位、目标检测和人的姿态评估。受神经科学里灵长目动物视觉平层模型的灵感激发,Serre【15】等人利用一系列不同尺寸的固定Gabor滤波器来处理多尺度问题,与Inception模型类似。但是和Serre固定两层深度模型不同的是,Inception里所有的filters都是学习的。更进一步讲,Inception层被重复若干次,直至22层深度模型比如GoogLeNet模型。

Network-in-Network【12】是由Lin等人提出来的方法来增加神经网络表示能力的。当应用在卷积层时,该方法可以被视为额外的1x1卷积层和修正线性激活函数(ReLu)。这使它能容易地被整合到当前CNN框架内。在我们的框架内,我们用了很多这种策略。但是在我们的设置内,1x1卷积有两个目的,最关键的是它们主要被当做维度降低模块来减少计算瓶颈,不然的话会限制我们网络的尺寸。这在没有严重表现惩罚的情况下,不仅可以增加深度,也可以增加宽度。

当前目标检测的主流方法是R-CNN,由Girshick等人提出。R-CNN将整体检测问题分解成两个子问题:首先利用低层次信号如颜色和超像素连续性来获取可能的object proposals,在一个category-agnostic fashion,然后用CNN分类器来确定那些位置的目标种类。这样的两阶段方法作为杠杆作用在基于低层信号的bounding-box分割准确率和现代CNNs的高分类力量。我们在detection submission里采取了相似的流程,但是在两个阶段都探索提升,例如对更高的物体bounding box召回率的multi-box 预测,以及bounding box proposals 更好分类集成方法。

Motivation and High Level Considerations

提高深度网络表现的最直接的方式增加网络规模:包括网络深度和宽度。但是这种简单的解决方案有两大缺点。

大模型有很多数量的参数,使得网络更容易过拟合,尤其是在训练集中标签样本数目有限的情况下。然而高质量训练集的生成需要技巧,代价也比较昂贵。

另一个缺点是会极大增加计算资源。

解决这两个问题重要的方式是将全连接网络完全改成稀疏连接框架,甚至在卷积内部。除了模仿生物系统以外,也有坚实的理论基础优势(Arora等人的突破性工作【2】)。他们主要结果陈述了:如果数据集的概率分布能够被大且稀疏的深度网络表示,那么能够一层一层地去构建最优网络拓扑结构,方法是借助最后一层激活的相关性统计分析和高度相关性输出的神经元聚类。尽管严格的数学证明需要非常强的条件,但是这种陈述和著名的Hebbian原则(同时放电的神经元串联在一起,注:记忆力或许也可以通过该原则来解释)相呼应。这提醒我们,即使在实际应用时的宽松条件下,该基本思想也是可运用的。

令人消极的是,当涉及到在不均匀稀疏数据结构的数值运算时,今天的计算基础架构是非常低效的。即使在算术操作的数目减小100X情况下,查找的天花板和缓存丢失也占很大成分,以致于转向稀疏矩阵的方法并不有效。这种间隙被进一步拉大了,因为(稳步提升、高度调整、大量的库)允许稠密矩阵的超快运算,开拓了基本CPU或GPU硬件的微小细节。同时,不均匀稀疏模型需要更复杂的工程和计算基本架构。当前大多数视觉导向的机器学习系统利用卷积来实现空间域里的稀疏性。但是在浅层,卷积实现时是一种紧密连接到patch的聚合。传统上,自从【11】卷积神经网络在特征维度上采用随机和稀疏连接表,来打破对称性和提高学习。领域又趋向使用全连接【9】来更好的优化并行计算。结构的一致性、大量的filters以及更大的batch size允许采用有效的紧密计算。

这提出一个问题:是否有希望实现下一步即中间步骤。就像理论所建议的,一个网络结构能否利用额外的稀疏性(即使在filter水平),但是在紧密矩阵使用计算来开发我们当前硬件。大量稀疏矩阵计算的文献【3】建议:针对稀疏矩阵的计算,将稀疏矩阵分类到相对紧密的子矩阵似乎可以得到较好的实际表现。不难想到,在不久的将来,同样的方法可以被用来自动构建不均匀深度网络结构。

Inception结构作为第一个作者的案例研究,来评估一个复杂网络拓扑构建算法的假设输出,该复杂网络拓扑尝试接近一种稀疏结构(被【2】用于视觉网络);以及涉及密集已提供元素的假设输出结果。尽管是一个高度推测任务,仅仅过了两次拓扑的精确选择,我们已经看到相对【12】架构的平稳上涨。经过进一步学习率、超参数和训练方法的调节,在基于【6】和【5】的网络中,Inception架构在定位和目标检测中是非常有用的。有趣的是,尽管大多数原始架构选择被提出和仔细检测,他们至少都被证明是局部最优的。

但是我们仍需谨慎对待:尽管提出的架构在计算机视觉领域是成功的,至于它的质量是否能归功于构建它的指导原则,这仍然有待商榷。证明需要更多仔细的分析和验证:例如,对于视觉网络,是否基于下面描述原则的自动工具能够发现类似但更好的拓扑结构。最令人信服的证据将是,如果一个自动系统能创造出网络拓扑结构,该网络结构可以在其他领域产生相似的增益,利用相同的算法但是看起来非常不同的全局架构。最后,Inception架构的初始成功为未来该方向激动人心的研究提供了坚定的动力。

Architectural Details

Inception架构的主要想法是基于寻找出,在卷积视觉网络中一个局部最优稀疏结构怎样能被提供好的dense components所近似和取代。值得注意的是,平移不变假设意味着我们的网络将从卷积构造模块开始搭建。我们需要的是寻找到局部最优架构,然后空间上重复之。Arora等人【2】建议按层构建,这种方式要求研究人员对最后一层进行相关性分析并且将高度相关的单元聚类到一起。这些聚类形成了下一层的单元并且与前一层相连接。我们猜想前一层的每一个单元都和输入图像的某个区域相对应,并且这些单元被分组到滤波池中。在低级别层中(靠近输入)相关联的单元将聚焦到局部区域。这意味着我们最终以许多集中在单个区域的聚类结束,这些聚类能被下一层的1x1卷积所覆盖,就像【12】中所建议的。但是人们也会预期,有更小数目但空间覆盖更大的聚类,这些聚类可以被更大patch的卷积覆盖。并且随着越来越大的区域,卷积patch的数目会越来越少。为了避免patch对齐问题,当前Inception架构的实现被限制在1x1,3x3和5x5的滤波器尺寸,但是这样的决策更多的是基于便利而不是必需。这也意味着,推荐的架构是所有那样的层和他们的输出滤波池链接成单个输出向量,形成下一层的输入。除此以外,因为池化操作已经被证明是当前卷积网络成功的必需品,这也建议在每个这样的stage增加一个可选择的平行路径应该会有额外的好处。

因为这些Inception模块一层一层地叠加,他们的输出相关性必然是不一样的:因为更高抽象的特征被更高层获取,可预计他们的空间聚集度会降低,这也建议当我们移到更高层时,3x3和5x5卷积的比例应该增加。

上述模块(至少在这最原始的形式上)的一个大问题是即使不多数目的5x5卷积在有大量滤波器的深层卷积层中的代价也是几乎不可行的。一旦池化单元被增加到混合,这个问题变得更为明显:他们输出滤波器的数量等于前一层的滤波器数目。随着层次加深,池化层和卷积层输出的融合将会导致输出数目不可避免的增加。即使该架构可能包含优化的稀疏结构,这也将是非常低效的,导致在很少层内计算量爆炸。

这引出了提出架构的第二种想法:无论在哪个计算需求大量增加的地方,明智地应用维度降低和映射。这基于embedding的成功:即使低维度的embedding也可能包含许多相对大的图像块信息。但是,embeddings代表着紧密压缩形式的信息,而压缩的信息更难去建模。我们希望在大多数地方保持稀疏表征(就像【2】中情形所要求的),仅仅在不得不全体聚集时压缩信号。那就是,在昂贵的3x3和5x5卷积之前采用1x1卷积来降维。除了用于降维外,他们也包含了修正激活函数的作用。这使得1x1拥有双重目标。最后的结果如文中图2所描述。

总的来说,一个Inception网络是一个有上述类型的模块一个个堆积而成,同时偶尔stride=2的max-pooling来减半格点的分辨率。因为技术原因(训练时的内存效率),在相对高的层开始使用Inception模块,而在浅层保留传统的卷积模式看起来更有利。这不是严格需要的,简单反映出一些在我们当前实现中的架构低效。

继续阅读