经典分类模型(五):Inception_v2_v3(2015)

Rethinking the Inception Architecture for Computer Vision----2015_inception_v2v3

Abstract**

**卷积网络是用于各种任务的大多数最新计算机视觉解决方案的核心。**自2014年以来,非常深的卷积网络开始成为主流,并在各种基准中获得了可观的收益。尽管增加的模型大小和计算成本往往会转化为大多数任务的即时质量提升(只要提供足够的标记数据用于培训),但计算效率和低参数数量仍然是各种用例(如移动视觉和大型应用)的促成因素。 数据方案。在这里,**我们正在探索以适当的因式分解卷积和积极的正则化为目标的网络扩展方式,旨在尽可能有效地利用增加的计算量。**我们在ILSVRC 2012分类挑战验证集上对我们的方法进行了基准测试,结果表明,与现有技术相比,该方法具有显着优势:使用50亿次乘法运算的网络进行单帧评估时,top-1误差为21.2%,top-5误差为5.6%。使用少于2500万个参数的每个推论相加。通过4个模型的集成和多次作物评估,我们报告了3.5%的top-5误差和17.3%的top-1误差。

1.Introduction

自从Krizhevsky等人[9]在2012年ImageNet竞赛中获奖以来,他们的网络“ AlexNet”已成功应用于各种计算机视觉任务,例如对象检测[5],分割[12] ,人体姿势估计[22],视频分类[8],对象跟踪[23]和超分辨率[3]。

这些成功激发了新的研究领域,专注于发现性能更高的卷积神经网络。从2014年开始,通过利用更深更广的网络,网络架构的质量得到了显着改善。在2014年ILSVRC [16]分类挑战赛中,VGGNet [18]和GoogLeNet [20]获得了类似的高性能。一项有趣的观察是,分类性能的提高趋向于在广泛的应用领域中转化为明显的质量提高,这意味着深度卷积体系结构的体系结构改进可用于提高大多数其他越来越依赖的计算机视觉任务的性能高质量,学习的视觉功能。而且,在AlexNet功能无法与手工设计,制作的解决方案(例如,NetApp)竞争的情况下,网络质量的提高导致卷积网络有了新的应用领域。检测中的提案生成[4]。

尽管VGGNet [18]具有结构简单的引人注目的功能,但这付出了高昂的代价:评估网络需要大量的计算。另一方面,即使在严格的内存和计算预算约束下,GoogLeNet的Inception体系结构[20]也可以很好地执行。例如,GoogleNet仅使用500万个参数,这比其前身AlexNet(使用6000万个参数)减少了12倍。此外,VGGNet使用的参数比AlexNet多大约3倍。

Inception的计算成本也远低于VGGNet或其性能更高的后继产品[6]。这使得在大数据场景[17] [13]中使用Inception网络变得可行,在大数据场景中,需要以合理的成本处理大量数据,或者固有地限制内存或计算能力的场景,例如在移动视觉中设置。通过应用针对目标内存使用的专门解决方案[2],[15]或通过计算技巧优化某些操作的执行[10],肯定可以减轻这些问题的影响。但是,这些方法增加了额外的复杂性。此外,这些方法也可以用于优化Inception架构,从而再次扩大效率差距。

尽管如此,Inception体系结构的复杂性使得对网络进行更改变得更加困难。如果天真地扩展该体系结构,很大一部分计算收益可能会立即丢失。同样,[20]也没有提供有关导致GoogLeNet体系结构的各种设计决策的因素的清晰描述。这使得在保持其效率的同时使其适应新的用例变得更加困难。例如,如果认为有必要增加某些Inception样式模型的容量,则只需将所有滤波器组大小的数量加倍的简单转换将导致计算成本和参数数量增加4倍。在许多实际情况下,这可能被证明是禁止或不合理的,尤其是在相关收益不大的情况下。在本文中,我们从描述一些通用原理和优化思想开始,这些原理和优化思想对于以有效方式扩展卷积网络很有用。尽管我们的原理不仅限于Inception类型的网络,但由于Inception样式构建块的通用结构足够灵活,可以自然地合并这些约束,因此在这种情况下更易于观察,这是由于大量使用了降维和Inception模块的并行结构,可以减轻结构变化对附近组件的影响。仍然需要谨慎行事,因为应遵循一些指导原则以保持模型的高质量。

2.General Design Principles

在这里,我们将基于基于卷积网络的各种架构选择的大规模实验,描述一些设计原则。 在这一点上,以下原理的实用性是推测性的,将来需要更多的实验证据来评估其准确性和有效性。 尽管如此,与这些原理的严重偏离往往会导致网络质量的下降,而固定位置的情况(检测到这些偏离)通常会导致体系结构的改善。

1.慎用bottlenecks,尤其是在网络早期。前馈网络可以由从输入层到分类器或回归器的非循环图表示。这为信息流定义了明确的方向。对于将输入与输出分开的任何剪切,都可以访问通过剪切的信息量。人们应该避免极端压缩的bottlenecks。通常,表示形式的大小应从输入到输出逐渐减小,直到达到用于当前任务的最终表示形式。从理论上讲,信息内容不能仅仅通过表示的维度来评估,因为它丢弃了诸如相关结构之类的重要因素。维度仅提供信息内容的粗略估计。

2.高维表示更易于在网络内本地处理。在卷积网络中增加每个图块的激活次数可以使特征数目变多。生成的网络将收敛得越快。

3.可以在较低维的嵌入上进行空间聚合,而不会损失很多表示能力。例如,在进行更分散(例如3×3)的卷积之前,可以在空间聚集之前减小输入表示的尺寸,而不会期望严重的不利影响。我们假设这样做的原因是,如果在空间聚集环境中使用输出,则在降维期间相邻单元之间的强相关性将导致更少的信息丢失。鉴于这些信号应该很容易
可压缩的降维甚至可以促进更快的学习。

4.平衡网络的宽度和深度。通过平衡每个阶段的滤波器数量和网络深度,可以达到网络的最佳性能。增加网络的宽度和深度可以有助于提高网络质量。但是,如果并行增加两者,则可以达到恒定计算量的最佳改进。因此,应在网络的深度和宽度之间以平衡的方式分配计算预算。

尽管这些原则可能是有道理的,但使用它们来改善现成的网络质量并非易事。想法是仅在模棱两可的情况下明智地使用它们。

3. Factorizing Convolutions with Large Filter Size

GoogLeNet网络[20]的许多原始收益来自对降维的大量使用。这可以看作是一种以计算有效方式分解卷积的特殊情况。考虑例如1×1卷积层随后是3×3卷积层的情况。在视觉网络中,期望附近激活的输出高度相关。因此,我们可以期望它们的激活在聚合之前可以减少,并且这将导致类似的局部表达。

在这里,我们探索了在各种情况下分解卷积的其他方法,特别是为了提高解的计算效率。由于初始网络是完全卷积的,因此每个权重对应于每次激活一个乘法。因此,任何计算成本的减少都会导致参数数量的减少。这意味着,通过适当的因式分解,我们可以得到更多散乱的参数,因此可以得到更快的训练。同样,我们可以使用节省的计算和内存来增加网络的滤波器组大小,同时保持在单台计算机上训练每个模型副本的能力。
在这里插入图片描述
在这里插入图片描述

3.1. Factorization into smaller convolutions**

就计算而言,具有较大空间滤波器(例如5×5或7×7)的卷积往往会成比例地昂贵。例如,**在具有m个滤镜的网格上,具有n个滤镜的5×5卷积比具有相同滤镜数量的3×3卷积的计算成本高25/9 = 2.78倍。**当然,5×5过滤器可以捕获较早层中距离较远的单元的激活之间的信号之间的相关性,因此减小过滤器的几何尺寸会带来较大的表达成本。**但是,我们可以问是否可以用参数较少,输入大小和输出深度相同的多层网络代替5×5卷积。**如果放大5×5卷积的计算图,我们会看到每个输出看起来像一个小型的全连接网络,其输入上的5×5瓦片上滑动(参见图1)。由于我们正在构建视觉网络,再次利用平移不变性并用两层卷积结构替换完全连接的组件似乎很自然:第一层是3×3卷积,第二层是在第一层的3×3输出网格之上的完全连接层层(请参见图1)。在输入激活网格上滑动此小型网络归结为用两层3×3卷积替换5×5卷积(将图4与5进行比较)。

通过在相邻图块之间共享权重,此设置明显减少了参数计数。为了分析预期的计算成本节省,我们将对适用于典型情况的情况进行一些简化的假设:我们可以假设n =αm,即我们想通过恒定的alpha因子来更改激活次数/单位。由于5×5卷积正在聚集,因此α通常大于1(对于GoogLeNet,约为1.5)。用两层替换5×5层,似乎可以分两步实现此扩展:在两步中都将滤波器数量增加根号α。为了通过选择α= 1(无扩展)简化我们的估计,如果我们在不重复使用相邻网格图块之间的计算的情况下天真地滑动网络,则会增加计算成本。**可以通过两个3×3卷积层来表示此网络的滑动,该卷积层可重复使用相邻图块之间的激活。这样,我们最终净减少了(9 + 9)/ 25倍的计算量,通过这种分解使相对增益为28%。**由于每个参数在每个单元的激活计算中仅使用一次,因此对参数计数的保存完全相同。仍然,此设置提出了两个一般性问题:此替换是否会导致表达能力的损失?如果我们的主要目标是分解计算的线性部分,是否不建议在第一层保留线性激活?我们已经进行了一些控制实验(例如,参见图2),并且在分解的所有阶段中,使用线性激活总是不如使用整流线性单元。我们将此收益归因于网络可以学习的变化空间的增加,特别是如果我们批量标准化[7]输出激活。将线性激活用于降维组件时,可以看到类似的效果。

3.2空间分解为非对称卷积

以上结果表明,使用3×3 a较大的滤波器进行卷积通常不会有用,因为它们总是可以减少为3×3卷积层的序列。仍然我们可以问一个问题,是否应该将它们分解为较小的卷积,例如2×2卷积,但是事实证明,使用非对称卷积甚至可以比2×2做得更好。 n×1。例如,使用3×1卷积再加上1×3卷积等效于滑动具有与3×3卷积相同的接收场的两层网络(请参见图3)。如果输入和输出滤波器的数量相等,则对于相同数量的输出滤波器,两层解决方案仍便宜33%。相比之下,将3×3卷积分解为两个2×2卷积仅节省11%的计算量。

从理论上讲,我们可以更进一步地论证说,可以用1×n卷积再加上an×1卷积来代替任何n×n卷积,并且随着n的增加,计算成本节省显着增加(见图6)。实践中,我们发现采用这种分解在早期图层上效果不佳,但在中等网格大小(在m×m特征图上,m的范围在12到20之间)上提供了很好的结果。在该级别上,通过使用1×7卷积,然后是7×1卷积,可以实现非常好的结果。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.Utility of Auxiliary Classifiers

[20]引入了辅助分类器的概念来改善非常深层网络的收敛性。最初的动机是将有用的梯度推到较低的层,以使其立即可用,并通过在非常深的网络中解决消失的梯度问题来提高训练期间的收敛性。 Lee等人[11]也认为辅助分类器可以促进更稳定的学习和更好的收敛。有趣的是,我们发现辅助分类器并未在训练初期改善收敛性:在两个模型都达到高精度之前,带有和不带有侧头的网络的训练进程看起来几乎是相同的。在训练快要结束时,带有辅助分支的网络开始超过没有任何辅助分支的网络的精度,并达到更高的平稳期。

同样,[20]在网络的不同阶段使用了两个侧头。移除下部辅助分支不会对网络的最终质量产生任何不利影响。连同上一段中的较早观察,这意味着[20]的原始假设是这些分支有助于进化低端网络。级功能很可能放错了位置。相反,我们认为辅助分类器充当正则化器。如果侧分支是批归一化的[7]或具有退出层,则网络的主分类器会更好地支持这一事实。这也为批处理归一化充当正则化的猜想提供了微弱的支持证据。
在这里插入图片描述

5.Efficient Grid Size Reduction

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
传统上,卷积网络使用某种池化操作来减小特征图的网格大小。为了避免出现代表性瓶颈,在应用最大或平均池之前,将扩展网络过滤器的激活维度。例如,从一个具有k个滤波器的d×d网格开始,如果我们想得到一个具有2k滤波器的d / 2xd/2网格,我们首先需要计算具有2k个滤波器的stride-1卷积,然后应用附加的合并步骤。这意味着,使用2d^2 k^ 2运算在较大的网格上进行昂贵的卷积运算将占总体计算成本的主导。一种可能性是切换到卷积合并,因此导致2(d / 2)2k2将计算成本降低四分之一。但是,这会造成表示瓶颈,因为表示的整体维数下降到(d / 2)^2k,导致表达网络较少(请参见图9)。代替这样做,我们建议另一种变体在消除代表性瓶颈的同时进一步降低计算成本。 (请参见图10)。我们可以使用两个并行的跨步2块:P和C。P是激活的池化层(平均池或最大池),它们都属于跨步2,其级联如图10所示。

6.Inception-v2
在这里插入图片描述
在这里,我们从上方连接各个点,并根据ILSVRC 2012分类基准提出了一种具有改进性能的新体系结构。表1给出了我们网络的布局。请注意,基于第3.1节中所述的相同思想,我们已将传统的7×7卷积分解为三个3×3卷积。对于网络的初始部分,我们有3个35×35的传统启动模块,每个模块有288个过滤器。使用第5节中描述的网格缩减技术,可以将其缩减为具有768个滤波器的17×17网格。随后是5个实例化的初始模块的实例,如图5所示。这可以缩减为8×8×1280。网格使用图10所示的网格缩减技术。在最粗糙的8×8级别上,我们有两个Inception模块,如图6所示,每个图块的串联输出滤波器组大小为2048。该网络的详细结构,包括Inception模块内部的滤波器组的大小,在补充材料中给出,该材料在此提交的tar文件中的model.txt中给出。

但是,我们已经观察到,只要遵守第二部分的原则,网络的质量相对稳定就可以适应变化。尽管我们的网络深达42层,但我们的计算成本仅比GoogLeNet高约2.5倍,并且仍然比VGGNet高效得多。

11.Conclusions

我们提供了多种设计原则来扩大卷积网络,并在Inception体系结构的背景下对其进行了研究。与更简单,更单一的体系结构相比,该指南可导致高性能视觉网络具有相对适中的计算成本。在ILSVR 2012分类中,针对单作物评估,我们质量最高的Inception-v3版本达到21.2%,top-1和5.6%top-5错误,树立了新的技术水平。与Ioffe等人[7]中描述的网络相比,这是通过相对适度(2.5倍)的计算成本增加来实现的。与基于密集网络的最佳结果相比,我们的解决方案使用的计算量仍然要少得多:我们的模型优于He等人的结果[6] –将top-5(top-1)误差降低了25%(14%),相对分别–在计算上便宜六倍,并且使用的参数至少少五倍(估计)。我们的四个Inception-v3模型合计达到3.5%,多播评估达到3.5%的前5个错误,这比最佳发布结果降低了25%以上,几乎是ILSVRC 2014赢得GoogLeNet合奏错误的一半。

我们还证明了在低至79×79的接收场分辨率下可以达到高质量的结果,这可能对检测较小物体的系统很有帮助。我们已经研究了神经网络内部的分解卷积和主动降维如何在保持高质量的同时,使网络具有较低的计算成本。较低的参数计数和附加的正则化与批归一化的辅助分类器和标签平滑的结合,可以在相对中等大小的训练集上训练高质量的网络。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值