又改ResNet | 重新思考ResNet:采用高阶方案的改进堆叠策略(附论文下载)(一)

简介: 又改ResNet | 重新思考ResNet:采用高阶方案的改进堆叠策略(附论文下载)(一)

1 简介


本文提出了更高阶的ResNet变体:HO-ResNet,平均涨2+个点!并进行了大量实验验证到该方法可以使性能显著的提高的同时也有助于模型的收敛和鲁棒性。(居然连ResNet-RS都引用了,太卷了

文章总结到网络整体结构的设计缺乏一般性的指导。基于近年来一些研究人员观察到的DNN设计与数值微分方程之间的关系,本文对残差设计和高阶视角进行了公平的比较。

图1 将相同的层按更高的顺序堆叠

在扎实的理论知识和无需额外参数的支持下,可以改进得到广泛使用的DNN设计策略(不断堆叠小的设计),以较高阶的方式重组残差设计,这是受以下观察启发的:许多有效的网络可以解释为微分方程的不同数值离散。ResNet的设计遵循一个相对简单的方案,该方案是Euler提出的;但是,堆叠时的情况迅速复杂化

假设堆叠的ResNet在某种程度上等于高阶方案,那么与典型的高阶方法(如Runge-Kutta)相比,当前的传递方式可能相对较弱。于是提出了更高阶的ResNet,以通过充分的实验来验证关于广泛使用的CV Baseline的假设。观察到性能稳定且显著的提高同时也有益于收敛性和鲁棒性。

本文工作主要是基于2个优秀的作品:

  1. NODEs 把整个网络作为ODE求解器。
  2. ResNet-RS Make ResNet Great Again (MRGA)。

2 残差网络的高阶设计


2.1 Euler Forward Scheme

以残差网络(ResNet)为例,设模型ResNet的L层残差神经网络为image.png。假设隐藏状态属于,输入层为:。这里把残差的设计描述为:

image.png

是整数,F表示待学习的未进一步扩展的剩余映射。

残差网络中从深度i到i+1到隐藏状态N的变换序列可以这样写,其中i和W为权重矩阵:

image.png

这里选择最简单的2个核大小为3的卷积层作为。假设一个网络为ResNet-6,即两个ResBlocks 被堆叠,可以写出输入输出的关系如下:

image.png

这里使用记录第1个ResBlock的输出,可以发现2个堆叠的ResBlock的行为与Mid-point Scheme非常相似。

2.2 Mid-point Scheme

image.png

图3 Mid-point方案

Euler方法更新为最简单的one-step方法iF,Mid-point法更新为更高阶的one-step:

image.png

如果在网络设计上比较ResBlock-Euler和ResBlock-Midpoint会有不同的叠加,如图3所示。现在有一个4层的块设计,而不是2层的设计。然而,堆叠对相同的Euler scheme进行层/阶的平等对比。

这2个block有2个不同之处:

  1. 在添加相同的快捷方式获取mid-state时,Mid-point设计将F的输出压缩了一半。
  2. 第2个short-cut是从前面的地方直接从输入。

如果将Mid-point ResBlock设计写成:

image.png

发现它非常类似于堆叠的ResBlockEuler。因此,假设堆叠的网络可以很容易地用高阶方法改进,对于为什么它可以比低阶方法更精确?在数值问题有坚实的理论基础。

2.3 4th order Runge-Kutta Scheme

是否可以用4阶的设计来进一步探索?Mai Zhu等人尝试过RK风格的设计。在本研究中将其作为一种堆叠的参考,而不是一个特定的RK-Net。RungeKutta方法(RK4)用一个4-step的方法来更新它,本文实现的ResBlock-RK4可以这样写:

image.png

网络输出为:

image.png

实现单个ResBlock-RK4需要8层,因此比较了4个堆叠的ResBlock-Euler。为了便于比较,可以用同样的方式编写堆叠的ResBlock-Euler:

image.png

网络输出为:

image.png

根据上面的总结可以很容易地理解4阶RK-ResNet和4个堆叠 ResBlocks之间的区别。在图4中发现RK4-ResBlock在某种程度上类似于DenseNet设计。但是DenseNet在每k层之后都保持short-cut而RK4-ResNet没有。此外,HO-ResNet将在数学理论的支持下缩放k的特定输出。

image.png

图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 复杂度分析

比较了采用相同尺寸、相同数量、相同设计层数的情况。可以用以下方式描述空间复杂性:

image.png

其中K为核大小,C为通道数,D为网络深度。renet的各种设计的复杂性是一样的,理论上没有额外的参数。然而,在实践中,需要额外的空间来维持高阶块内的输出,因为块的输出依赖于特定层的更多状态,而不是固定两个Baseline的ResNet。

image.png

image.png

相关文章
|
机器学习/深度学习 PyTorch 算法框架/工具
【论文泛读】 ResNeXt:深度神经网络的聚合残差变换(ResNet的改进,提出了一种新的维度)
【论文泛读】 ResNeXt:深度神经网络的聚合残差变换(ResNet的改进,提出了一种新的维度)
【论文泛读】 ResNeXt:深度神经网络的聚合残差变换(ResNet的改进,提出了一种新的维度)
|
9月前
|
机器学习/深度学习 算法 计算机视觉
经典神经网络论文超详细解读(五)——ResNet(残差网络)学习笔记(翻译+精读+代码复现)
经典神经网络论文超详细解读(五)——ResNet(残差网络)学习笔记(翻译+精读+代码复现)
474 1
经典神经网络论文超详细解读(五)——ResNet(残差网络)学习笔记(翻译+精读+代码复现)
|
12月前
|
计算机视觉
又改ResNet | 重新思考ResNet:采用高阶方案的改进堆叠策略(附论文下载)(二)
又改ResNet | 重新思考ResNet:采用高阶方案的改进堆叠策略(附论文下载)(二)
75 0
|
12月前
|
数据可视化 计算机视觉
Backbone | What?没有Normalize也可以起飞?全新Backbone之NF-ResNet(文末获取论文与源码)
Backbone | What?没有Normalize也可以起飞?全新Backbone之NF-ResNet(文末获取论文与源码)
51 1
|
机器学习/深度学习 算法框架/工具 计算机视觉
经典神经网络 | ResNet 论文解析及代码实现
经典神经网络 | ResNet 论文解析及代码实现
经典神经网络 | ResNet 论文解析及代码实现
|
机器学习/深度学习 计算机视觉 异构计算
【论文泛读】 ResNet:深度残差网络
【论文泛读】 ResNet:深度残差网络
【论文泛读】 ResNet:深度残差网络
|
机器学习/深度学习 编解码 Go
论文笔记系列:主干网络(一)-- ResNet
摘要: 深度网络训练难;残差网络可训练1000层网络;成就。 1. Introduction: 提出深层网络存在模型退化问题;分析问题并提出残差学习策略、 2. Related Work: 列举残差学习应用例子;单独用一段对比Highway Network。 3. Deep Residual Learning: Residual learning; identity learning;Network Architecture。 4. Experiments: 对ResNet进行实验
238 0
论文笔记系列:主干网络(一)-- ResNet
|
4月前
|
机器学习/深度学习 PyTorch 语音技术
Pytorch迁移学习使用Resnet50进行模型训练预测猫狗二分类
深度学习在图像分类、目标检测、语音识别等领域取得了重大突破,但是随着网络层数的增加,梯度消失和梯度爆炸问题逐渐凸显。随着层数的增加,梯度信息在反向传播过程中逐渐变小,导致网络难以收敛。同时,梯度爆炸问题也会导致网络的参数更新过大,无法正常收敛。 为了解决这些问题,ResNet提出了一个创新的思路:引入残差块(Residual Block)。残差块的设计允许网络学习残差映射,从而减轻了梯度消失问题,使得网络更容易训练。
|
9月前
|
机器学习/深度学习 PyTorch 算法框架/工具
ResNet代码复现+超详细注释(PyTorch)
ResNet代码复现+超详细注释(PyTorch)
620 0
|
5月前
|
机器学习/深度学习 数据采集 PyTorch
PyTorch搭建卷积神经网络(ResNet-50网络)进行图像分类实战(附源码和数据集)
PyTorch搭建卷积神经网络(ResNet-50网络)进行图像分类实战(附源码和数据集)
97 1

热门文章

最新文章