Gustav Larsson(University of Chicago,[email protected])
Michael Maire(TTI Chicago,[email protected])
Gregory Shakhnarovich(TTI Chicago,[email protected])
提出了一种基于自相似性的神经网络宏结构设计策略。重复应用一个简单的扩展规则生成深层网络,其结构布局是精确截断的分形。这些网络包含不同长度的相互作用子路径,但不包括任何通过或残余连接;每个内部信号在被后续层看到之前都经过滤波器和非线性变换。在实验中,分形网络在CIFAR和ImageNet分类任务中都与标准残差网络的优异性能相匹配,从而证明了残差表示可能不是极深卷积神经网络成功的基础。相反,关键可能是在训练过程中,从浅到深的过渡能力。我们注意到与学生-教师行为的相似性,并开发了辍学的自然延伸-辍学路径,以规范分形结构中各子路径的共同适应。这种正则化允许提取高性能的固定深度子网络。此外,分形网络还表现出一种“随时”的特性:浅层的子网提供快速的答案,而较深的子网,具有更高的延迟,可以提供更准确的答案。
残差网络(He et al.,2016a)或ResNets,通过约束网络学习残差,使得卷积神经网络的深度和精确度都有了显著的提高。ResNet变体(He et al.,2016a;b;Huang et al.,2016b)和相关架构(Srivastava et al.,2015)采用了通过直通通道初始化和锚定网络到身份功能的常用技术。现在的训练在两个方面有所不同。首先,目标变为学习剩余输出,而不是无参考的绝对映射。其次,这些网络表现出一种深度监督(Lee et al.,2014),因为近身份层有效地缩短了与损失的距离。他等。(2016a)推测前者,即剩余配方本身,至关重要。
相反,我们通过构建一个不依赖残差的极具竞争力的深度架构来展示。我们的设计原则足够纯粹,可以用一个单词、分形和一个简单的图表来交流(图1)。然而,分形网络隐含地再现了许多硬连接到以前成功的架构中的属性。深度监督不仅会自动产生,而且会推动网络内部的一种学生-教师学习(Ba&Caruana,2014;Urban et al.,2017)。其他设计的模块化构建块(Szegedy et al.,2015;Liao&Carneiro,2015)类似于分形网络嵌套子结构的特殊情况。
对于分形网络,训练的简单性反映了设计的简单性。附加到最后一层的单一损失就足以驱动内部行为模仿深度监管。参数是随机初始化的。由于分形网络包含许多深度的子网络,因此它们对总体深度的选择是鲁棒的;使它们足够深,训练将形成一个有用的子网络集合。
分形设计所产生的全部突发行为可能会削弱对近期工程技巧的需求,以达到类似的效果。这些技巧包括身份初始化的剩余函数形式、手动深度监督、手工构建的体系结构模块和学生-教师培训制度。第2节回顾了大量相关技术。混合设计当然可以将它们中的任何一个都与分形结构相结合;我们对这种混合体在多大程度上的协同作用没有定论。
图1. 分形结构。 左图:一个简单的扩展规则生成了一个由C交织的列组成的分形结构。基本情况f 1 pzq在输入和输出之间有一个选定类型的单层(例如卷积)。连接层计算元素平均值。右图:深卷积网络通过合流定期降低空间分辨率。分形版本使用fc作为池层之间的构建块。叠加B这样的块产生一个网络,其总深度(以卷积层为单位)为B2C-1。本例深度为40(B=5,C=4)
我们的主要贡献有两个方面:
作为另一个贡献,我们开发了drop-path,一种用于超深分形网络的正则化协议。在没有数据扩充的情况下,使用下降路径和丢失训练的分形网络(Hinton等人,2012年)超过了通过随机深度正则化的剩余网络的性能(Huang等人,2016b)。尽管,像随机深度一样,它随机删除宏尺度的组件,drop path进一步利用我们的分形结构来选择要禁用的组件。
Drop-path不仅构成了一种正则化策略,而且还提供了一种任意赋予分形网络任何时间行为的方法。在学习过程中,特定的丢弃路径调度阻止了不同深度的子网络的协同适应。因此,浅层和深层子网都必须各自产生正确的输出。因此,在完成整个网络之前,对浅层子网的查询会产生一个快速而适度准确的结果。
第三节详细阐述了分形网络和下降路径的技术细节。第4节提供了在CIFAR-10、CIFAR-100(Krizhevsky,2009)、SVHN(Netzer等人,2011)和ImageNet(Deng等人,2009)数据集中的残差网络的实验比较。我们还评估了正则化和数据扩充策略,调查了子网学生-教师在培训期间的行为,并对使用drop-path获得的任何时候的网络进行了基准测试。第5节提供了综合。由于封装了许多已知的,但看似不同的设计原则,自相似结构可能成为神经结构的一个基本组成部分。
不断深化的前馈神经网络通常在性能上有所回报。Glenziegy等人,2015年《从计算机到计算机的改进》等(2015年)。不幸的是,更大的深度也使训练更具挑战性,至少在使用随机初始化层的一阶优化方法时是如此。随着网络越来越深和非线性,梯度步长的线性近似变得越来越不合适。克服这些困难的愿望推动了优化技术和网络体系结构的研究。
在优化方面,最近的工作取得了改进。为了防止梯度消失,ReLU激活函数现在广泛取代了乙状结肠和tanh单位(Nair&Hinton,2010)。这个主题仍然是一个活跃的研究领域,对ReLUs进行了各种调整,例如PReLUs(Heetal.,2015)和ELUs(Clevert et al.,2016)。即使使用ReLUs,使用批处理标准化(Ioffe&Szegedy,2015)也可以通过减少内部协变量的偏移来加快训练速度。良好的初始化也可以改善这个问题(Glorot&Bengio,2010;Mishkin&Matas,2016)。Path SGD(Neyshabur等人,2015)提供了一种替代的标准化方案。优化方面的进展与我们的架构关注点有些正交,期望两者中的任何一个方面的进展都是成熟的组合。
体系结构中值得注意的思想可以追溯到跳过连接,这是神经网络中非平凡路由模式的最早例子。最近的工作进一步阐述了这些问题(Maire et al.,2014;Hariharan et al.,2015)。公路网(Srivastava et al.,2015)和ResNet(He et al.,2016a;b)以参数化通过和选通的形式提供额外的扭曲。在我们自己的后续工作中,黄等。(2016a)研究具有显式跳过连接的ResNet变体。这些方法与其他被证明可以扩展到数百层及以上的设计一样,有着共同的区别。ResNet的构建块使用身份映射作为定位点,并显式地参数化一个附加的校正项(残差)。身份初始化也出现在循环网络的背景下(Le等人,2015)。ResNet和公路网倾向于回到同一地图上,这可能使它们的有效深度远小于其标称深度。
一些先前的结果暗示了我们在第4节中的实验结果。也就是说,有效深度的减少是训练极深网络的关键;残差是偶然的。Huang等人。(2016b)在他们关于随机深度的研究中提供了一条线索:在训练期间随机地从ResNet中删除层,从而以恒定的因子收缩网络深度,从而提供额外的性能优势。我们通过下降路径来建立这种直觉,它使深度大大缩小。
深度监督的成功(Lee et al.,2014)提供了另一条线索,即有效深度至关重要。在这里,一个从中层分叉出来的辅助损耗,在反向传播过程中引入了一个较短的路径。分叉处的层接收来自主损耗和辅助损耗的两个渐变,它们相加在一起。深度监督现在很普遍,例如,被GoogLeNet采用(Szegedy等人,2015)。然而,辅助损耗在测试时的无关性引入了一个缺点,即实际目标与用于培训的目标不一致。
对学生-教师范式的探索(Ba&Caruana,2014)揭示了不同深度网络之间相互作用的潜力。在模型压缩场景中,一个更深层次的网络(之前经过培训)可以引导和改进更浅、更快的学生网络的学习(Ba&Caruana,2014;Urban等人,2017)。教师通过未标记的模拟数据来完成教师的预测。FitNets(Romero et al.,2015)明确地将学生和教师结合起来,强迫学生在网络中的几个中间点模仿行为。我们的分形网络以隐式耦合的形式捕捉了另一种选择,即在浅层和深层子网之间进行双向信息流。
通过使用更大的模块代替单个层来扩展网络,也带来了性能提升。例如,起始模块(Szegedy等人,2015)将不同感受野大小的卷积层的结果串联起来。将这些模块堆叠起来就形成了GoogLeNet体系结构。Liao和Carneiro(2015)采用了maxout代替串联的变体。图1显示了我们与这些工作的联系。随着分形网络的加深,它也会变宽。此外,注意,用相同的空间感受野(例如3×3)堆叠两个2D卷积层可获得更大的(5×5)感受野。分形网络的水平横截面使人想起初始模块,但递归结构导致的附加连接除外。
我们从图1所示的更正式的想法开始。卷积神经网络作为我们的运行示例,在接下来的部分中,我们将使用我们的实验平台。然而,值得强调的是,我们的框架更具普遍性。原则上,图1中的卷积层可以替换为不同的层类型,甚至是定制设计的模块或子网,以生成其他分形结构。
设C表示截断分形fC()的指数。我们的网络结构、连接和层类型由fC()定义。由单个卷积层组成的网络是基本情况:
f 1 ( z ) = c o n v ( z ) . . . . . . . . . . . . . . . . ( 1 ) f_1(z)=conv(z)................(1) f1(z)=conv(z)................(1)
我们递归地定义连续分形:
f C + 1 ( z ) = [ ( f C ∘ f C ) ( z ) ] ⊕ [ c o n v ( z ) ] . . . . . . . . . . . . . . ( 2 ) f_{C+1}(z)=[(f_C\circ f_C)(z)]\oplus[conv(z)]..............(2) fC+1(z)=[(fC∘fC)(z)]⊕[conv(z)]..............(2)
其中 ∘ \circ ∘表示组合, ⊕ \oplus ⊕表示连接操作。当以图1的样式绘制时,C对应于网络 f C ( ⋅ ) f_C(\cdot) fC(⋅)的列数或宽度。深度,定义为输入和输出之间最长路径上的conv层数,按 2 C − 1 2^{C-1} 2C−1缩放。用于分类的卷积网络通常分布在池层中。我们通过使用 f C ( ⋅ ) f_C(\cdot) fC(⋅)作为构建块并将其与随后的池层B次叠加,得到总深度 B ⋅ 2 C − 1 B\cdot 2^{C-1} B⋅2C−1。
join操作 ⊕ \oplus ⊕将两个特性blob合并为一个。在这里,blob是conv层的结果:一个张量在一个空间域上保持固定数量通道的激活。通道计数对应于前一个conv层中过滤器集的大小。随着分形的扩展,我们将相邻的连接折叠成一个跨越多个列的单个连接层,如图1右侧所示。连接层将其所有输入特性blob合并为单个输出blob。
对于连接层的操作,有几个选择似乎是合理的,包括连接和添加。我们实例化每个连接来计算其输入的元素平均值。这适用于卷积网络,其中对于分形块内的所有conv层,信道计数设置为相同的。平均值可能看起来类似于ResNet的加法运算,但有关键区别:
这些属性共同确保连接层不是残差学习的替代方法。
Dropout(Hinton et al.,2012)和drop connect(Wan et al.,2013)修改顺序网络层之间的交互,以阻止协同适应。由于分形网络包含额外的宏观尺度结构,我们建议用类似的粗尺度正则化方案来补充这些技术。
图2说明了放置路径。正如dropout防止激活的协同适配一样,drop path通过随机丢弃连接层的操作数来防止并行路径的协同适配。这不鼓励网络使用一个输入路径作为锚点,而将另一个输入路径用作校正项(如果不加以阻止,这种配置很容易过度拟合)。我们考虑两种抽样策略:
图2. 放置路径。分形网络块的功能,层之间的某些连接被禁用,前提是输入到输出的某些路径仍然可用。Drop path保证至少有一个这样的路径,同时在禁用许多其他路径的子网中进行采样。在训练过程中,将不同的活动子网络呈现给每个小批量,可以防止并行路径的协同适应。全局采样策略返回单列作为子网。交替使用它和本地采样鼓励将单个列开发为性能独立的子网
与dropout一样,信号可能需要适当的重新缩放。对于元素级的平均值,这是微不足道的;每个连接只计算其活动输入的平均值。
在实验中,我们使用辍学和50%局部和50%全局采样的混合模型对滴路进行训练。我们在每一个小批量中抽取一个新的子网络。在有足够的内存的情况下,我们可以通过保持独立的网络并通过权重共享将它们连接在一起,从而同时评估每个小批次的一个局部样本和所有全局样本。
尽管分形连通性允许使用任何长度的路径,但全局滴路径强制使用许多长度相差数量级(2的幂次)的路径。通过滴路采样的子网络具有较大的结构多样性。这一特性与ResNet的随机深度正则化相反,后者通过对链中的每一层使用固定的下降概率,对具有集中深度分布的子网络进行抽样(Huang等人,2016b)。
全局下降路径不仅可以作为正则化器,而且可以作为诊断工具。如第4.3节更详细地讨论的那样,监视单个列的性能可以深入了解网络和培训机制。在速度(浅)和精度(深)之间进行权衡时,不同深度的单独强列也给用户提供了选择。
数据扩充可以减少正则化的需要。ResNet证明了这一点,在CIFAR-100上实现了27.22%的错误率,而没有增强的CIFAR-100错误率为44.76%(Huang等人,2016b)。虽然增加有利于分形网络,但我们表明drop-path提供了高效的正则化,允许它们在没有数据扩充的情况下也能获得竞争性的结果。
我们使用Caffe实现分形网络(Jia等人,2014)。纯粹为了方便起见,我们在图1中的块末尾翻转池和连接层的顺序。我们在跨所有列的连接之前立即对单个列进行池化,而不是在它们之后立即池化一次。
我们利用动量随机梯度下降训练分形网络。作为现在的标准,我们将批量标准化与每个conv层(卷积、批处理规范、然后是ReLU)一起使用。
表1. CIFAR-100/CIFAR-10/SVHN。我们将测试误差(%)与其他领先的方法进行比较,这些方法要么没有数据增强,要么转换/镜像(+),要么更大幅度地增加(++)。我们的主要比较点是ResNet。我们使用数据扩充技术与它的基准结果紧密匹配,在没有数据扩充的情况下,我们的表现大大优于它。使用drop-path训练,我们可以从竞争激烈的FractalNet单列(plain)网络中提取
(1 密集连接网络(DenseNets)是并行工作,出现在arXiv关于分形网的原始论文之后。残差连接形式的残差交换。我们报告了其250层DenseNet-BC网络的性能,增长率为k“24。
2 这个更深的(4列)分形网的参数较少。我们首先改变列宽:(128,64,32,16)个通道跨越列,除了最后一个外,每个块加倍。线性投影在连接之前暂时加宽较薄的柱。如Iandola等人(2016年)所述,我们切换到1×1和3×3卷积滤波器的混合。)
CIFAR、SVHN和ImageNet数据集用作与先前工作进行比较和FractalNet内部行为分析的试验台。我们评估与每个数据集相关联的标准分类任务的性能。对于由32×32幅图像组成的CIFAR和SVHN,我们将我们的分形网络设置为5个块(B=5),每个块之后应用2×2非重叠最大池和子采样。这将在整个网络过程中将输入的32×32空间分辨率降低到1×1。softmax预测层连接在网络的末端。除非另有说明,我们将块1到块5内的滤波器信道数设置为(64,128,256,512,512),这主要与将空间分辨率减半后信道数加倍的约定相匹配。
对于ImageNet,我们选择分形结构,以便于与He等人的34层ResNet进行直接比较。(2016a)。我们使用与ResNet-34相同的第一层和最后一层,但是将网络的中间部分改为由4个块组成(B=4),每个块包含8个层(C=4列)。我们在块1到块4中使用(128,256,512,1024)的滤波器通道级数。
对于使用辍学的实验,我们将每个区块的下降率固定为(0%、10%、20%、30%、40%),类似于Clevert等人(2016年)。本地丢弃路径在整个网络中使用15%的丢弃率。
表2. ImageNet(验证集,10个裁剪)
表3. 超深分形网络(CIFAR-100++)。增加深度可以大大提高精度,直到最终收益递减。与普通网络相比,如果制作得太深,则无法训练(表4)
表4. 分形结构作为训练设备(CIFAR-100++)。普通网络在中等深度时表现良好,但在训练过程中表现出较差的收敛性。然而,当一个列在具有混合下降路径的分形网络中训练并提取出来时,我们恢复了一个克服这种深度限制(可能是由于学生-教师效应)的普通网络
我们在CIFAR上运行了400个epoch,在SVHN上运行了20个epoch,在ImageNet上运行了70个epoch。我们的学习率从0.02开始(ImageNet为0.001),我们使用随机梯度下降法进行训练,批次大小为100(ImageNet为32),动量为0.9。对于CIFAR/SVHN,只要剩余的时代数减半,学习率就会降低10倍。对于ImageNet,我们在第50和第65时代下降了10倍。我们使用Xavier初始化(Glorot和Bengio,2010)。
广泛采用的CIFAR数据增强方案(Lin et al.,2013;Clevert et al.,2016;Srivastava et al.,2015;He et al.,2016a;b;Huang et al.,2016b;Targ et al.,2016)仅包括水平镜像和平移(r´4,4s中的均匀偏移),在进行平均减法后,图像在需要时进行零填充。我们通过在数据集名称(例如CIFAR-100+)后面添加“+”来表示使用不超过此程度的扩充所获得的结果。“++”表示依赖于更多数据扩充的结果;在这里,确切的方案可能会有所不同。我们在这个类别中的条目是适度的,只是改变零填充以反映填充。
表1比较了分形网络在CIFAR和SVHN上与竞争方法的性能。FractalNet(depth 20)的性能优于原始ResNet。通过数据扩充,我们的CIFAR-100精度接近于最好的ResNet变体。在没有增强和正则化的情况下,分形网络在CIFAR上的性能优于ResNet和随机深度的ResNet,这表明分形网络可能不太容易过度拟合。大多数方法在SVHN上执行类似的操作。将深度增加到40,同时借用一些参数缩减技巧(Iandola et al.,2016),揭示了FractalNet在一系列配置选择中的性能是一致的。
没有数据扩充的实验突出了drop-path正则化的能力。在CIFAR-100上,下降路径将fractallnet的错误率从35.34%降低到28.20%。未经规范的ResNet远远落后于(44.76%),随机深度的ResNet(37.80%)没有赶上我们未经规范的起点35.34%。CIFAR-10反映了这一点。通过数据扩充,drop path提供了一个提升(CIFAR-10),或者不会显著影响FractalNet的性能(CIFAR-100)。
请注意,分形网络的最深列的性能与完整网络的性能相近(在CIFAR-10上统计上是等效的)。这表明分形结构作为学习框架可能比作为最终模型架构更重要。
表2显示了分形网络缩放到ImageNet,与ResNet(He et al.,2016a)在相同深度匹配。注意,与我们的工作同时,对剩余网络范式的改进进一步改进了ImageNet的最新技术。34层的宽残差网络(Zagoruyko和Komodakis,2016年)通过将每层的特征通道加倍,使单个作物Top-1和Top-5验证误差分别减少约2%和1%。DenseNets(Huang等人,2016a)通过构建连接而不是添加特征信道的剩余块来显著提高性能。
图3. 隐性深层监督。左图:在CIFAR-100上训练的深度为5、10、20和40的平原网络的损耗演变。对于更深层次的网络来说,培训变得越来越困难。在40层,我们无法令人满意地训练网络。右图:我们训练了一个具有混合滴路的4列分形网络,监测其损耗以及与平面网络相同深度的各个列对应的四个子网络的损耗。当20层子网开始稳定时,drop path给40层的列施加压力,使其适应,而网络的其余部分是它的老师。这解释了第4列的肘部形状的学习曲线发生在25个时代左右
表3表明,当我们增加C以获得非常深的网络(C=6为160层)时,分形网能够抵抗性能下降。本表得分与表1不可比。为了提高时间和内存效率,我们将分块特征通道减少到(16,32,64128128),并将批量大小减少到50,以支持表3和表4中的实验。
表4提供了一个基线,表明平原深层网络的训练在其深度达到40层时开始退化。根据我们的经验,一个普通的160层完全不能收敛。此表还强调了使用分形网和拖放路径作为引擎提取训练网络(列)的能力,这些网络具有与普通网络相同的拓扑结构,但测试性能要高得多。
在图3中,我们检查了训练期间40层分形网的演化。单独跟踪列(记录其作为独立网络运行时的损失),我们观察到40层的列最初改善缓慢,但一旦网络其余部分的损失开始稳定,就会恢复。与单纯的40层网络(蓝色虚线)相比,它永远不会取得快速的进展。该柱具有相同的初始平台,但随后在25个时期之后有所改善,产生了一个与平原网络不一样的损耗曲线。
我们假设分形结构触发了类似于深度监督和横向学生-教师信息流的效应。列#4与列#3每隔一层连接,并且在每四层中这种连接不涉及其他列。一旦分形网络部分依赖于通过第#3列的信号,下降路径对第#4列施加压力,以在第#3列下降时产生一个替代信号。此任务的范围受到限制。一个特定的下降只需要第4列中的两个连续层来代替第3列中的一个(一个小型的学生-教师问题)。
分形网络动力学的这种解释与Greff等人在并行工作中的解释是一致的。(2017)ResNet索赔。具体来说,Greff等人。(2017)建议残差网络学习展开迭代估计,每个层对其输入表示进行逐步细化。最深的分形网络柱也可以以同样的方式工作,网络的其余部分作为脚手架,通过从一个柱到下一个柱的两层来构建更小的细化步骤。
这些解释似乎与Veit等人的结论不一致。(2016年),他们声称,ResNet成功的基础是类似于整体的行为。对于一些非常深层的网络来说,这当然是不真实的,因为FractalNet提供了一个反例:我们可以提取一个单列(纯网络拓扑),而它本身(没有感知)的性能几乎和整个网络一样好。此外,渐进精细化的观点可以为Veit等人的实验提供另一种解释。(2016年)。如果每一层只做了一个小的修改,那么移除一个可能会看起来像是在网络的后续部分注入少量的输入噪声。也许噪声容忍度解释了Veit等人。(2016)移除ResNet层时观察。
我们的分形网络实验提供了强有力的证据,路径长度是训练超深神经网络的基础;残差是偶然的。关键是分形网和ResNet的共同特点:名义网络深度大,但在训练过程中有效地缩短了梯度传播的路径。分形结构可以说是满足这一要求的最简单的方法,并在实验性能上与剩余网络相匹配。分形网络不能太深;额外的深度可能会减慢训练速度,但不会影响准确性。
对于滴路径,极深分形网络的正则化是直观和有效的。作为一种实现速度(延迟)与精度权衡的方法,丢弃路径加倍。对于快速响应有实用价值的应用,我们可以得到分形网络,其部分评估会产生良好的结果。
我们的分析将分形网络的内部行为与设计到其他网络中的现象联系起来。它们的子结构类似于手工制作的模块,在以前的工作中用作组件。他们的培训演变可以模仿深度监督和学生-教师学习。
我们非常感谢英伟达公司对本研究所用GPU的捐赠。这项工作部分得到了国家科学基金会奖RI:1409837的支持。