ResNet再进化!重新思考ResNet:采用高阶方案的改进堆叠策略

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

本文转载自:AI人工智能初学者

Rethinking ResNets: Improved Stacking Strategies With High Order Schemes


论文:https://arxiv.org/abs/2103.15244

本文提出了更高阶的ResNet变体:HO-ResNet,平均涨2+个点!实验观察到性能显著的提高,且有助于收敛性和鲁棒性。
作者单位:早稻田大学

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层残差神经网络为。假设隐藏状态 属于 ,输入层为: 。这里把残差的设计描述为:

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

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

这里选择最简单的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个不同之处:

  1. 在添加相同的快捷方式获取mid-state时,Mid-point设计将F的输出压缩了一半。

  2. 第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。

3 实验

如图10所示,在相同的设置和参数下,采用高阶叠加方法,红线所代表的基线ResNet得到了明显的改善。作者注意到fixed RK8方法有改进的潜力。它在早期阶段高于RK-4。在Verner的设计中,还应保持一个比例因子h和误差来调整台阶侧。作者认为是固定步长导致RK-8退化到RK-4。

由于收敛是有益的,作者相信在更深的模型中嵌套叠加可能有更好的性能。

论文PDF和代码下载

后台回复:HO-ResNet,即可下载上述论文PDF

后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集

后台回复:Transformer综述,即可下载最新的两篇Transformer综述PDF

重磅!Transformer交流群成立

扫码添加CVer助手,可申请加入CVer-Transformer 微信交流群,方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。

一定要备注:研究方向+地点+学校/公司+昵称(如Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

▲长按加小助手微信,进交流群

▲点击上方卡片,关注CVer公众号

整理不易,请给CVer点赞和在看

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值