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

Abstract

  • 非常深的卷积网络是近年来图像识别性能最大进步的核心。一个例子是Inception架构,它已被证明可以以相对较低的计算成本实现非常好的性能。最近,在更加传统的架构中引入残差连接已经在2015年ILSVRC挑战中产生了最先进的性能。它的性能类似于最新一代的Inception-v3网络。这就提出了一个问题,即将Inception架构与剩余连接相结合是否存在任何好处。
  • 在这里,我们给出了明确的经验证据,即残余连接训练可以显着加速初始网络的训练。还有一些证据表明,残差的Inception网络优于同样昂贵的没有残差的Inception网络。我们还为残差和非残差Inception网络提供了几种新的简化架构。这些变化显着改善了ILSVRC 2012分类任务的单帧识别性能。我们进一步演示了适当的激活扩展如何稳定非常宽的残余初始网络的训练。通过三个残差和一个Inception-v4的集合,我们在ImageNet分类(CLS)挑战的测试集上实现了3.08%的前5个误差。

Introduction

  • 在这项工作中,我们研究了两个最近的想法的组合:He等人引入的残差连接和最新修订版的Inception体系结构。有人认为,残差连接对于培养非常深的架构至关重要。由于Inception网络往往非常深,因此将剩余连接替换为Inception架构的过滤器级联阶段是很自然的。这将允许Inception在保留其计算效率的同时获得剩余方法的所有好处。
  • 除了直接整合之外,我们还研究了是否可以通过使其更深入和更广泛地使Inception本身更有效。为此,我们设计了一个名为Inception-v4的新版本,它具有比Inception-v3更加统一的简化架构和更多的初始模块。从历史上看,Inception-v3继承了早期化身的许多包袱。技术限制可能来自于使用DistBelief对分布式训练模型进行分区的需要。
  • 在本报告中,我们将比较两个纯粹的Inception变体,Inception-v3和v4,以及类似的昂贵的混合Inception-ResNet版本。不可否认,这些模型是以某种特定的方式选择的,其主要限制因素是模型的参数和计算复杂性应该与非残差模型的成本有些相似。Infactwehates测试了更大更广泛的Inception-ResNet变体,它们在ImageNet分类挑战数据集上的表现非常相似。
  • 这里报告的最后一个实验是对这里展示的所有最佳表现模型的集合的评估。 很明显,Inception-v4和InceptionResNet-v2的表现同样出色,超过了ImageNet验证数据集中最先进的单帧性能,我们希望看到这些组合如何推动现有技术的发展。数据集。 令人惊讶的是,我们发现单帧性能的增益并未转化为整体性能的类似大幅增益。 尽管如此,它仍然允许我们在验证集上报告3.1%的前5个错误,其中四个模型集合设置了最新的技术水平。

Related Work

  • He等人介绍了残余连接,他们给出了令人信服的理论和实践证据,证明了利用信号的加法合并进行图像识别,特别是物体检测的优点。 作者认为残差连接对于训练非常深的卷积模型本质上是必要的。 我们的发现似乎不支持这种观点,至少对于图像识别而言。 然而,它可能需要更多具有更深架构的测量点来理解残余连接提供的有益方面的真实程度。在实验部分,我们证明了在不利用剩余连接的情况下训练竞争性非常深的网络并不是很困难。 然而,残余连接的使用似乎极大地提高了训练速度,这对于它们的使用来说只是一个很好的论据。

Architectural Choices

  • 我们较早的Inception模型过去是以分区方式进行训练的,其中每个副本被划分为多个子网络,以便能够将整个模型存储在内存中。但是,Inception体系结构具有高度可调性,这意味着不同层中的过滤器数量可能会发生很多变化,这些变化不会影响完全训练的网络的质量。为了优化训练速度,我们习惯于仔细调整图层大小,以便平衡各种模型子网络之间的计算。从历史上看,我们一直相对保守地改变架构选择,并将我们的实验限制在变化的隔离网络组件中,同时保持网络的其余部分稳定。不简化先前的选择导致网络看起来更加复杂。 在我们的新实验中,对于Inception-v4,我们决定摆脱这种不必要的包袱,并为每个网格大小的Inception块做出统一选择。在图中未标记为“V”的所有卷积都是相同的填充,这意味着它们的输出网格与其输入的大小相匹配。 标记为“V”的卷积是有效的,这意味着每个单元的输入补片完全包含在前一层中,并且输出激活映射的网格大小相应地减小。
  • 对于Inception网络的残差版本,我们使用比原始Inception更便宜的Inception块。 每个Inception块之后是滤波器扩展层(1x1卷积,无激活),用于在添加之前放大滤波器组的维度以匹配输入的深度。 这需要补偿由Inception块引起的维数降低。我们尝试了几个版本的剩余版本的Inception。第一个“Inception-ResNet-v1”大致是Inception-v3的计算成本,而“Inception-ResNet-v2”与新引入的Inception-v4网络的原始成本相匹配。我们的残差和非残余Inception变体之间的另一个小的技术差异是,在Inception-ResNet的情况下,我们仅在传统层之上使用批量标准化,而不是在求和之上。 有理由期望彻底使用批量标准化应该是有利的,但我们希望在单个GPU上保持每个模型的复制能力。事实证明,具有大激活大小的层的内存占用消耗了不成比例的GPU内存。 通过省略这些层之上的批量标准化,我们能够大大增加Inception块的总数。 我们希望通过更好地利用计算资源,使这种权衡变得不必要。
  • 我们还发现,如果过滤器的数量超过1000,则残差变量开始表现出不稳定性,并且网络刚刚在训练中“死亡”,这意味着平均合并之前的最后一层在几十之后开始仅产生零。无论是通过降低学习率还是通过向该层添加额外的批量标准化,都无法避免这种情况。
  • 我们发现在将残差添加到上一层激活之前缩小残差似乎可以稳定训练。 通常,我们选择0.1和0.3之间的一些比例因子,以在残差被添加到累积层激活之前对其进行缩放。He等人观察到类似的不稳定性。 在非常深的残差网络的情况下,他们建议进行两阶段训练,其中第一个“预热”阶段以非常低的学习率完成,接着是第二阶段具有高学习率。 我们发现,如果过滤器的数量非常高,那么即使非常低(0.00001)的学习率也不足以应对不稳定性,而高学习率的训练有机会破坏其影响。 我们发现仅仅缩放残差更加可靠。

Training Methodology

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

Conclusions

  • Inception-ResNet-v1:混合Inception版本,与[15]中的Inception-v3具有相似的计算成本。
  • Inception-ResNet-v2:价格昂贵的混合Inception版本,具有显着提高的识别性能。
  • Inception-v4:纯粹的Inception变体,没有残差连接,具有与Inception-ResNet-v2大致相同的识别性能。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值