推理时去除残差结构!RMNet:让ResNet、RepVGG Great Again

发布时间:2022-09-10 06:30

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

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

转载自:集智书童

推理时去除残差结构!RMNet:让ResNet、RepVGG Great Again_第1张图片

虽然残差连接可以训练深度非常深的神经网络,但由于其多分支拓扑结构,对在线推理并不友好。这鼓励了许多研究人员去设计没有残差连接的DNN。例如,RepVGG在部署时将多分支拓扑重新参数化为类VGG(单分支)结构,在网络相对较浅的情况下表现出良好的性能。然而,RepVGG不能将ResNet等效地转换为VGG,因为重新参数化方法只能应用于线性块,而非线性层(ReLU)必须放在残差连接之外,这导致了表示能力有限,特别是对于更深层次的网络。

在本文中,旨在解决这个问题,并提出通过ResBlock上的Reserving和Merging(RM)操作等效地去除普通ResNet中的残差连接。RM操作允许输入特征映射通过block,同时保留它们的信息,并在每个block的末尾合并所有的信息,在不改变原始输出的情况下去除残差连接。

RM操作作为一种plugin方法,基本上有3个优点:

  1. 其实现使其对高比率网络剪枝比较友好

  2. 突破了RepVGG的深度限制

  3. 与ResNet和RepVGG相比,RMNet具有更好的精度-速度权衡网络

RMNET: EQUIVALENTLY REMOVING RESIDUAL CONNECTION FROM NETWORKS

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

代码: https://github.com/fxmeng/RMNet

1简介

自从AlexNet问世以来,CNN最先进的架构变得越来越深入。例如,AlexNet只有5层卷积层,很快VGG网络和GoogLeNet分别将其扩展到19层和22层。然而,简单叠加层的深度网络很难训练,因为梯度反向传播到后面比较深的层时梯度可能会消失和爆炸(重复乘法可能会使梯度无穷小或无穷大)。

标准化初始化和中间标准化层在很大程度上解决了上述问题,它们使具有数十层的网络能够收敛。同时,也暴露出另一个退化问题:随着网络深度的增加,精度趋于饱和,然后迅速退化。

ResNet解决了退化问题,并通过添加一个从块的输入到输出的残差连接来实现1000+层的模型。ResNet不是希望每个堆叠层直接适合所需的底层映射,而是让这些层适合残余映射。当恒等映射是最优的时,将残差推到零比用一堆非线性层来拟合恒等映射更容易。随着ResNet的日益普及,研究者们提出了许多新的基于ResNet的架构,并从不同的方面对其成功进行了解释。

然而,ResDistill指出,ResNet-50中的残差连接约占特性图全部内存使用量的40%,这将减缓推理过程。此外,网络中的残留连接对网络剪枝也不友好。相比之下,VGG-like模型(本文也称plain模型)只有一条路径,速度快、内存经济、并行友好。

RepVGG提出了一种通过在推理时重新参数化来去除残差连接。具体来说,RepVGG将卷积、卷积和identity加在一起进行训练。在每个分支的末端加入BN层,并在加成后加入ReLU。在训练过程中,RepVGG只需要学习残差映射,而在推理阶段,利用重新参数化将RepVGG的基本块转换为卷积层加ReLU运算的堆叠,相对于ResNet有较好的速度-精度权衡。但是作者发现,随着网络的加深,RepVGG的性能会出现严重的下降。

本文提出了一种新的RM操作方法,该方法可以去除内部带有非线性层的残差连接,并保持模型的结果不变。RM操作通过第1卷积层、BN层和ReLU层保留输入的特征映射,然后在ResBlock中通过最后一次卷积将它们与输出的特征映射合并。通过这种方法,可以等价地将预训练的ResNet或MobileNetV2转换为RMNet模型,以增加并行度。此外,RMNet的体系结构使其具有良好的修剪性能,因为它没有残差连接。

主要贡献总结如下:

  • 作者发现用重参数化方法去除残差连接有其局限性,特别是在模型较深的情况下。它是一种非线性运算,不能放在残差连接内进行重新参数化;

  • 提出了一种新的RM操作方法,通过保留输入特征映射并将其与输出特征映射合并,在不改变输出的情况下去除非线性层间的残差连接;

  • 通过RM操作可以将ResBlocks转换为一个卷积和ReLU的堆叠,这有助于得到一个没有残差连接的更深层次的网络,并使其更适应于剪枝。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号