GoogLeNet论文详解

< Going Deeper with Convolutions >
Christian Szegedy 1 , Wei Liu 2 , Yangqing Jia

摘要

        本文提出了一个代号为Inception的深度卷积神经网络架构,这种架构的主要特点是提高了网络内部计算资源的利用率。通过精心设计,增加了网络的深度和宽度,同时保持计算预算不变。 GoogLeNet是Inception的一个具体实现,使用它在分类和检测中进行了评估。

1. 介绍

   过去几年,深度卷积网络的分类和检测能力提高了很多,主要是因为 新想法,算法和改进的网络架构导致的结果。GoogLeNet比AlexNet参数少12倍,但是精确度更高。在物体检测方面,效果提升最大的不是单纯来自于更大更大深度网络的应用,而是来自深层架构和经典计算机视觉的协同作用,如R-CNN。

     在我们的例子中,“深”这个词有两个不同的含义:首先,就我们引入组织的新层次而言,它是以“Inception”模块的形式出现的,它本身不止一层,这更直接的意义上的增加的网络深度。其二,网络的总层数很深。

2. Related Work
很多网络都是由LeNet5和AlexNet变形发展而来。对于较大的数据集,如Imagenet,最近的趋势是增加层数[12]和每层的大小,同时使用dropout来解决过拟合问题。尽管担心max-pooling层会导致精确的空间信息丢失,但与AlexNet相同的卷积网络架构也已经成功地用于定位,目标检测和人类姿势估计。
       Inception架构中的所有滤波器都是学习的。 此外,Inception重复多次,导致了22层深的模型。在NIN中,额外的1×1卷积层被添加到网络中,增加其深度,增强函数的表达能力。在本论文中大量使用了1x1的卷积核。在这里1×1卷积有双重目的:1、最多关键一个的是,它们主要用作降维模块来消除计算瓶颈,否则会限制我们网络的规模。使用1x1卷积核之后使得不仅仅只是增加了深度,而且还增加了我们网络的宽度而没有显着的性能损失。
        目前的物体检测技术最先进的技术是是Girshick等人的R-CNN方法R-CNN将整个 检测问题分解为两个子问题:利用低级线索(如颜色和纹理),以类别无关的方式生成目标定位建议,并使用CNN分类器识别这些位置的目标类别。 这种两阶段方法利用了使用低层线索的边界框分割的准确性,以及最先进的CNN的强大的分类能力。 我们在检测方案中采用了类似的流水线,但在两个阶段探索使用了额外的增强功能,例如多框[5]预测用于更高的目标边界框召回率,以及集合方法用于更好地对边界框进行更好的分类。

3. 动机和高层次考虑
提高深度神经网络性能的最直接的方法是增加它们的大小(深度--网络层数和宽度--每层的卷积核个数)。但是这样会带来两个缺点:1、更大的尺寸通常意味着更多的参数,这使得放大的网络更容易出现过度拟合,特别是如果训练集中标记示例的数量有限的时候;2、计算资源的使用大大增加,特别是如果增加的容量被低效地使用(例如,如果大多数权重最终接近零),那么大部分计算就会被浪费,相当于做了无用功。解决这两个问题的一个基本方法是引入稀疏性,并用稀疏元素替换全连接层,即使在卷积中也是如此。目前大多数深度卷积模型仅使用卷积来利用空间域中的稀疏性(部分连接)。使用卷积核级别的稀疏性??
        Inception架构开始作为一个案例研究,用于评估复杂的网络拓扑结构算法的假设输出,该算法试图逼近视觉网络[2]暗示的稀疏结构,并通过密集的,易于获得的组件覆盖假设的结果。 经过一些调整,差距扩大了,并且Inception证明在作为定位和目标检测的基础网络时特别有用。

4.  Architectural Details
     假设来自较早层的每个单元对应于输入图像的一些区域,这些单元被分组成滤波器组。 在较低层(接近输入的那些层)相关单元将集中在局部区域。 因此,最终将有大量的聚类集中在一个单独的区域中,并且它们可以被下一层中的1×1卷积层所覆盖(应该时越往后看到的区域越大的意思吧?)。 但是,人们也可以期望卷积可以覆盖更空间分布的簇通过在更大的块上进行卷积 ,并且在越来越大的区域上这个patches块的数量会减少。 为了避免patch-alignment问题,Inception体系结构的当前版本被限制为1×1,3×3和5×5的过滤器大小; 这个决定更多的是基于便利性,不是必须这样做。 然后结合所有这些层的输出 成一个单一的输出向量,形成下一阶段的输入。 此外,由于池化操作对于当前卷积网络的成功至关重要,因此建议在每个这样的阶段(inception之后)增加一个池化层也应该具有额外的有益效果。
        由于这些“inception”堆叠在每个模块的顶部 ,他们的输出相关统计量必然会有所不同: 由于较高层的特征被较高层所捕获,所以它们的空间集中度预计会下降。 这表明随着移动到更高层,3×3和5×5卷积(目前没有考虑把5x5分解成两个3x3)的比例应该增加。
         至少在这种初始形式下(没有考虑把5x5分解成两个3x3),上述模块的一个大问题是,即使是数量适中的5×5卷积,在具有大量过滤器的卷积层的顶部也可能过于昂贵。 一旦将池化单元添加进去的时候,这个问题变得更加明显:输出过滤器的数量等于前一阶段的过滤器数量。 输出的合并 与卷积层输出的池化层会导致阶段到阶段的输出数量不可避免地增加。 虽然这个架构可能涵盖最佳稀疏结构,它也会时很低效的,会导致在几个阶段内的计算爆炸,不利于深度增加。
    使用1x1卷积核用来减少参数并且增加了非线性,具有双重作用。一般来说,Inception网络是由上述类型的模块组成的一个网络,彼此堆叠在一起,偶尔使用步长为2的最大池化层将网格的分辨率减半。出于技术原因(训练期间的存储效率),开始仅在较高层使用Inception模块,而以传统卷积方式保留较低层时似乎是有益的,这不是必须这样做。该体系结构的一个有用的方面是,它允许在每个阶段显着增加单元的数量(增加inception的宽度),而不会在后期的计算复杂性中产生不受控制的爆炸,这是因为使用了降维。计算资源的改进(怎么改进的?)允许增加每个inception的宽度以及inception的数量而不会计算困难。

5. GoogLeNet
所有卷积,包括Inception模块中的卷积,都使用整流线性激活relu。我们网络中的感受野大小为RGB颜色的224×224空间,具有零均值。 “#3×3减少”和“#5×5减少”代表减少层中1×1滤波器在3×3和5×5卷积之前使用的数量能看见之后投影层中1×1滤镜的数量内置的最大池在池proj列中。所有这些还原/投影层都使用整流线性激活好。
GoogLeNet论文详解_第1张图片
尽管有一个额外的线性层,这里仍按照NIN的思想,在分类之前使用全局均值池化。线性层可以使这个模型很容易用于其他的数据集(为什么?),这里主要使为了方便才使用。跟NIN一样,尽管移除了fc层,仍使用dropout,这样可以提高精确度。由于浅的网络变现还不错,说明网络中间层次产生的特征应该是非常具有识别性的。通过添加连接到这些中间层的辅助分类器,预计分类器中较低阶段的区分。这被认为是在提供正规化的同时对抗消失梯度问题。这些分类器采用更小的卷积网络形式,放在初始(4a)和(4d)模块的输出之上。但是后来的实验表明这种辅助分类器的效果比较小,只能提升0.5%左右。
GoogLeNet论文详解_第2张图片
辅助分类器的结构如下:
•一个5×5,s=3的平均池化层,在inception 4a的输出是4×4×512,在(4d)阶段的输出是4×4×528
•一层128个滤波器的1×1卷积,用于降低维度和校正线性激活。
•一个有1024个单元的全连接层,并进行纠正线性激活relu。
•一个dropout层,系数是0.7。
•具有softmax损失的线性层作为分类器(预测1000个类)。

6.训练方法
训练使用0.9动量的异步随机梯度下降算法,学习率每8个周期降低4%。

7. ILSVRC 2014分类挑战设置和结果
在测试过程中采用了一系列技术来获得更高的性能,分别在下面:

训练了7个模型进行平均结果输出,他们的参数相同,只是图片的采用方式和图片输入顺序不同,等等方法。

9.结论
我们的结果证明了,通过使用容易获得的密集块来近似预期的最优稀疏结构是改进用于计算机视觉的神经网络的可行方法。 与较浅和较窄的体系结构相比,此方法的主要优势是在计算要求适度增加的情况下获得显着的质量增益(提高了计算资源的利用率)。 我们的目标检测工作尽管没有利用上下文,也没有执行边界框回归,但仍具有竞争力,这表明了Inception体系结构的优势。
     对于分类和检测,预计如此 类似的深度和宽度的非入侵型网络可以获得相似的结果质量。 尽管如此,我们的方法提供了可靠的证据,表明向更稀疏的架构转变是一种可行和有用的想法。 这表明未来的工作是在[2]的基础上以自动化的方式创建更稀疏和更精细的结构,以及应用初始观点 架构到其他领域。

你可能感兴趣的:(GoogLeNet论文详解)