又改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

相关文章
|
机器学习/深度学习 算法 计算机视觉
经典神经网络论文超详细解读(五)——ResNet(残差网络)学习笔记(翻译+精读+代码复现)
经典神经网络论文超详细解读(五)——ResNet(残差网络)学习笔记(翻译+精读+代码复现)
3627 1
经典神经网络论文超详细解读(五)——ResNet(残差网络)学习笔记(翻译+精读+代码复现)
|
数据可视化 计算机视觉
Backbone | What?没有Normalize也可以起飞?全新Backbone之NF-ResNet(文末获取论文与源码)
Backbone | What?没有Normalize也可以起飞?全新Backbone之NF-ResNet(文末获取论文与源码)
91 1
|
机器学习/深度学习 数据挖掘 Go
深度学习论文阅读图像分类篇(五):ResNet《Deep Residual Learning for Image Recognition》
更深的神经网络更难训练。我们提出了一种残差学习框架来减轻 网络训练,这些网络比以前使用的网络更深。我们明确地将层变为学 习关于层输入的残差函数,而不是学习未参考的函数。我们提供了全 面的经验证据说明这些残差网络很容易优化,并可以显著增加深度来 提高准确性。在 ImageNet 数据集上我们评估了深度高达 152 层的残 差网络——比 VGG[40]深 8 倍但仍具有较低的复杂度。这些残差网络 的集合在 ImageNet 测试集上取得了 3.57%的错误率。这个结果在 ILSVRC 2015 分类任务上赢得了第一名。我们也在 CIFAR-10 上分析 了 100 层和 1000 层的残差网络。
265 0
最快ViT | FaceBook提出LeViT,0.077ms的单图处理速度却拥有ResNet50的精度(文末附论文与源码)(二)
最快ViT | FaceBook提出LeViT,0.077ms的单图处理速度却拥有ResNet50的精度(文末附论文与源码)(二)
112 0
|
机器学习/深度学习 编解码 数据挖掘
最快ViT | FaceBook提出LeViT,0.077ms的单图处理速度却拥有ResNet50的精度(文末附论文与源码)(一)
最快ViT | FaceBook提出LeViT,0.077ms的单图处理速度却拥有ResNet50的精度(文末附论文与源码)(一)
195 0
|
计算机视觉
又改ResNet | 重新思考ResNet:采用高阶方案的改进堆叠策略(附论文下载)(二)
又改ResNet | 重新思考ResNet:采用高阶方案的改进堆叠策略(附论文下载)(二)
102 0
|
机器学习/深度学习 算法 数据可视化
计算机视觉论文速递(四)Dynamic Sparse R-CNN:Sparse R-CNN升级版,使用ResNet50也能达到47.2AP
 首先,Sparse R-CNN采用一对一标签分配方案,其中匈牙利算法对每个Ground truth只匹配一个正样本。这种一对一标签分配对于学习到的proposal boxes和Ground truth之间的匹配可能不是最佳的。为了解决这一问题,作者提出了基于最优传输算法的动态标签分配(DLA),在Sparse R-CNN的迭代训练阶段分配递增的正样本。随着后续阶段产生精度更高的精细化proposal boxes,在后续阶段对匹配进行约束,使其逐渐松散。
145 0
|
6月前
|
机器学习/深度学习 PyTorch 测试技术
|
5月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】31. 卷积神经网络之残差网络(ResNet)介绍及其Pytorch实现
【从零开始学习深度学习】31. 卷积神经网络之残差网络(ResNet)介绍及其Pytorch实现
|
机器学习/深度学习 PyTorch 算法框架/工具
ResNet代码复现+超详细注释(PyTorch)
ResNet代码复现+超详细注释(PyTorch)
2223 1

热门文章

最新文章