深层卷积神经网络——Inception外文翻译资料
2022-07-27 10:52:26
英语原文共 12 页,剩余内容已隐藏,支付完成后下载完整资料
深层卷积神经网络——Inception
摘要
本文我们提出了一个名为“Inception”的深度卷积神经网结构,它的目标是将分类、识别ILSVRC14数据集的技术水平提高一个层次。这一结构的主要特征是对网络内部计算资源的利用进行了优化。
这一目标的实现是通过细致的设计,使得在保持计算消耗稳定不变的同时增加网络的宽与深。为了达到这一目标,本文基于赫布原则和多尺度处理规则设计网络结构。一个具体化的例子是GoogLeNet,也就是我们提交到ILSVRC14的成果,它是一个22层深的网络,它在分类和检测这两项指标中获得了较优的评估。
1 引言
最近三年,由于深度学习和越来越实际的卷积神经网络[10]的发展,图像识别以及物体检测的质量都在以惊人的速度提高。
更重要的是,大多数进步并不只是由更强大的硬件、更大的数据库和模型所带来的,而是一些新创意、新算法,以及优化的网络结构的成果。
现在,我们需要处理一些新的数据,比如最顶级的ILSVRC 2014不仅会进行分类方面的竞赛,也会进行物体检测方面的竞赛。我们提交到ILSVRC 2014的GoogLeNet实际上使用了比赢得两年前[9]比赛少12倍的参数,但精确度提高了很多。在物体识别方面,最大的收获其实并不来自于深度网络或是大型模型的单独使用,而是来自深度结构和传统机器视觉的协同作用,比如R-CNN算法[6]。
另一个值得注意的要素是随着移动计算和嵌入式计算得到越来越广泛的认同,我们的算法的效率——尤其是其能量和存储利用率——变得越来越重要。值得注意的是,这篇文章中展现的深度结构在设计时就考虑了这些因素,而不仅是执着于单纯提高精度。
对于我们的大部分实验,模型计算量限制在预测时间内15亿次乘加运算左右,这让我们的实验并不仅仅是为了满足学术好奇心,而是可以在现实中使用,即使对于很大的数据集,开销也是合理的。
在本文中,我们所关注的是一个应用于计算机视觉的深度神经网络,名为“Inception”,它的名字来源于Lin等人关于网络的论文[12],以及名言“我们要走向深度” [1]。在我们这,“深”有两层含义:首先,我们引入了一种高水平的组织方式来构建Inception的模块,同时以更加直接的方式来增加网络深度。一般而言,把Inception模型看做一个在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]等方面。受到神经科学对主要视觉皮层进行建模的启发,Serre等人[15]用一系列不同大小的固定的Gabor过滤器去处理多尺度,这与Inception是相同的。然而,相比文献中固定的两层模型[15],Inception中所有过滤器是学习得到的。进一步的,Inception的各层都重复多次出现,形成了GoogLeNet——一个22层网络模型。
网中网是Lin提出来的一种结构[12],其目的是为了增加神经网络的表现力。当应用于卷积层的时候,这一方法可以看做一个额外的1times;1卷积层,后面通常跟着一个修正的线性激活。这使得该结构能够轻松地集成到现有的CNN管道中。这种方法在我们的网络体系结构中被大量地使用。然而,在我们的设定中,1times;1卷积具有双重目的:最重要的一点是,它们被主要用于降维模块以打破计算瓶颈,否则我们的网络规模会受到限制。这使得我们不仅可以加深网络,同时还可以加宽,而不造成严重的性能下降。
现在最好的物体检测方法是区域卷积神经网,由Girshick提出[6]。R-CNN将整个检测问题分解为两个子问题:第一部使用低层线索比如组成潜在物体的颜色、超像素等,提取出一些类别不可知的信息,然后接下来利用CNN在这些区块信息上识别物体类别。这种双步方法中,低层线索会影响切分区块大小的准确性以及CNN分类的准确度。我们在提交的检测程序中采用了同样的管道,但我们对其中的每一步都进行了加强,比如采用多盒预测[5]以提高边界识别集合的召回率,还对检测边界提出的分类建议进行了不同方法的搭配合成,以获得更好的结果。
3 动机与高层设计考虑
最直接提高深度神经网络性能的方法是增加其规模,包括通过增加层数以增大深度,通过增加每一层的节点数以增加宽度。这是训练高质量模型最简单安全的方法,特别是对于给定的大规模标签数据集。然而这种简单的解决方法有两大缺陷。
更大的网络规模往往意味着更多的参数,这使得扩大后的网络更易过拟合,特别是当训练集中的标签样例有限的时候。这能够变成一个主要的瓶颈,因为制作高质量的训练集是要技巧的,也是很昂贵的,特别是人类专家对于类别力度的准确把握对于ImageNet这样的数据集而言是很重要的(即使是ILSVRC的1000类子集),如下图所示。
图 1 数据集中的两个典型类别
另一个统一增加网络大小的缺陷是计算资源需求的暴增。例如,在一个深度视觉网络,如果两个卷积层相连,任何增加过滤器数量的改动都会导致增加二次方倍数的计算量。如果增加的计算力没有被有效使用(比如大部分的权值趋于0),那么大量的计算会被浪费。实际应用中可用的计算力是有限的,即使是以提高模型质量为主要目标,高效分布计算资源,其实也比盲目增加网络体积更加有效。
解决这两个问题的基本方法最终一般是把全连接改成稀疏连接的结构,甚至包括在卷积中也这么做。除了模拟生物系统,根据Arora的突破性研究证明[2],这样做也可以在理论上获得更强健的系统。 Arora等人的主要结果显示如果数据集的概率分布是一个十分稀疏的大型神经网络所能表达的,那么最合适的网络拓扑结构可以通过分析每一步的最后一层激活函数的统计关联性,并将具有高相关性输出的神经元进行聚类,而将网络一层一层地搭建起来。
虽然严格的数学证明需要很强的条件,但事实上这种情况符合著名的赫布原则——神经元如果激活条件相同,它们会彼此互联——这意味着在实践中,赫布原则在不那么严苛的条件下还是可以使用。
从负面而言,当涉及大量非统一的稀疏的数据结构的计算时,现在的计算设施是很低效的。即使算术运算量降低100倍,查表运算和缓存失准也依然是主要瓶颈以至于稀疏矩阵的处理无法成功。如果使用稳定改进、高度调制、拥有大量库函数支持极快速密集矩阵相乘、关注CPU或GPU底层细节的方法[16,9],那么这种计算需求与计算资源之间的鸿沟甚至可能被进一步拉大。
另外,非统一的稀疏模型需要复杂的工程结构与计算结构。目前大部分面向机器学习的系统都利用卷积的优势在空间域中使用稀疏性。然而,卷积是通过一系列与前层区块的密集连接来实现的,它通常在特征维度中使用随机的稀疏的连接表,以打破对称性[11],提高学习水平,然而,这种趋势会倒退回全连接模式,以便更好的使用并行计算[9]。统一的结构、巨大的过滤器数量和更大的批次规模将允许使用高效的密集矩阵运算。
这就导致了一个问题,是不是存在一个中间步骤,如同理论上所显示的,能够让整个结构即使在过滤器层面上都能使用额外的稀疏性,但依旧是利用现有硬件进行密集矩阵计算。大量关于稀疏矩阵计算的文献[3],都显示将稀疏矩阵聚类到相对密集的子矩阵上能够让稀疏矩阵相乘的性能达到实用水平,把同样的方法应用到自动构建非统一深度学习结构上,在不远的将来看起来并不过分。
Inception的体系结构始于第一作者研究的一个例子——评估复杂拓扑结构的网络算法的假设输出,尝试近似地用一个密集的可获得的组件表示一个视觉网络的稀疏结构的假设输出。 然而这项工作在很大程度上是基于[12]假设进行的,仅仅在两次迭代之后,我们就已经能够看到一些对于选定的拓扑结构非常不利的有限的成果。在调节了学习速率、超系数,和采用了更好的训练方法之后,我们成功地建立了Inception的体系结构,使之能够在基于文献[5]和[6]提出的局部化和物体检测的上下文环境中非常好用。有趣的是,大多数最初的结构都被彻底地检测过,它们都至少能够达到局部最优。
然而还是需要被谨慎考虑的是:虽然我们提出的体系结构在计算机视觉方面的应用很成功,但这能否归功于其背后的设计指导原则还不是很确定。
想要确定这一点还需要更加彻底的分析和验证:比如,基于这些规则的自动化工具是否能够找到与之类似但却更好的网络拓扑结构。最有说服力的证据将会是自动化系统能够利用相同的算法在不同的领域创建出具有相似结果,但整体架构有很大不同的网络拓扑。
最后,Inception最初的成功为探索这一领域让人激动的未来产生了巨大的动力。
4 结构细节
Inception的体系结构的主要设计思路是要在一个卷积视觉网络中寻找一个局部最优的稀疏结构,这个结构需要能够被可获得的密集组件覆盖和近似表达。请注意,假定转义的不变性意味着我们的网络将利用卷积砌块建立。我们所需要做的只是寻找局部最优化结构并在空间上对其进行重复。Arora等人提出,一个逐层搭建的结构,需要分析其每一步的最后一层的统计关联性,并将高度相关的神经单元聚类为簇。这些簇组成了下一层的单元并与前一层的各个单元相连。我们假设前面一层的每个单元都对应输入图像的某些区域,而这些单元被分组分配给过滤器。在较低的层次(更靠近输入端),相关的单元聚焦于局部区域。这意味着我们能够得到大量聚焦于同一区域的簇,它们会被下一层的1times;1卷积覆盖。然而,可以预见,更少的在空间上将传播更多的簇,这样的话,覆盖大型区域的区块数量就会减少。为了避免区块对齐问题,现有的Inception结构将过滤器大小限制为1times;1,3times;3 和 5times;5,然而这种设定更多是为了方便而不是必要的。这也意味着合理的网络结构应该是将层次的输出过滤器结合起来,并将其合并为单一向量作为输出以及下一层的输入。另外,因为池化操作对于现有水平的卷积网络是很重要的,建议最好在每一部增加一条并行池化通路,这样应该也会有一些额外的好处:如图2(a)所示。
图 2 Inception模块
Inception模块是一层一层往上栈式堆叠的,所以它们输出的关联性统计会产生变化:更高层抽象的特征会由更高层次所捕获,而它们的空间聚集度会随之降低,因为随着层次的升高,3times;3和5times;5的卷积的比例也会随之升高。
一个大问题是,上述模型,至少是朴素形式的模型,即使只有很有限个数的5times;5卷积,其最上层卷积层的巨量过滤器的开支都会让人望而却步。一旦把池化层加进来,这个问题会变得更加严重:它们的输出过滤器个数与前面过程的过滤器个数相等。池化层输出与卷积层输出的合并会导致无法避免的每步输出暴增。即使是当这种结构覆盖了最优的稀疏结构,它可能依然还是很低效,从而导致少数几步的计算量就会爆炸式增长。
这种情况导致我们提出了第二种设想:审慎地把降维和投影使用到所有计算量可能急剧增加的地方。这是基于嵌入的成功来设计的:相对于一个大型的图像区块,即使是低维的嵌入也可能包含大量的信息。然而,嵌入会把信息以一种致密的,压缩的方式展现出来,而压缩信息是很难被建模的。我们还是想在大部分位置保持稀疏性,而只在信号需要被聚合的时候压缩它们。也就是说,1times;1卷积被用于在昂贵的3times;3和5times;5卷积之前降维。
除了用于降维,它们也被用于数据线性修正激活,这使之具有双重使命。一般而言,一个Inception网络是由一系列上述结构栈式堆叠而成,有时候步长为2的最大池化层会把网络一分为二。出于更高效的训练的考虑,只在高层使用Inception结构而把低层保留为传统的卷积模式似乎是有利的。这并不一定是必要的,只是反映了有些基础设施对于我们的设计而言很低效。这一结构一个有利的方面是它允许每一步的神经元大量增加,而不会导致计算复杂度的暴增。降维的普遍存在能够阻挡大量来自上一层的数据涌入下一层的过滤器,在大区块上对其进行卷积之前就对其进行降维。该设计另一个在实践中很有用的方面是,它与的特性相一致。计算资源的优化利用允许我们增加每层网络的宽度以及层数,而无需面对增加的计算困难。另一种使用Inception架构的方法是开发一种质量稍差,但计算起
全文共14208字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[144388],资料为PDF文档或Word文档,PDF文档可免费转换为Word