深度学习之图像分类(八)InceptionV4论文翻译总结

Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning

Abstract

近年来,深度卷积网络一直是图像识别性能最大进步的核心。一个例子是Inception结构,它已经被证明可以在相对较低的计算成本下实现非常好的性能。最近,在2015年ILSVRC挑战赛中,残差链接与更传统的架构相结合,取得了最先进的性能;它的性能类似于最新一代的Inception-v3网络。idea这就提出了一个问题:将Inception与残差链接结合起来是否有任何好处。这里我们给出了明确的经验证据,结果1.残差连接训练显著加速了Inception网络的训练。也有一些证据表明,残余的Inception网络比同样等价值的、没有残余连接的Inception网络的性能要好得多。我们还为残差和非残差Inception网络提出了几种新的流线型架构。这些变化显著提高了ILSVRC 2012分类任务的单帧识别性能2.我们进一步证明了适当的激活缩放如何稳定非常广泛的残差初始网络的训练。(对残差求和之前,按照某个因子缩小,防止网络不稳定)使用三个残差和一个Inception-v4的集合,我们在ImageNet分类(CLS)挑战的测试集上实现了3.08%的top-5误差。

Introduction

自2012年ImageNet竞赛[11]由Krizhevsky等人[8]获奖以来,他们的网络“AlexNet”已成功应用于更广泛的计算机视觉任务,例如物体检测[4]、分割[10]、人体姿态估计[17]、视频分类[7]、目标跟踪[18]和超分辨率[3]。这些例子只是深度卷积网络成功应用的一小部分。

在这项工作中,我们研究了两种最新思想的结合:He等人在[5]中引入的残差连接和Inception架构的最新修订版本[15]。在[5]中,有人认为残差链接对于训练非常深的架构具有固有的重要性。由于Inception网络倾向于深度的构造因此用残差链接替换Inception架构的过滤器连接阶段是很自然的(将concatenate合并层替换为残差加法merge层)。(Inception+残差)这将允许Inception在保留其计算效率的同时获得剩余方法的所有好处。

(在进行加入残差链接之前,在Inception V3的基础上改进 形成InceptionV4版本)

除了简单的整合,我们还研究了Inception本身是否可以通过更深入、更广泛的整合而变得更有效率。为此,我们设计了一个名为Inception-v4的新版本(不用残差链接的Inception结构)它比Inception-v3具有更统一的简化架构和更多的inception模块。从历史上看,Inception-v3继承了许多早期版本的包袱。技术约束主要来自于使用DistBelieve划分分布式训练模型的需要[2]。现在,在将我们的训练设置迁移到TensorFlow[1]后,这些限制已经取消,这使我们能够显著简化架构。第3节描述了简化架构的细节。(tensorflow分布式训练平台提高了Inception V3的性能)

在这份报告中,我们将比较两个纯粹的Inception变体,Inception-v3和v4,以及同样昂贵的混合Inception-ResNet版本。(模型设计基本假设,相比于非残差模型,参数和复杂度不能增加)诚然,这些模型是以某种特别的方式挑选的,主要限制是模型的参数和计算复杂性应该与非残差模型的成本有些相似。事实上,我们已经测试了更大更广的Inception-ResNet变体,它们在ImageNet分类挑战[11]数据集上的表现非常相似。

这里报告的最后一个实验是对这里介绍的所有最佳性能模型的评估。很明显,Inception-v4和InceptionResNet-v2的表现同样出色,在ImageNet验证数据集上超过了最先进的单帧性能,我们希望了解这两者的结合如何推动这一经过充分研究的数据集的最新发展。令人惊讶的是,我们发现单帧性能的增益并没有转化为集成性能的类似大增益。(一般情况单帧图片的识别精度的提高,会转化为裁剪融合之后图片的精度的提高)尽管如此,它仍然允许我们在验证集上报告3.1%的top-5误差,据我们所知,四个模型合奏设置了一个新的艺术状态。

在最后一节中,我们研究了一些分类失败,并得出结论,集合仍然没有达到该数据集上注释的标签噪声,预测仍然有改进的空间。

Related Work

卷积网络在Krizhevsky等人之后在大规模图像识别任务中变得流行。[8]。接下来的一些重要里程碑是林等人的Network-in-Network[9],Simonyan等人的VGGNet[12]。和GoogleNet(inception-v1)[14]由塞格迪等人。

残差链接是由何等人提出的。在[5]中,他们为利用信号的加性合并用于图像识别,特别是用于目标检测的优势提供了令人信服的理论和实践证据。作者认为(resnet作者),(ResNet对于目标检测的优势提供了令人信服的理论和实践证据,但是本文作者对于在图像识别领域不够优秀)(不用残差链接也可以训练非常深的网络)残差连接对于训练非常深的卷积模型是固有必要的。我们的发现似乎不支持这一观点,至少对于图像识别来说是这样。然而,它可能需要更多具有更深架构的测量点来理解残差连接提供的有益方面的真实程度。在实验部分,我们证明了在不利用残差连接的情况下训练竞争性的非常深的网络并不困难。(利用Inception模块也可以训练很深的网络)然而,残差链接的使用似乎大大提高了训练速度,这本身就是使用它们的一个很大的理由(残差链接能显著加快训练速度)

Inception深度卷积架构在[14]中被引入,在我们的介绍中被称为GoogLeNet或Inception-v1。后来,Inception架构以各种方式进行了改进,首先是Ioffe等人引入的批处理规范化[6](Inception-v2)。(BN-Inception)后来,架构在第三次迭代中通过额外的分解思想得到了改进[15],在本报告中将其称为Inception-v3。

Architectural Choices

3.1. Pure Inception blocks

我们旧的Inception模型曾经以分支的方式进行训练(分段进行训练),其中每个模块被划分为多个分支,以便能够在内存中适应整个模型。然而,Inception架构是高度可调的,这意味着不同层中的过滤器数量有很多可能的变化,而这些变化不会影响完全训练好的网络的质量。(过去分段训练小心谨慎调整层的尺寸,现在有了TensorFlow不需要进行分段训练)为了优化训练速度,我们经常仔细调整层的大小,以平衡各个模型子网络之间的计算。相比之下,随着TensorFlow的引入,我们最新的模型可以在不划分模块的情况下进行训练。这在一定程度上是由于最近对反向传播所使用的内存进行了优化,通过仔细考虑梯度计算所需的张量和构建计算以减少此类张量的数量来实现。(减少梯度计算所需要的张量个数从而来提高计算效率)从历史上看,我们在改变架构选择方面一直相对保守,并且在保持网络其余部分稳定的同时,将我们的实验限制在改变孤立的网络组件上。不简化之前的选择会导致网络看起来比实际情况更复杂。在我们较新的实验中,对于Inception-v4,我们决定去掉这些不必要的包袱,并为每个网格大小的Inception块做出统一的选择。Inception-v4网络的大型结构如图9所示,其组件的详细结构如图3、4、5、6、7、8所示。图中所有未标记为“V”的卷积都是相同的,这意味着它们的输出网格与输入网格的大小相匹配。标记为“V”的卷积是有效填充的,这意味着每个单元的输入patch都被完全包含在前一层中,输出激活图的网格大小相应减小。

3.2. Residual Inception Blocks

对于Inception网络的残差版本,我们使用比原始Inception更便宜的Inception块。(用1x1进行升维,用来匹配残差链接所需要的feature map 的大小,1x1卷积不用使用激活函数)每个Inception块之后是滤波器扩展层(1 × 1卷积,不激活),用于在添加之前缩放滤波器组的维度,以匹配输入的深度。这是为了补偿由Inception块引起的维数减少所需要的。

我们尝试了几个版本的Inception的残差版本。这里只详细介绍了其中的两个。第一个“Inception-ResNet-v1”大致相当于Inception-v3的计算成本,而“Inception-ResNet-v2”相当于新引入的Inception-v4网络的原始成本。如图15所示为两个变量的大型结构。(然而,在实践中,Inception-v4的训练时间被证明要慢得多,可能是由于层的数量较多。)

我们的残差和非残差Inception变体之间的另一个小技术差异是,在Inception- resnet的情况下,我们只在传统层的顶部使用BN,而不是在求和(特征融合)的顶部。(对于带残差结构的Inception模块,在相加层之后,不做BN减小计算。)期望彻底使用BN应该是有利的,这是合理的,但我们希望在单个GPU上保持每个模型副本可训练。结果表明,具有大激活大小的层的内存占用占用了不成比例的gpu-memory。通过省略这些层之上的BN,我们能够大大增加Inception块的总数。我们希望通过更好地利用计算资源,使这种权衡将变得不必要。(可以将Inception模块之后的BN层进行减小,这带来的参数量和计算量的减小可以用来增加Inception模块,从而提高模型的优化度)

3.3. Scaling of the Residuals

我们还发现,如果过滤器的数量超过1000,残余变量开始表现出不稳定性,网络在训练的早期就“死亡”了,这意味着在平均池化开始之前的最后一层在数万次迭代之后只产生零。这是无法避免的,既不能通过降低学习率,也不能通过向这一层添加额外的批处理规范化。(卷积核个数超过1000在训练早期,最后avg_pool层之前的feature map里边有很多的0,使用小的学习率和BN都不可以解决这个问题)

我们发现在将残差添加到前一层激活之前缩小残差似乎可以稳定训练(将激活函数之前的残差进行缩小似乎可以稳定训练)通常,我们在残差被添加到累积层激活之前选择一些0.1到0.3之间的缩放因子来缩放残差(参见图20)。(在加法融合之前,对残差分支的结果乘以幅度缩小系数)

He等人在[5]中也观察到类似的不稳定性,在非常深的残差网络的情况下,他们建议进行两阶段的训练,其中第一个“热身”阶段以非常低的学习率完成,然后是第二阶段,学习率很高。我们发现,如果过滤器的数量非常多,那么即使非常低(0.00001)的学习率也不足以应对不稳定性,高学习率的训练有可能破坏其效果。我们发现只按比例计算残差更可靠。即使缩放不是严格必要的,它似乎也不会损害最终的准确性,但它有助于稳定训练。

4. Training Methodology

我们利用TensorFlow[1]分布式机器学习系统使用20个副本在NVidia Kepler GPU上运行,使用随机梯度训练我们的网络。我们早期的实验使用衰减为0.9的动量[13],而我们最好的模型是使用衰减为0.9和E = 1.0的RMSProp[16]实现的。我们使用0.045的学习率,每两个epoch使用0.94的指数率衰减。使用随时间计算的参数的运行平均值来执行模型评估。

5. Experimental Results

首先,我们观察了四种变体在训练过程中的top-1和top-5验证误差的演变。在进行实验后,我们发现我们的连续评估是在验证集的一个子集上进行的,该子集由于边界框较差而省略了大约1700个黑名单实体。(省略了1700张图片的自己上进行的实验)事实证明,遗漏应该只对CLSLOC基准执行,但是与其他报告(包括我们团队的一些早期报告)相比,产生了一些不可比较的(更乐观的)数字。top-1名误差的差异约为0.3%,top-5名误差的差异约为0.15%。然而,由于差异是一致的,我们认为曲线之间的比较是公平的。

另一方面,我们在由50000张图像组成的完整验证集上重新运行了多次裁剪和集成结果。最后的集成结果也在测试集上执行,并发送到ILSVRC测试服务器进行验证,以验证我们的调优没有导致过拟合。我们想强调的是,这个最终验证只进行了一次,我们在去年只提交了两次结果:一次是用于BN-Inception论文,后来是在ILSVR-2015 CLSLOC竞赛期间,因此我们认为测试集数字构成了对我们模型泛化能力的真实估计。(避免了模型对于测试集具有学习能力,保证模型的泛化性)

最后,我们对不同版本的Inception和Inception- resnet进行了比较。模型Inception-v3和Inception-v4是深度卷积网络,不利用剩余连接,而Inception- resnet -v1和Inception- resnet -v2是Inception风格的网络,利用剩余连接而不是过滤器连接。

表2显示了验证集上不同架构的单模型、单作物top-1和top-5误差。

表3显示了使用少量作物的各种模型的性能:[5]中报道的ResNet的10种作物),对于Inception变体,我们使用了[14]中描述的12种作物评估。

表4显示了使用的各种模型的单个模型性能。残差网络的密集评价结果由文献[5]报道。对于初始网络,采用[14]中所述的144种作物策略。

表5比较了集合结果。对于纯残差网络,6个模型的密集评价结果由文献[5]报道。对于初始网络,使用[14]中描述的144个作物策略集成了4个模型。

 

6. Conclusions

我们详细介绍了三种新的网络架构:

  1. Inception-resnet-v1:一种混合的Inception版本,与[15]中的Inception-v3具有相似的计算成本。
  2. Inception-resnet-v2:一个昂贵的混合Inception版本,显著提高了识别性能。
  3. Inception-v4:没有残留连接的纯Inception变体,识别性能与Inception- resnet-v2大致相同。我们研究了残余连接的引入如何极大地提高了Inception架构的训练速度。此外,我们最新的模型(有和没有残留连接)优于我们所有的前Inception-v4:一个没有残留连接的纯Inception变体,其识别性能与Inception-resnet-v2大致相同。我们研究了残余连接的引入如何极大地提高了Inception架构的训练速度。此外,我们最新的模型(有和没有残差连接)比我们以前的所有网络都要好,只是由于模型大小的增加。

我们研究了剩余连接的引入如何显著提高初始架构的训练速度。此外,我们的最新模型(有或没有剩余连接)优于我们以前的所有网络,只是因为模型大小增加了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值