1 简介
本文提出了更高阶的ResNet变体:HO-ResNet,平均涨2+个点!并进行了大量实验验证到该方法可以使性能显著的提高的同时也有助于模型的收敛和鲁棒性。(居然连ResNet-RS都引用了,太卷了)
文章总结到网络整体结构的设计缺乏一般性的指导。基于近年来一些研究人员观察到的DNN设计与数值微分方程之间的关系,本文对残差设计和高阶视角进行了公平的比较。
图1 将相同的层按更高的顺序堆叠
在扎实的理论知识和无需额外参数的支持下,可以改进得到广泛使用的DNN设计策略(不断堆叠小的设计),以较高阶的方式重组残差设计,这是受以下观察启发的:许多有效的网络可以解释为微分方程的不同数值离散。ResNet的设计遵循一个相对简单的方案,该方案是Euler提出的;但是,堆叠时的情况迅速复杂化。
假设堆叠的ResNet在某种程度上等于高阶方案,那么与典型的高阶方法(如Runge-Kutta)相比,当前的传递方式可能相对较弱。于是提出了更高阶的ResNet,以通过充分的实验来验证关于广泛使用的CV Baseline的假设。观察到性能稳定且显著的提高同时也有益于收敛性和鲁棒性。
本文工作主要是基于2个优秀的作品:
- NODEs 把整个网络作为ODE求解器。
- ResNet-RS Make ResNet Great Again (MRGA)。
2 残差网络的高阶设计
2.1 Euler Forward Scheme
以残差网络(ResNet)为例,设模型ResNet的L层残差神经网络为。假设隐藏状态属于,输入层为:。这里把残差的设计描述为:
是整数,F表示待学习的未进一步扩展的剩余映射。
残差网络中从深度i到i+1到隐藏状态N的变换序列可以这样写,其中i和W为权重矩阵:
这里选择最简单的2个核大小为3的卷积层作为。假设一个网络为ResNet-6,即两个ResBlocks 被堆叠,可以写出输入输出的关系如下:
这里使用记录第1个ResBlock的输出,可以发现2个堆叠的ResBlock的行为与Mid-point Scheme非常相似。
2.2 Mid-point Scheme
图3 Mid-point方案
Euler方法更新为最简单的one-step方法iF,Mid-point法更新为更高阶的one-step:
如果在网络设计上比较ResBlock-Euler和ResBlock-Midpoint会有不同的叠加,如图3所示。现在有一个4层的块设计,而不是2层的设计。然而,堆叠对相同的Euler scheme进行层/阶的平等对比。
这2个block有2个不同之处:
- 在添加相同的快捷方式获取mid-state时,Mid-point设计将F的输出压缩了一半。
- 第2个short-cut是从前面的地方直接从输入。
如果将Mid-point ResBlock设计写成:
发现它非常类似于堆叠的ResBlockEuler。因此,假设堆叠的网络可以很容易地用高阶方法改进,对于为什么它可以比低阶方法更精确?在数值问题有坚实的理论基础。
2.3 4th order Runge-Kutta Scheme
是否可以用4阶的设计来进一步探索?Mai Zhu等人尝试过RK风格的设计。在本研究中将其作为一种堆叠的参考,而不是一个特定的RK-Net。RungeKutta方法(RK4)用一个4-step的方法来更新它,本文实现的ResBlock-RK4可以这样写:
网络输出为:
实现单个ResBlock-RK4需要8层,因此比较了4个堆叠的ResBlock-Euler。为了便于比较,可以用同样的方式编写堆叠的ResBlock-Euler:
网络输出为:
根据上面的总结可以很容易地理解4阶RK-ResNet和4个堆叠 ResBlocks之间的区别。在图4中发现RK4-ResBlock在某种程度上类似于DenseNet设计。但是DenseNet在每k层之后都保持short-cut而RK4-ResNet没有。此外,HO-ResNet将在数学理论的支持下缩放k的特定输出。
图4 RK4 ResBlock
Mid-point-ResBlock和RK4-ResBlock只short-cut k到block的输出,block内的单位映射都来自block的输入x。然而,一些更高阶的方法将开始将block内的k映射到其他状态。然而,系数是经过精确计算的而不是简单相加。
2.4 8(9)th order Runge-Kutta Scheme
当然可以继续这样做以包含更多层的更高阶方式堆栈ResBlock,而不仅仅是2或3层。还有许多其他版本来指导网络设计。其中许多是带有比例因子的自适应方法。这说明的压缩率可以根据返回的误差进行自适应调整。
完整的Verner s RK-8 ResBlock设计应包含16个ResBlock,这意味着32层。作者使用来表示每个块的输出,其中i是[1-16]范围内的整数。RK-8 ResBlock的最终输出仅依赖于从开始的shortcut和,其中i在[1,8,9,10,11,12,13,14]中。根据调整比例因子,其中i为[1,8,9,10,11,12,13,14,15,16]。
因此,可以使用14个ResBlocks来实现一个固定的版本。RK-8 ResBlock包含28层。同时作者还实现了具有比例因子衰减的RK-8以进行了比较。
2.5 Nested HO-Net inspired by Transformers
作者注意到Transformer内部也有堆叠问题。具有[Norm, Multi-Head Attention, Norm, MLP]的设计block,见图5:
图5 2 ResBlocks and design of Transformer Encoder
Transformer编码器外堆码设计简单直观,如图6所示:
图6 直接叠加
这里不再进一步讨论Transformer,因为它离主要focus有点远。然而,这一发现确实启发去研究Nested HO-Net。内部的块提供更精确的数值。因此,端到端的步骤可以更好地完成。HO-Net不仅可以从精确上看,而且可以从划分上看。阶数越高,Block越少。
图7 把Nested HO-Net看作是分治的
2.7 Flexible Scaling Factors
许多值得注意的网络被提出,然而,很少有缩放因子,而short-cut权值到其他状态。LM-ResNets等作品就有这样的设计,在这本文中作者在块堆叠策略上进一步扩展了它。
作者在Midpoint和RK-4方案中使用固定因子0.5,在Fixed-RK-8方案中使用固定因子1。如上所述,该因子可以适应RK-8的原始设计。然而,它将需要进一步的计算和存储空间。因此,作者尝试了一种简单、灵活的方法,利用权重衰减,看看它是如何影响的。
2.8 复杂度分析
比较了采用相同尺寸、相同数量、相同设计层数的情况。可以用以下方式描述空间复杂性:
其中K为核大小,C为通道数,D为网络深度。renet的各种设计的复杂性是一样的,理论上没有额外的参数。然而,在实践中,需要额外的空间来维持高阶块内的输出,因为块的输出依赖于特定层的更多状态,而不是固定两个Baseline的ResNet。