经典分类模型(三):GoogleNet_Inception_v1(2014CVPR)

Going deeper with convolutions_GoogleNet_Inception v1_2014CVPR

总结

**显然通过使用一种稀疏的层次结构而非使用像FC/Conv这样的全级联式的结构有助于计算开销的降低。**而且一旦这种稀疏的结构设计良好可以有效地扩大表达特征的范围,从而更有效地对图片信息进行表达。可过于稀疏的结构计算一般都不大高效(当下用于CPU/GPU上的一些高效加速库多是在密集计算上进行优化的),同时也会带来较多的cache miss及内存地址非连续搜索的overhead。最终GoogleNet团队选择了中间路线即使用由密集计算子结构组合而成的稀疏模块来用于特征提取及表达,这就是用于构建Inception v1的Inception module如下图中a所示。

其中1x1/3x3/5x5这三种Conv kernels的选择决定是基于方便(因为这几种kernels用的多啊,而且比较容易对齐,padding)来定的(汗)。

图a的这个基本module显然在计算开销上隐藏着重大问题即它的输出将每个不同尺度的conv的输出级连起来用于下一个module的输入。这势必会招至计算量的指数级增加。因此作者借鉴Network in Network中的idea,在每个子conv层里使用了1x1的conv来作上一层的输入feature maps的channels数缩减、归总。如此每个Inception module里的计算都由各自的1x1 conv来隔离,从而不会像传统CNN深度模型那样随着深度增加其计算量也指数级增加。这就是最终用于构建Inception 网络的基础模块inception即图b。

参考: https://www.jianshu.com/p/

Abstract

我们提出了一种代号为Inception的深度卷积神经网络体系结构,该体系结构负责为ImageNet大规模视觉识别挑战赛2014(ILSVRC14)设置分类和检测的新技术水平。 该体系结构的主要特点是网络内部计算资源的利用率得到提高。 这是通过精心设计的设计实现的,该设计允许在保持计算预算不变的情况下增加网络的深度和宽度。 为了优化质量,架构决策基于Hebbian原则和多尺度处理的直觉。 我们提交给ILSVRC14的一种具体化身叫GoogLeNet,它是一个22层的深度网络,其质量在分类和检测的背景下进行评估。

1 Introduction

在过去的三年中,主要是由于深度学习的发展,更具体地是卷积网络[10],图像识别和对象检测的质量一直在飞速发展。一个令人鼓舞的消息是,大部分进展不仅是功能更强大的硬件,更大的数据集和更大的模型的结果,而且主要是新思想,算法和改进的网络体系结构的结果。除了用于检测目的的同一个比赛的分类数据集以外,例如,ILSVRC 2014比赛的前几名均未使用新的数据源。实际上,我们向ILSVRC 2014提交的GoogLeNet提交的参数实际上比两年前Krizhevsky等人[9]的获奖架构少了12倍,但准确性却更高。在对象检测中最大的收获不是来自单独使用深度网络或更大的模型,而是来自深度架构和经典计算机视觉的协同作用,例如Girshick等人的R-CNN算法[6]。

另一个值得注意的因素是,随着移动和嵌入式计算的不断发展,我们算法的效率,尤其是其功能和内存使用,变得越来越重要。 值得注意的是,导致本文设计的深层体系结构的考虑因素包括此因素,而不是单纯地将精度数字固定下来。 对于大多数实验,这些模型的设计目的是在推理时保持15亿次乘法运算的计算预算,这样它们就不会成为纯粹的学术好奇心,而是可以在现实世界中使用,甚至 在大型数据集上,价格合理。

在本文中,我们将专注于一种有效的用于计算机视觉的深度神经网络体系结构,其代号为Inception,该结构的名称源自Lin等人[12]在网络论文中的网络以及著名的“我们需要更深入”。 网络模型[1]。 在我们的案例中,“深度”一词有两种不同的含义:首先,在某种意义上,我们以“初始模块”的形式引入了新的组织层次,在更直接的意义上是网络的扩大 深度。 通常,人们可以将Inception模型视为[12]的逻辑高潮,同时可以从Arora等人[2]的理论工作中获得启发和指导。 该架构的优势在ILSVRC 2014分类和检测挑战中经过实验验证,在此方面其性能明显优于现有技术。

2 Related Work

从LeNet-5 [10]开始,卷积神经网络(CNN)通常具有一种标准结构-堆叠的卷积层(可选地,然后进行对比度归一化和最大合并),然后是一个或多个完全连接的层。这种基本设计的变体在图像分类文献中很普遍,迄今为止,在MNIST,CIFAR上,以及在ImageNet分类挑战中,其效果最好[9,21]。对于较大的数据集(例Imagenet),最近的趋势是增加层数[12]和层大小[21、14],同时使用辍学[7]解决过度拟合的问题。

尽管担心最大池化层会导致丢失准确的空间信息,但与[9]相同的卷积网络体系结构也已成功用于定位[9,14],对象检测[6、14、18、5]和人类姿势估计[19]。受灵长类动物视觉皮层神经科学模型的启发,Serre等人[15]使用了一系列不同大小的固定Gabor滤波器,以处理多个尺度,类似于Inception模型。但是,与文献[15]的固定2层深度模型相反,学习了Inception模型中的所有滤波器。此外,在Inception层中重复了很多次,在GoogLeNet模型的情况下,导致了22层深度模型。

网络中网络是Lin等人提出的一种方法。 [12]为了增加神经网络的表示能力。当应用于卷积层时,该方法可以看作是附加的1×1卷积层,通常是经过整流的线性激活[9]。这使它可以轻松集成到当前的CNN管道中。我们在体系结构中大量使用此方法。但是,在我们的设置中,1×1卷积具有双重目的:最关键的是,它们主要用作降维模块以消除计算瓶颈,否则将限制我们网络的规模。这不仅增加了网络的深度,而且还增加了网络的宽度,而不会造成明显的性能损失。

当前用于对象检测的领先方法是Girshick等人[6]提出的带卷积神经网络区域(R-CNN)。 R-CNN将整体检测问题分解为两个子问题:首先以类别不可知的方式将低级提示(例如颜色和超像素一致性)用于潜在的对象建议,然后使用CNN分类器在那些位置识别对象类别。这种两阶段方法利用了具有低级提示的包围盒分割的准确性以及最新的CNN的强大分类能力。我们在检测提交中采用了类似的流程,但是在两个阶段都进行了改进,例如针对更高对象边界框召回的多框[5]预测,以及对边界框建议进行更好分类的集成方法。

3 Motivation and High Level Considerations

在这里插入图片描述
改善深度神经网络性能的最直接方法是增加其大小。这包括增加网络的深度(级别数)及其宽度:每个级别的单元数。这是训练高质量模型的一种简单而安全的方法,特别是考虑到有大量标记的训练数据的可用性。但是,这种简单的解决方案具有两个主要缺点。

**较大的尺寸通常意味着大量的参数,这使得扩大的网络更容易过度拟合,尤其是在训练集中标记的示例数量有限的情况下,这可能会成为主要瓶颈,**因为创建高质量的训练集会既棘手又昂贵,特别是如果需要专家级评估人员来区分细粒度的视觉类别(例如ImageNet(甚至在1000级ILSVRC子集中))时,如图1所示。

统一增加网络大小的另一个缺点是计算资源的使用急剧增加。例如,在深度视觉网络中,如果将两个卷积层链接在一起,则其滤波器数量的任何均匀增加都会导致计算量的平方增加。如果增加的容量使用效率不高(例如,如果大多数权重最终接近于零),那么就会浪费大量计算量。由于实际上计算预算总是有限的,因此即使主要目的是提高结果的质量,也要有效分配计算资源,而不是随意增加大小。

**解决这两个问题的根本方法是最终从完全连接的架构过渡到稀疏的连接架构,甚至在卷积内部也是如此。**除了模仿生物系统之外,由于Arora等人的开创性工作,这还将具有更牢固的理论基础的优势。 [2]。他们的主要结果表明,如果数据集的概率分布可以由大型的,非常稀疏的深度神经网络表示,则可以通过分析激活的相关性统计数据逐层构建最佳网络拓扑。最后一层将具有高度相关输出的神经元聚集在一起。尽管严格的数学证明要求非常严格的条件,但这一陈述与众所周知的Hebbian原理(将神经元一起发射,连接在一起)产生共鸣这一事实表明,其基本思想是即使在不太严格的条件下也适用。

不利的一面是,今天的计算基础架构在对非均匀稀疏数据结构进行数值计算时效率很低。即使算术运算的数量减少了100倍,查找和缓存未命中的开销仍然占主导地位,以至于切换到稀疏矩阵都不会奏效。通过使用稳定改进的,经过高度调整的数值库,利用底层CPU或GPU硬件的微小细节,可以实现极快的密集矩阵乘法,从而进一步拉大了差距[16、9]。而且,非均匀的稀疏模型需要更复杂的工程和计算基础结构。当前大多数面向视觉的机器学习系统仅通过使用卷积就在空间域中利用稀疏性。但是,卷积被实现为到较早层中补丁的密集连接的集合。自从[11]以来,ConvNets就一直在特征维度上使用随机和稀疏连接表,以便打破对称性并改善学习效果,[9]则将趋势改回完全连接,以便更好地优化并行计算。结构的均匀性和大量的过滤器以及更大的批处理大小允许利用有效的密集计算。

这就提出了一个问题,即是否有下一步的中间步骤的希望:如理论所建议的那样,即使在滤波器级别也利用了额外的稀疏性,但通过利用密集矩阵上的计算来利用我们当前的硬件。关于稀疏矩阵计算的大量文献(例如[3])表明,将稀疏矩阵聚类为相对密集的子矩阵往往会为稀疏矩阵乘法提供最新的实用性能。认为不久的将来将采用类似的方法来自动构建非统一的深度学习架构似乎并不为过。

但是,必须谨慎:尽管所提出的体系结构已经成功地实现了计算机视觉,但是否可以将其质量归因于导致其构建的指导原则仍然值得怀疑。 确保将需要进行更彻底的分析和验证:例如,基于以下所述原理的自动化工具是否会为视觉网络找到相似但更好的拓扑。 最有说服力的证明是,如果一个自动化系统创建的网络拓扑结构使用相同的算法,但在全局架构上却大不相同,从而在其他域中获得相似的收益。 至少,Inception架构的最初成功为沿着这个方向激动人心的未来工作提供了坚定的动力。

4 Architectural Details

Inception体系结构的主要思想是基于找出卷积视觉网络中最佳局部稀疏结构的近似值,并通过易于使用的密集组件来覆盖它。请注意,假设平移不变意味着我们的网络将由卷积构建块构建。我们所需要的只是找到最佳的局部构造并在空间上进行重复。 Arora等。文献[2]提出了一种逐层结构,其中应分析最后一层的相关统计量并将其聚类为具有高相关性的单元组。这些聚类构成了下一层的单元,并与第二层的单元相连。上一层。我们假设来自较早层的每个单元对应于输入图像的某些区域,并且这些单元被分组为滤镜组。在较低的层(靠近输入层),相关单元将集中在局部区域。这意味着,我们最终会导致许多簇集中在一个区域中,并且可以在下一层中用1×1卷积层覆盖它们,如[12]中所建议。但是,人们也可以预期,在较大的斑块上可以通过卷积覆盖的空间分布更分散的簇数量会更少,而在越来越大的区域上,斑块的数量将会减少。为了避免补丁对齐问题,Inception体系结构的当前化身被限制为1×1,3×3和5×5的过滤器大小,但是此决定更多地基于便利性而不是必要性。这也意味着建议的体系结构是所有这些层的组合,它们的输出滤波器组被串联到单个输出向量中,形成下一级的输入。另外,由于池化操作对于在当前先进的卷积网络中取得成功至关重要,因此表明在每个这样的阶段添加替代并行池化路径也应具有额外的有益效果(见图2(a))。

由于这些“ Inception模块”彼此堆叠,因此它们的输出相关性统计数据必然会发生变化:随着更高层捕获更高抽象度的特征,预计它们的空间集中度会降低,表明3×3与随着我们移到更高的层,5×5卷积应该增加。
在这里插入图片描述
至少以这种简单形式,上述模块的一个大问题是,即使是数量有限的5×5卷积,在具有大量过滤器的卷积层之上,也可能是昂贵的。一旦将池单元添加到混合中,此问题将变得更加明显:它们的输出过滤器数量等于上一阶段的过滤器数量。合并层的输出与卷积层的输出的合并将导致不可避免地增加每个阶段的输出数量。即使此体系结构可能涵盖了最佳的稀疏结构,它也会非常低效地进行处理,从而导致在几个阶段内出现计算爆炸。

这导致了所提出的体系结构的第二个想法:明智地应用尺寸减少和投影,否则计算需求会增加太多,这基于嵌入的成功:即使是低维的嵌入也可能包含很多有关相对较大的信息图像补丁。但是,嵌入以密集,压缩的形式表示信息,并且压缩的信息很难建模。我们想在大多数地方保持表示稀疏(根据[2]的条件要求),并且仅在必须将它们汇总时才压缩信号。也就是说,在昂贵的3×3和5×5卷积之前,使用1×1卷积来计算缩减量。除了用作减少量外,它们还包括使用整流线性激活,使其具有双重用途。最终结果如图2(b)所示。

**通常,Inception网络是由彼此堆叠的上述类型的模块组成的网络,偶尔具有最大步距为2的最大池化层,以将网格的分辨率减半。**出于技术原因(训练过程中的内存效率),似乎仅在较高的层开始使用Inception模块,而以传统的卷积方式保持较低的层似乎是有益的,这不是严格必要的,仅反映了我们当前实现中的一些基础设施效率低下。

**该体系结构的主要优点之一是,它可以显着增加每个阶段的单元数,而不会导致计算复杂性的急剧增加。**普遍使用降维功能可以将最后一级的大量输入滤波器屏蔽到下一层,首先缩小其尺寸,然后再以较大的补丁尺寸对它们进行卷积。此设计的另一个实际有用的方面是,它与直觉一致,即视觉信息应在不同的比例下进行处理,然后进行汇总,以便下一阶段可以同时从不同的比例抽象特征。

改进的计算资源使用可以增加每个阶段的宽度以及阶段数,而不会引起计算困难。利用初始架构的另一种方法是创建稍逊一筹但在计算上更便宜的版本。我们发现,所有随附的旋钮和操纵杆都可以实现计算资源的受控平衡,这可能导致网络的性能比具有非Inception架构的类似性能的网络快2-3倍,但是这时需要仔细的手动设计。

5 GoogLeNet

在这里插入图片描述
在ILSVRC14比赛中,我们选择了GoogLeNet作为我们的团队名称。此名称是对Yann LeCuns开拓性的LeNet 5网络的致敬[10]。我们还使用GoogLeNet来指代我们提交的竞赛中使用的Inception体系结构的特定形式。我们还使用了更深入,更广泛的Inception网络,其质量略逊一筹,但是将其添加到整体中似乎可以稍微改善结果。我们省略了该网络的细节,因为我们的实验表明,确切的体系结构参数的影响相对较小。此处,出于演示目的,表1中描述了最成功的特定实例(名为GoogLeNet)。在我们的合奏中,对7个模型中的6个使用了完全相同的拓扑(使用不同的采样方法进行训练)。

所有卷积,包括Inception模块内部的那些卷积,都使用整流线性激活。我们的网络中接收场的大小为224×224,采用平均色相减的RGB颜色通道。 “#3×3缩小”和“#5×5缩小”表示在3×3和5×5卷积之前使用的缩小层中1×1滤波器的数量。在pool proj列中内置最大池之后,可以看到投影层中1×1滤镜的数量。所有这些缩小/投影层也都使用整流线性激活。

该网络在设计时就考虑到了计算效率和实用性,因此可以在包括计算资源有限(尤其是内存占用量少)的单个设备上运行推理。仅安装带有参数的层时,网络深22层(如果我们还计算池,则为27层)。用于网络构建的总层数(独立构建块)约为100。但是,此数目取决于所使用的机器学习基础结构系统。分类器之前的平均池的使用基于[12],尽管我们实现的不同之处在于我们使用了额外的线性层。这使我们可以轻松地针对其他标签集对我们的网络进行调整和微调,但这主要是方便,我们并不期望它会产生重大影响。已经发现,从完全连接的层转移到平均池可将top-1的准确性提高约0.6%,但是即使在删除完全连接的层之后,仍必须使用压降。

考虑到网络的深度较大,以有效方式将梯度传播回所有层的能力是一个问题。一个有趣的见解是,相对较浅的网络在此任务上的强大性能表明,网络中间各层所产生的功能应非常有区别。通过添加连接到这些中间层的辅助分类器,我们希望能够鼓励在分类器的较低级进行区分,增加被传播回去的梯度信号,并提供附加的正则化。这些分类器采用较小的卷积网络的形式,位于Inception(4a)和(4d)模块的输出之上。在训练过程中,它们的损失将以折扣权重添加到网络的总损失中(辅助分类器的损失加权为0.3)。在推断时,将丢弃这些辅助网络。
在这里插入图片描述
侧面的额外网络(包括辅助分类器)的确切结构如下:
•具有5×5滤镜大小和3步幅的平均池化层,(4a)的输出为4×4×512,(4d)的输出为4×4×528。
•具有128个滤镜的1×1卷积,用于缩小尺寸和校正线性激活。
•具有1024个单位的完整连接层,并具有线性校正功能。
•dropout层,其产出下降率为70%。
•具有softmax损失的线性层作为分类器(预测与主分类器相同的1000个分类,但在推理时删除)。
生成的网络的示意图如图3所示。

6 Training Methodology

我们的网络是使用DistBelief [4]分布式机器学习系统进行训练的,该系统使用了少量模型和数据并行性。尽管我们仅使用基于CPU的实现,但粗略估计表明,可以训练GoogLeNet网络在一周内使用很少的高端GPU进行融合,主要限制是内存使用率。我们的训练使用具有0.9动量的异步随机梯度下降[17],固定的学习速率计划(每8个周期将学习速率降低4%)。 Polyak平均[13]用于创建推理时使用的最终模型。

在进入比赛之前的几个月中,我们的图像采样方法已经发生了巨大变化,并且已经对融合模型进行了其他选择的训练,有时还结合了已更改的超参数,例如辍学率和学习率,因此很难给出最终的指导。训练这些网络的最有效的单一方法。更复杂的是,某些模型主要是在较小的相对农作物上进行训练的,而在[8]的启发下,其他模型则是在较大的相对作物上进行训练的。尽管如此,一种经验证在比赛后效果很好的处方包括对不同大小的块进行采样。图像的大小均匀地分布在图像区域的8%和100%之间,并且纵横比在3/4和4/3之间随机选择。同样,我们发现安德鲁·霍华德[8]的光度学失真在某种程度上有助于防止过度拟合。此外,我们开始使用随机插值方法(双线性,面积,最近邻和三次,具有相等的概率)来调整相对较晚的大小,并结合其他超参数更改,因此我们无法确切确定最终结果是否受到以下因素的正影响他们的使用。

Conclusions

我们的结果似乎提供了有力的证据,即通过随时可用的密集构造块来近似预期的最佳稀疏结构,是改善计算机视觉神经网络的可行方法。 与较浅和较不宽泛的网络相比,此方法的主要优点是在计算需求适度增加的情况下可显着提高质量。 还要注意,尽管我们既未利用上下文也未执行边界框回归,但我们的检测工作具有竞争优势,这一事实进一步证明了Inception体系结构的实力。 尽管可以预期,通过深度和宽度相近的昂贵得多的网络可以实现类似的结果质量,但是我们的方法得出的确凿证据表明,转向稀疏结构通常是可行且有用的想法。 这表明在[2]的基础上,有希望的未来工作以自动方式创建稀疏和更精细的结构。

发布了47 篇原创文章 · 获赞 21 · 访问量 7232

猜你喜欢

转载自blog.csdn.net/qq_18315295/article/details/103568055
今日推荐