Going deeper with convolutions—网络结构Inception、GoogleNet提出

摘要:
我们提出了一种代号为Inception的深层卷积神经网络体系结构,它负责在ImageNet大规模视觉识别挑战2014(ILSVRC14)中为分类和检测设置新的技术状态。该体系结构的主要特点是提高了网络内部计算资源的利用率。这是通过精心设计的实验实现的,该设计允许增加网络的深度和宽度,同时保持计算预算不变。为了优化质量,架构决策基于Hebbian原则和多尺度处理的直觉。我们在提交ILSVRC14时使用的一种特殊形式称为Google Net,它是一个22层深的网络,其质量是在分类和检测的背景下评估的。

1.引言
在过去的三年中,主要由于深度学习的进步,更具体的卷积网络[10],图像识别和目标检测的质量一直在以惊人的速度进步。一个令人鼓舞的消息是,这一进展的大部分不仅是更强大的硬件、更大的数据集和更大的模型的结果,而且主要是新思想、算法和改进的网络架构的结果。例如,在ILSVRC 2014竞赛中,除了同一竞赛的分类数据集用于检测目的外,没有使用任何新的数据源。我们提交到ILSVRC 2014的GoogLeNet实际比Krizhevsky等提出的AlexNet少12倍的参数,而且准确率更高。在对象检测方面,最大的收获并不仅仅来自于对深度网络或更大模型的利用,而是来自于深度架构和经典计算机视觉的协同作用,如Girshick等人的R-CNN算法。

另一个值得注意的因素是,随着移动和嵌入式计算的不断发展,我们的算法的效率-尤其是它们的功能和内存使用变得越来越重要。值得注意的是,本文提出的设计深层结构的考虑因素包括了这一因素,而不是完全固定在精确的数字上。在大多数实验中,这些模型被设计成在推理时保持15亿乘加的计算预算,因此它们最终不会成为纯粹的学术好奇心,即使是在大型数据集上,也可以以合理的成本用于现实世界。

在本文中,我们将重点研究一种用于计算机视觉的高效深层神经网络体系结构,代号为Inception,它的名称来源于Lin等人[12]在网络论文中的网络,并结合著名的“we need to go deeper”互联网模因[1]。在我们的案例中,“深度”一词有两种不同的含义:首先,我们以“Inception module”的形式引入了一个新的组织层次,并在更直接的意义上增加了网络深度。一般来说,人们可以将“Inception module”模型看作是[12]的逻辑顶点,同时从Arora等人[2]的理论工作中得到启发和指导。该架构的优势在ILSVRC 2014分类和检测挑战上得到了实验验证,在这方面它的性能明显优于当前的技术水平。

2.相关的工作
从LeNet-5[10]开始,卷积神经网络(CNN)通常有一个标准的结构-堆叠卷积层(后面可以选择对比度归一化或最大池化),然后是一个或多个完全连接的层。这一基本设计的变体在图像分类文献中很普遍,并在MNIST、CIFAR和最显著的ImageNet分类挑战[9,21]上取得了迄今为止最好的结果。对于较大的数据集(如Imagenet),最近的趋势是增加层的数量[12]和层的大小[21,14],同时使用dropout[7]来解决过度拟合的问题。

尽管人们担心最大池化层会导致精确的空间信息丢失,但与[9]相同的卷积网络结构也被成功地用于定位[9,14]、目标检测[6、14、18、5]和人体姿态估计[19]。受原始大脑皮质的神经科学模型的启发,Serreetal.[15]使用一系列不同大小的固定Gabor过滤器来处理多个尺度,类似于Inception模型。然而,与[15]中固定的两层深度模型相反,Inception模型中的所有过滤器都是学习的。此外,Inception层被重复多次,在GoogLeNet模型的情况下,导致了一个22层的深层模型。

网络中网络(Network-in-Network,Network-in-Network)是Lin等人提出的一种方法。[12]为了提高神经网络的代表性。当应用于卷积层时,该方法可以看作是额外的1×1卷积层,然后是典型的线性校正激活[9]。这使得它可以很容易地集成到当前CNN的管道中。我们在体系结构中大量使用这种方法。然而,在我们的环境中,1×1卷积有双重用途:最重要的是,它们主要用作降维模块,以消除计算瓶颈,否则将限制我们网络的规模。这样不仅可以增加网络的深度,还可以增加网络的宽度,而不会造成严重的性能损失。

当前最主要的目标检测方法是Girshick等人提出的基于卷积神经网络(R-CNN)的区域检测方法。[6]。R-CNN将整个检测问题分解为两个子问题:首先以一种与类别无关的方式对潜在目标利用诸如颜色和超像素一致性等低级线索,然后使用CNN分类器来识别这些位置上的对象类别。这种两阶段的方法利用了低层次线索的边界框分割的准确性,以及最先进的CNN的强大的分类能力。我们采用了类似的管道,但在这两个阶段都进行了增强,例如,多框[5]预测更高的对象边界框召回率,以及集成方法,以更好地分类边界框。

3.动机和高层次的考虑
提高深度神经网络性能最直接的方法是增大其大小。这包括增加网络的深度(层数)和宽度(每层的节点数)。这是一种训练高质量模型的简单而安全的方法,特别是考虑到有大量标记的训练数据可用。然而,这个简单的解决方案有两个主要缺点。

较大的尺寸通常意味着较多的参数,这使得扩大的网络更容易过拟合,特别是在训练集中有标记的示例数量有限的情况下。
这可能成为一个主要的瓶颈,因为创建高质量的训练集可能是棘手和昂贵的,特别是如果需要专业的人工评级器来区分像ImageNet中的那些细粒度的可视类别(即使在1000类ILSVRC子集中),如图1所示。
在这里插入图片描述

统一增加网络规模的另一个缺点是对计算资源的使用急剧增加。例如,在深度视觉网络中,如果将两个卷积层链接在一起,其滤波器数量统一增加都会导致计算量的二次增加。如果所增加的容量使用效率低下(例如,如果大多数权重最终接近于零),则会浪费大量计算。由于在实践中,计算预算总是有限的,因此计算资源的有效分配比不加区别地增加大小更可取,即使主要目标是提高结果的质量。

解决这两个问题的根本方法是最终从完全连接的体系结构过渡到稀疏连接的体系结构,甚至在卷积中也是如此。除了模仿生物系统外,由于Arora等人的开创性工作,这也具有更坚实的理论基础的优势。他们的主要结果表明,如果数据集的概率分布可以用一个大型的、非常稀疏的深层神经网络来表示,那么通过分析最后一层的激活和具有高度相关输出的聚类神经元的相关统计,就可以构造出最优的网络拓扑。尽管严格的数学证明需要非常强的条件,但这一说法与众所周知的Hebbian原则-神经元一起发射、连接在一起-产生了共鸣,这表明即使在不那么严格的条件下,这种潜在的想法在实践中也是适用的。

缺点是,今天的计算基础设施在非均匀稀疏数据结构的数值计算方面效率很低。即使算法运算数减少了100×,查找和缓存丢失的开销仍然占主导地位,因此切换到稀疏矩阵是不会有回报的。通过使用稳定改进的、高度调优的数值库,允许极其快速的密集矩阵乘法,利用底层CPU或GPU硬件的微小细节,进一步拉大了这一差距。
此外,非均匀稀疏模型需要更复杂的工程和计算基础设施。目前大多数面向视觉的机器学习系统都是利用空间域中的稀疏性,通过卷积来实现的。但是,卷积是作为到较早层中的修补程序的密集连接的集合来实现的。自从[11]为了打破对称性和提高学习效率,ConvNet传统上在特征维数中使用随机和稀疏连接表,为了更好地优化并行计算,这种趋势又回到了与[9]的完全连接上。该结构的均匀性和大量的滤波器和更大的批量大小允许利用有效的密集计算。

这就提出了一个问题:下一步,中间一步是否还有希望:按照理论的建议,利用额外的稀疏性(即使在过滤器级别),而是利用我们目前的硬件,计算密集矩阵。关于稀疏矩阵计算的大量文献(例如,[3])表明,将稀疏矩阵聚类成相对稠密的子矩阵,倾向于给出稀疏矩阵乘法的最新实用性能。在不久的将来,类似的方法将被用于非统一深度学习体系结构的自动化构建,这似乎并不牵强。

Inception架构最初是作为第一作者的一个案例来评估一个复杂的网络拓扑结构构建算法的假设输出,该算法试图为视觉网络近似[2]所隐含的稀疏结构,并通过密集的、可读的可用组件来覆盖所假设的结果。尽管这是一项高度投机性的工作,但仅在对拓扑的精确选择进行了两次迭代之后,我们就可以看到相对于基于[12]的参考体系结构,我们已经获得了一定的收益。在进一步调整学习速率、超参数和改进的训练方法之后,我们发现,作为[6]和[5]的基础网络,由此产生的Inception体系结构在定位和对象检测上下文中特别有用。有趣的是,虽然大多数最初的架构选择都受到了质疑和彻底的测试,但它们至少是局部最优的。

然而,还有一个原因很奇怪:尽管这个提议已经成为计算机视觉的一个成功案例,但是它的质量是否可以归因于导致它的构建的指导原则仍然是一个问题。要确保这一点,就需要更透彻的分析和验证:例如,如果基于下面描述的原理的自动化工具能够找到类似的拓扑结构,那么VISION网络的拓扑结构就会更好。最令人信服的证据是,如果一个自动化系统将创建网络拓扑,从而在使用相同算法的其他领域中获得类似的收益,但具有非常不同的全局体系结构。至少,Inception体系结构最初的成功为在这个方向上令人兴奋的未来工作提供了坚实的动力。

4.架构细节

Inception体系结构的主要思想是找出卷积视觉网络中最优的局部稀疏结构如何被容易获得的密集组件所逼近和覆盖。请注意,假设翻译不变性意味着我们的网络将从卷积构建块构建。我们所需要的就是找到最优的局部构造并在空间上重复它。Arora等人。[2]提出了一种逐层结构,即对最后一层的相关统计数据进行分析,并将其聚为一组具有较高相关性的单元。这些簇构成下一层的单位,并连接到上一层中的单位。我们假设来自前一层的每个单元对应于输入图像的某个区域,这些单元被分组到滤波器组中。在较低的层次(接近输入的层次),相关单位将集中在当地区域。这意味着,我们最终会有许多团簇集中在一个区域,它们可以在下一层被一层1×1的卷积所覆盖,如[12]中所建议的。然而,人们也可以预期,在更大的斑块上可以被卷积覆盖的空间分布更广的星系团的数量将会减少,而在更大的区域上的斑块数量将会减少。为了避免补丁对齐问题,Inception体系结构的当前版本仅限于筛选大小为1×1、3×3和5×5的过滤器,但是该决定更多地是基于便利性而不是必要性。这也意味着建议的体系结构是所有这些层的组合,它们的输出滤波器组连接到一个单独的输出向量中,形成下一阶段的输入。此外,由于集合操作对于当前最先进的卷积网络的成功至关重要,它建议在每个这样的阶段增加一条备选的并行集合路径也应具有额外的有益效果(见图2(A)。

由于这些“先启模块”相互叠加,它们的输出相关统计数据必然会有所不同:由于较高的抽象特征被较高的层捕获,它们的空间集中度预计会降低,这意味着随着我们向更高的层移动,3×3和5×5卷积的比率应该增加。

上述模块的一个大问题-至少在这种‘幼稚形式·’中是这样的-即使是数量不多的5×5卷积,也可能在具有大量滤波器的卷积层上昂贵得令人望而却步。一旦将池单元添加到混合中,这个问题就变得更加明显:它们的输出过滤器数量等于前一阶段的过滤器数量。将合并层的输出与卷积层的输出合并将不可避免地导致逐级输出的数量增加。即使这个体系结构可能包含最优的稀疏结构,它也会非常低效,导致在几个阶段内的计算爆炸。
在这里插入图片描述
**这就引出了所提出的体系结构的第二个想法:在计算需求增加太多的地方,明智地应用维数还原和投影。**这是基于嵌入的成功:即使是低维度的嵌入也可能包含大量关于相对较大的图像补丁的信息。然而,嵌入以密集的、压缩的形式表示信息,而压缩的信息很难建模。我们希望保持我们的表示在大多数地方是稀疏的(根据[2]条件的要求),并且只在需要大量聚集信号时压缩它们。即1×1用于计算的卷积之前减少昂贵的3×3和5×5卷积计算。除了作为补偿,它们还包括使用校正的线性激活,使它们具有双重用途。最终结果如图2(b)所示。

一般来说,Inception网络是由上述类型的模块相互堆叠而成的网络,偶尔会有最大池化层,步长为2,可将网格的分辨率降低一半。由于技术原因(训练期间的内存效率),似乎只在较高的层开始使用“Inception”模块,而以传统的卷积方式保持较低的层是有益的。这并不是绝对必要的,只是反映了我们目前在实施基础设施方面存在的一些效率低下的问题。

该体系结构的主要优点之一是,它允许在每个阶段显着增加单元数量,而不会导致计算复杂性的失控膨胀。降维的广泛应用允许屏蔽最后一级的大量输入滤波器到下一层,首先降低它们的维数,然后将它们与大的补丁大小卷积在一起。这种设计的另一个实际有用的方面是,它与直觉一致,即视觉信息应该在不同的尺度上进行处理,然后进行聚合,以便下一阶段可以同时从不同的尺度上提取特征。

通过改进计算资源的使用,既可以增加每个阶段的宽度,也可以增加阶段的数量,而不会造成计算困难。利用Inception体系结构的另一种方法是创建稍微低劣但计算上更便宜的版本。我们发现,所有包含的旋钮和杠杆都允许对计算资源进行受控平衡,从而使网络的速度比具有非Inception架构的类似性能网络快2−3倍,但此时这需要仔细的手动设计。

5.GoogleNet
在ILSVRC14比赛中,我们选择了GoogLeNet作为我们的团队名称。这个名字是对Yann LeCuns开创性的LeNet5网络[10]的敬意。我们还使用GoogleNet来表示竞争提交中所使用“Inception”架构的特定化身。我们还使用了更深入、更广泛的Inception网络,它的质量稍差一些,但将其添加到集成中似乎能略微提高结果。我们省略了该网络的细节,因为我们的实验表明,确切的结构参数的影响相对较小。在这里,为了演示的目的,表1描述了最成功的特定实例(名为Google LeNet)。在我们的集成中,7个模型中的6个使用了完全相同的拓扑结构(使用不同的采样方法进行训练)。

GoogleNet是Inception架构的化身
所有的卷积,包括在Inception模块中的卷积,都使用经过修正的线性激活。在我们的网络中,接受场的大小是224×224,采用RGB颜色通道进行平均相减。“#33 reduce”和“#55 reduce”表示在3×3和5×5卷积之前使用的还原层中1×1个滤波器的数目。

该网络的设计考虑到了计算效率和实用性,因此推理可以在单独的设备上运行,甚至包括那些计算资源有限的设备,特别是具有低内存占用的设备。如果仅计算带参数的层,则网络深度为22层(如果也包括池化层,则为27层)。用于构建网络的层(独立构建块)的总数约为100层。然而,这个数字取决于所使用的机器学习基础设施系统。分类器之前平均池的使用基于[12],尽管我们的实现不同于使用额外的线性层。这使得调整和微调我们的网络为其他标签集很容易,它最大的优点是方便,我们不希望有重大的影响。结果发现,从完全连接层到平均连接层的移动使TOP-1精度提高了约0.6%,然而,即使在移除完全连接的层之后,dropout的使用仍然是必不可少的。

考虑到网络相对较大的深度,以有效的方式在所有层中传播梯度的能力是一个令人关注的问题。一个有趣的见解是,相对较浅的网络在这项任务上的强大性能表明,网络中间的层所产生的特征应该是非常有鉴别力的。通过增加连接到这些中间层的辅助分类器,我们期望在分类器的较低阶段鼓励差别,增加被传播回来的梯度信号,并提供额外的规则化。这些分类器以更小的卷积网络的形式放置在Inception(4a)和(4d)模块的输出之上。在训练过程中,它们的损失被加到网络的总损失中,并带有一个折扣权重(辅助分类器的损失被加权0.3)。在推理时,这些辅助网络被丢弃。

包括辅助分类器在内的侧面额外网络的准确结构如下:

带有5*5尺寸的平均池化和步长为3,导致一个4×4×512输出(4 a)和4×4×528(4 d)阶段。

(a)128个1*1卷积过滤器作为降维和纠正线性激活
(b)带有1024个单元的全连接层,并且线性激活矫正
(c)Dropout层带有70%的下降率
(d)以softmax 损失作为分类器的线性层(预测与主分类器相同的1000个类,但在推断时删除)。

6.训练方法
7.ILSVRC 2014分类挑战赛设置和结果
在这里插入图片描述
8.ILSVRC 2014检测挑战赛设置和结果
在这里插入图片描述
9.结论
我们的结果似乎提供了一个可靠的证据,即用现成的密集构建块逼近预期的最优稀疏结构是改善计算机视觉神经网络的一种可行方法。这种方法的主要优点是,与较浅和较窄的网络相比,在计算需求适度增加的情况下获得了显著的质量增益。还要注意,我们的检测工作是竞争性的,尽管没有使用上下文,也没有执行边界框回归,这一事实进一步证明了Inception体系结构的优势。虽然我们期望通过更昂贵的具有相同深度和宽度的网络来实现类似的结果质量,但我们的方法提供了确凿的证据,表明迁移到更稀疏的体系结构总体上是可行的和有用的。这表明今后有希望在[2]的基础上,以自动化的方式创造更稀疏和更精细的结构。

1.Going deeper with convolutions-GoogleLeNet(阅读)
2.2014-GoogleNet原文
3.理解各种各样的CNN架构
4.谷歌Inception介绍-吴恩达网易云

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值