论文翻译(一) GoogleNet-V1 :Going Depper with convolutions

引言

作者提出了一种深度卷积网络架构:inception ,这种架构刷新了ILSVRC2014( ImageNet Large Scale Visual Recognition Challenge)的SOTA。这种网络架构的主要特点为提高了网络中的计算资源利用率。通过精细设计网络架构,在保持计算消耗不变的情况下增加网络的深度与宽度。网络设计基于Hebbian原则和多尺度处理的经验。

1.介绍

在过去的三年里,由于深度学习的进步,更多网络被设计出来。图片识别与物体检测的质量有了长足的提升。一些振奋人心的消息不仅是更高算力的硬件、更大的数据集和模型,而是一系列新想法、算法以及网络架构的提升。没有使用额外的数据集,比如在ILSVRC2014竞赛前几名中,除了分类数据集与同一比赛中用于检测数据。作者提交到ILSVRC2014的GoogLeNet相较于两年前的获胜结构,参数量小了12倍,同时更加精确。物体检测的最大收益并不来自于单独利用深度网络或者大模型,而是来自于深度结构与传统计算机视觉的协同结合,例如R-CNN。
另一个值得注意的因素是伴随着对移动端以及嵌入式计算的持续跟踪关注,作者算法的经济性:尤其是电力与资金消耗,变得尤为重要。这是值得注意的在这篇论文中引导设计一个深度结构而不是纯粹死板提升准确率。对于大多数实验,模型被设计为推理一次乘加计算次数为1.5billion(15亿)所以这个网络并不止步于纯粹的学术研究而是可以应用于真实世界中,即使在大数据集中依旧有着合理的消耗。
这篇论文中,作者将关注于高效的计算机视觉深度神经网络结构:Inception。该网络名字起源于盗梦空间(Inception)里面的一句经典台词“we need to go deeper”。对作者来讲,‘’深‘’有这两种不同的含义:首先正如作者介绍的那样Inception模型在组织上是新层次的,另一个就是更加直接的将模型加深的含义。总的来说,当Arora提及在NIN工作中获得的灵感与指导时,可以将Inception模型看做是逻辑上的最终解。这个结构的优点在ILSVRC2014分类与检测挑战中体现的淋漓尽致,正如它显著超越了当时的最优算法。

2.相关工作

自从LeNet-5之后,卷积神经网络开始有一个标准结构:堆叠起的卷积层(后面可选择追加BN层以及max pool层)之后跟着一个或多个fc全连接层。这种基础设计的变体在图像分类文献中变得流行而且在MNIST、CIFAR数据集以及最知名的ImageNet分类挑战中取得了最佳的效果。对于更大的数据集比如Imagenet,最近的趋势是增加网络的层数以及层的大小,之后使用dropout缓解过拟合问题。
尽管考虑到最大池化层会导致空间信息的准确性丢失,同样的卷积网络结构也已被成功用于定位、物体检测以及人体姿态估计。受到神经科学模型中灵长类视觉皮层的启发,Serre等人使用了一连串不同大小的固定Gabor滤波器来解决多尺度问题,这与Inception模型相似。然而,对比两层深度的模型,Inception模型中所有的滤波器都是学习过的。更进一步的,Inception层被多次重复,最终在GoogLeNet中得到了22层的深度模型。
Network In Network方法是由Lin等人提出的,目的在于增加神经网络的表达能力。当使用卷积层时,该方法可以看做是额外的11卷积层后面跟着标准的修正线性激活。这能够使其更容易地整合在当前CNN管线中。作者同样使用了高度近似的方法在自己的结构中。然而在作者的设置中,11卷积有着双重的目的:最明显的是用于模型维度下降来移除计算瓶颈,另一方面限制了网络的大小。这样使得作者的模型在没有明显效果下降的情况下增加了网络的深度与宽度。
最近关于物体检测的领头工作是R-CNN,R-CNN将检测任务的问题总体分解为两个子问题:首先利用低级数据例如颜色以及超像素一致性来为潜在的不可知类别的物体提议,之后使用CNN分类器来识别对应位置的物体种类。这种双阶段的方法充分利用了低级特征的bbox分割准确性以及SOTA CNN的超强分类能力。作者在检测中使用了相似的管线,但是在两个阶段都尝试进行增强,例如多box预测取得更高的bbox召回率,以及为了更好的bbox提议框分类进行组合方法的尝试。

3.动机以及更深层次的考虑

深度网络中大多数提升效果的直接方法就是增加网络的大小。这同时包含了增加深度:网络的层数 以及宽度:每一层的单元数。这是对于训练更高质量的模型尤其是给出了大量的标签训练数据时一种简单而且安全的方法。然而这种简单地解决方法伴随着连个主要的缺点。
更大的尺寸往往意味着更大数量的参数,这会使得扩大的网络更加趋向过拟合,尤其是当训练集的标签样本数量受到限制时(训练集较少,容易过拟合)这是一个主要的瓶颈,因为制作一个高质量的训练集是困难而且昂贵的,尤其是如果需要专家评委来进行视觉种类的细粒度判别,就像下图中取自ImageNet数据集的例子
在这里插入图片描述

另一个随着网络增加同时增加的缺点就是显著增长的计算资源消耗.比如,在深度视觉网络中,如果两个卷积层是连接的,其中任何一个滤波器的增加都会导致计算的指数增加,如果增加的部分没有被有效利用(例如大多数权重最终都接近于0)大量的计算被浪费.因为在实践中计算资源预算总是有限的,所以计算资源的有效分布比任意增加尺寸更可取,即使是在以提升结果质量为主要目的下.
即使是在卷积中,根本解决这两个问题的方法是最终从全连接架构转移到稀疏连接架构.此外,模仿生物系统,Arora等人的工作也是有着坚实理论支撑的优势.他们主要成果证明了如果数据集的可能分布可以被一个大的、非常稀疏的网络表达,那么可选择的网络拓扑可以通过分析最后一层的激活统计以及输出高度相关的神经元聚类来一层一层地构建出来。尽管严格的数学证明需要非常强的条件,事实是这个声明回响伴随着知名的Hebbian原则:neurons that fire together, wire together(一起发射的神经元,就会连在一起)这也证明了在实践中,即使在不那么严格的情况下潜在的想法也是适用的。
缺点是,现在的计算基础结构在非均匀稀疏的数据结构总计算时是非常低效的。即使计算操作数被下降100倍,查找开销以及缓存命中丢失的巨大影响也使得转换到稀疏矩阵不会有回报。通过使用稳定提升的、高度调优的计算库来允许极快速的稠密矩阵乘法计算,利用CPU或者GPU硬件的底层细节,这都使得差距进一步扩大。此外,非均匀系数模型需要更多精细工程以及计算基础设施。当前大多数以视觉为方向的机器学习系统利用了使用卷积在空间领域稀疏性的有点。然而,卷积是被用于前层patch稠密连接的集合。卷积网络传统地被用于特征维度的随机以及稀疏连接表来打破对称性,提高学习能力,趋势又变回了全连接为了更好的优化并行计算。统一的结构和大量的卷积核以及更好的batch size使得稠密计算有效利用。
这就提出了一个问题是否会有下一个,中间步骤:一个结构即使是在滤波器级别也可以里有个额外的稀疏性,正如理论所建议的,但是通过利用稠密矩阵计算调用当前硬件。大量的稀疏矩阵计算文献建议将稀疏矩阵聚类成相对稠密的子矩阵来尽可能的在稀疏矩阵乘法实际表现中获得最好的效果。在不远的将来使用相似的方法为非统一深度学习结构进行自动架构的想法看起来并不牵强。
Inception网络开始是一作作者作为个例研究的,为了假设复杂网络拓扑架构算法尝试近似视觉网络隐含的稀疏结构,并且通过稠密可读可获取组件来覆盖假设的结果。尽管是高度投机的事情,只有在精确选择拓扑两次迭代之后,我们才可以对比参考结构看到些许收益。在进一步调节学习率、超参数以及训练方法之后,作者确立了Inception结构作为基础网络在定位以及物体检测方面是非常有用的。有趣的是尽管大多数原始结构的选择都经过了质疑和彻底测试,他们被证明至少是局部最优的。
然而必须谨慎:提出的结构在计算机视觉中是成功的,它的质量能否归功于指导其建设的指导原则仍是一个疑问。为了确保应当要求更多的彻底分析以及验证:比如,如果基于下面描述原则的自动化工具会找到相似点,但是对于视觉网络更好的拓扑。最令人信服的是如果一个自动化系统能够生成网络拓扑且在其他领域算法获得了同样增益,但是算法使用了看上去完全不同的全球架构。至少,Inception架构的初步成功为这个方向的令人兴奋的未来工作取得了坚定地动机。

4.架构细节

Inception架构的主要思路是基于找出卷积视觉网络中局部最优的稀疏结构如何可以被真实可获得的稠密计算近似并且覆盖。注意假设平移不变性意味着我们的网络将会被使用卷积模块构建。作者需要做的就是找到局部最优结构并且在空间中重复。Arora等人建议分析最后一层的相关统计并且将有着高相关性的聚集为单元组来一层层构建。这些簇来自于下一层单元并且被连接到先前层中的单元。作者假设每一个前层单元都对应着输入图片中的一些区域,这些单元被分组到滤波器组中。低层(那些靠近输入的部分)相关单元应该专注于位置区域。这意味着作者将会以许多单一区域的簇作为结尾,并且它们可以被下一层中的11卷积覆盖。然而可以预见的是这将会有更小数量更分散的簇可以被更大patch上的卷积所覆盖,而且这回降低越来越大区域中的patch数量。为了避免patch对齐问题,当前版本的Inception结构被限制为11、33、55滤波器大小,尽管这种决定更多的是基于方便而不是必要性。那也意味着被建议的结构是这些层的结合,这些层与他们的输出滤波器连接到一个单独的输出向量中组成下一个阶段的输入。此外,自从池化变为当下SOTA卷积网络必不可少的操作,建议对每个类似stage增加可选择的并行池化通路也将会获得好的额外效果。
正如这些“Inception模块”堆叠在一起,他们的输出相关统计也一定是各种各样的:作为被更高层捕获的更高抽象的特征,它们的空间集中度预计会下降,这表明3×3和5×5卷积的比例应该随着我们向更高层次移动而增加。
上面模块还有一个大问题,至少是在原始形式下的,那就是即使是一个普通数量的55卷积在有着大量滤波器的卷积层上面可能是非常昂贵的。当添加池化单元进去之后这个问题就会变得更加明显:输出滤波器的数量相当于先前阶段中的滤波器数量。使用输出卷积层对输出池化层的合并输出会导致stage到stage输出数量的不可避免增加。即使这个结构或许覆盖了最优稀疏结构,那也会是非常不高效的,导致计算量在几个stage内爆炸。(简单来说就是55卷积算力消耗太大)
这引出了对于提出结构的第二个想法:在计算需求高的地方明智的使用维度下降和投影。基于嵌入的成功:即使是低维度嵌入可能包含大量相对较大的图片patch信息。然而,嵌入代表着稠密、压缩的信息形式并且压缩的模型难以建模。作者将会在大多数地方保持稀疏表达并且只有在他们需要被聚合为一时才会压缩信息。那就是11卷积被用于昂贵的33和5*5卷积之前来降低计算。此外除了被用于降维,他们也包含了修正线性激活的功能。最后结果在图2b中。
总的来说,一个Inception网络是由上述类型模块堆叠在一起组成的网络,这些模块偶尔出现步长为2的最大池化层来减半分辨率格子。处于技术的原因(训练时内存效率)似乎在高层使用Inception模块而保持低层的传统卷积是有益的。这并不是严格必要的,简单反映了我们当前应用中一些不高效的基础结构。
当前结构中一个主要的优点是允许在每个阶段中显著地增加单元数量并且不会有计算复杂度的不可控爆炸。普遍使用的维度下降使得最后阶段到下一层的大量输入滤波器得到屏蔽,在大patch尺寸卷积之前首先降低他们的维度。这种设计的另一个实际有效地方面是这种设计符合了视觉信息应当被多尺度地处理这一直觉,之后聚集在一起让下一个阶段可以同时在不同尺度提取到特征。
计算资源的利用提升使得可以在不陷入计算困难的前提下提升每一个阶段的宽度和数量。另一种利用Inception结构的的方法是制造轻微低质量但是计算更加轻量的版本。作者发下了所有包含能够控制计算资源平衡的把手跟杠杆,能够使得网络相比同样表现但是没有使用Inception结构的网络快2~3倍,当然在这一点上需要仔细的手动调优。

5.GoogLeNet

作者选择GoogLeNet作为ILSVRC14比赛的队名。这个名字是向Yann LeCuns的开创性网络LeNet的致敬。作者也使用GoogLeNet来作为使用了Inception结构的特定代指,inception结构被用于比赛中作者的提交。作者也使用了更深并且更宽的Inception网络,质量稍微差一些,但是将他们添加到组合中看上去能够稍微提升结果。作者省略了网络细节,因为作者的实验已经声明了额外的结构参数所带来的影响相对较小。这里,最成功的的特定实例(命名为GoogLeNet)以展示的意图描述在表1中。在作者的集合中7个有6个拓扑是绝对相同的(使用了不同的采样方法训练)
在这里插入图片描述

所有的卷积,包括Inception模块中的那些,都使用了修正线性激活。作者网络的感受野为224224,使用减去均值的RGB颜色通道。“#3×3 reduce” 和“#5×5 reduce” 代表着在33和55卷积之前下降层使用的11滤波器的数量。池化映射队列构建的最大池化之后,可以看到映射层中的11滤波器数量。所有这些压缩/映射层都使用了修正线性激活。
网络设计伴随着计算高效性以实用性的思路,所以推理可以跑在独立设备中,即便这有着计算资源的限制,尤其是低内存空间。如果只计算有参数的层只有22层(算上池化层有27层)。用于构建网络的层的数量(独立构建模块)大概是100.然而这个数字取决于使用的机器学习基础系统。在分类器之前使用平均池化是参考了NIN的工作,虽然作者使用起来有些区别,那就是作者使用了额外的线性层。这使得作者网络对于其他标签集更容易适应并且微调,但这是最方便的并且作者不希望它有主要的影响。在使用最大池化替换全卷积层之后,发现top-1准确率提升了0.6%,然而即便移除了全连接层,dropout层仍然是必要的。
对于网络过大的深度,以一种有效地方式将梯度传播回所有层的能力是需要考虑的。一个有趣的见解是这个任务中相对浅层网络的强大表现,中层网络产生的特征应当非常不同。通过添加辅助分类器连接到这些中间层上,作者希望能够通过分类器激励低阶段惩罚,使得传播回的梯度信号增加,并且提供额外的正则化。这些分类器使用更小卷积网络的形势,放置在Inception(4a)和(4d)模块的输出之上,它们的损失也会降权之后加到总损失之上(辅助分类器损失使用0.3加权)。在推理的时候,这些辅助网络是丢弃的。
另一边,额外网络的确定结构包含了辅助分类器,如后面展示:
·5
5滤波器尺寸、步长为3得到平均池化,在(4a)中获得了44512的输出,(4d)中获得了44528

请添加图片描述

· 一个有着128卷积核的1*1卷积用于维度下降以及修正线性激活
· 一个有着1024单元的全连接层以及修正线性激活
· dropout层有着70%的概率丢弃输出
· 线性层伴随softmax loss作为分类器(与主分类器产生同样的1000类预测,但是在推理的时候移除)
网络图如上所示

6.训练方法

作者的网络训练使用了DistBelief分布式机器学习系统,并伴随着标准数量的模型以及数据并行。尽管作者只使用基于CPU的应用,一个粗略估计GoogLeNet网络可以使用几个高端GPU经过一周训练收敛,主要的限制是内存使用。作者训练时使用动量0.9的异步梯度下降,固定学习率策略(每8个epoch学习率下降4%)
作者的图像采样方法在比赛开始的几个月里发生了较大变化,已经收敛的模型使用其他选项训练,有时同时改变超参数,比如dropout和学习率,所以对于训练网络哪种单一方法最有效很难确定。更进一步复杂的方法例如一些模型会在小一些的相关剪裁中训练,另一些则是在大一些的,受到别人工作启发,在比赛之后一种方法被证实非常有效,那就是采集图片区域内8%~100%的分布并随即选择3/4~4/3的长宽比。同时作者发现图像畸变在某种程度上有助于对抗过拟合。此外,作者开始使用随机插值方法(线性,区域,近邻以及等概率立方)进行图片缩放并且伴随着其他超参数的变换,所以作者不能确定说出是终结果是否因为使用他们受到了好的影响。

7.ILSVRC2014分类挑战计划与结果

分类挑战任务中的分类图片包含1000子叶节点类。大概有1.2million图片用于训练,50000用于评估100000用于测试。每一张图片都有一个特定的种类,效果表现的评估基于分类预测的最高分。经常使用两种评估方法:top-1准确率,对比了真实值与预测的第一类,另一个是top-5错误率,对比了真实值与前五个预测种类:如果一张图片的真实值在top-5预测中则判断分类正确,不管他们的等级。挑战使用top-5错误率来继续宁评级。
作者参加挑战没有使用额外的数据进行训练。此外除了这篇论文前面提到的训练技术,作者在测试时采用了一系列技术来获得更好的表现,这些方法在下面详述:
1.作者独立训练了7版同样的模型并且对于他们执行集合预测。这些模型使用同样的初始化(同样的权重)以及学习率策略,只有在采样策略以及图片的输入顺序上有所不同。
2.在测试时,作者相比Krizhevsky采用了更加激进的图像剪裁方法。特别的,作者将图片的短边(宽或高)分别缩放到4种尺度:256,288,320,352,提取这些缩放图片的左中右方框(纵向图提取上中下方框)。对于每一个方框,作者之后会按照224224大小提取上下左右以四角及中心部分并将图片缩放到224224,最后对他们镜像。这样每张图片可以得到436*2=144张子图。Andrew Howard前几年用过近似的方法,这个方法作者经验上认为效果略差于之前提出的方法。作者注意到如此激进的采样对于真实应用或许是不必要的,在合理数量的采样出现之后,过采样带来的收益变得微不足道(后面会提到)
3.对多个crops以及所有的独立分类器之上的softmax概率是求平均的作为最后输出。在作者的实验中,作者在评估数据集上面分析了替换方法,比如在crops上面使用最大池化、在分类器上面取平均,但是他妈嗯都会使得表现略逊色于简单地取平均。
在paper剩余部分,作者分析了对于最终提交的全部表现有贡献的多种因素。
作者在比赛中的最终提交同时在评估集与测试数据中达到了了top-5错误率6.67%,在其他参赛者中位列第一。这相比2012年SuperVision取得的成绩下降了56.5%,与前几年最好的方法(Clarifai)相比下降了40%,这两种方法都用了额外的数据集来训练分类器。后面的列表展示了一些顶级表现方法的统计。
作者也在后面的表格中分析并报告了多种测试选择的效果,通过多样化模型数量以及预测一张图片时crops的数量。当作者选择一个模型,作者选择在评估集中最低的top-1错误率的那个。为了不过拟合测试数据统计,所有的数都在评估数据集中报告。

8.ILSVRC2014检测挑战计划与结果

ILSVRC检测任务是为图片中200类物体周围提供框定盒子bbox。检测物体如果种类与真实值匹配而且bbox至少重叠50%则记为正确检测。没有关联的检测被记为FP(false positives)并被惩罚。相比于分类任务,每张图片可能包含许多物体或者一个没有,并且它们的尺寸有大有小。结果使用平均精确率均值(mAP)报告。
GoogLeNet检测选择的检测方法与R-CNN类似,但是增加了Inception模块作为区域分类器。此外,区域提议的步骤通过结合 Selective Search方法与多box预测方法来提升以获得更高的bbox recall。为了降低false positive数量,超像素尺寸被增加2倍
。这样 来自selective search算法的提议减半。作者总共在多box结果中增加了200个区域提议,其中有60%的提议是通过Girshick等人工作取得方法得来的,同时覆盖范围从92%增加到93%。对于降低提议数量同时增加1%的覆盖范围总体产生的影响是提升了单模型情况下的平均精确率均值。最后作者在为每个区域分类时使用了6个卷积层的组合,这将准确率从40%提升到43.9%。值得注意的是相比于R-CNN,作者由于缺少时间没有使用bbox回归。
作者首先报告最高的检测结果并且展示自从检测任务开始版本的进步。与2013的结果做对比,准确率几乎翻倍。表现前几名的队伍都使用了卷积网络。作者在表4中报告了官方分数与每个队伍的共同策略:利用了额外的数据,组合模型或者上下联系模型。额外的数据通常是ILSVRC12分类数据,用于模型预训练,之后检测数据中还会提到。一些队伍也意识到利用定位数据。因为定位任务相当数量的bbox没有包含在检测数据集中,因此可以像分类与训练方法一样使用这些数据与训练一个通常bbox回归器。GoogLeNet没有使用定位数据进行预训练。
在表5中,作者只对比了使用单模型的结果。最优表现得模型是DeepInsight并且惊讶的是组合了三个网络也是只提升了0.3个点,相反GoogLeNet组合后获得了明显更强的结果

9.总结

作者的结果似乎产生了一个坚实的证据,逼近预期的最佳稀疏结构,由现成的密集构建块是一个可行的方法,以改善神经网络的计算机视觉。这种方法的主要优点是,与较浅和较宽的网络相比,在计算需求的适度增加的情况下,显著的质量增益。还要注意,我们的检测工作是有竞争力的,尽管既没有利用上下文也没有执行边界框回归和这个事实为Inception架构的强度提供了进一步的证据。虽然我们期望通过更昂贵的类似深度和宽度的网络可以获得类似质量的结果,但我们的方法产生了确凿的证据,表明移动到更稀疏的架构是可行的和有用的想法。这表明未来的工作有希望在[2]的基础上以自动化的方式创建更稀疏和更精细的结构。

10.感谢

我们要感谢Sanjeev Arora和Aditya Bhaskara就[2]进行了富有成效的讨论。我们还要感谢DistBelief[4]团队的支持,尤其是Rajat Monga, Jon Shlens,
亚历克斯·克里热夫斯基,杰夫·迪恩,伊利亚·苏茨克弗和安德里亚·弗罗姆。我们还要感谢汤姆
Duerig和叶宁在光度失真方面的帮助。此外,如果没有Chuck Rosenberg和Hartwig Adam的支持,我们的工作也不可能完成。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值