RepVGG:Making VGG-style ConvNets Great Again
https://arxiv.org/abs/2101.03697
Background
VGG在神经网络的发展历史中有着举足轻重的地位,13年一举夺下ImageNet分类冠军,时至今日,依然被广泛研究和使用。虽然这些年已经有各种工作,逐渐在精度层面超越了VGG,如ResNet,Icp等经典多分支网络网络,及更近些年基于搜索的NAS类工作及RegNet等精心设计的网络。但这些网络结构,虽然在分类精度上表现出更好的优越性,但VGG简洁的架构(conv-relu-pooling的plain堆叠)依然在inference速度上表现出较好的优势。
Related work and the limit
在VGG之后的网络架构设计,比较突出的包括ResNet,Icp,DesNet等多分支结构,降低了网络运行速度及内存利用率,降低并行度。近几年的一些卷积模块设计,包括depthwise, shuffle等操作,增加了内存访问消耗,而且对很多硬件来说并不支持。这些复杂结构虽然提高了精度,也降低了FLOPs等参数,但对于实际的运行速度提升并不明显,因此在实际的工程中,VGG及基础的ResNet网络依然被广泛使用。
问题核心:VGG精度较差但有利于硬件inference;多分枝网络有利于训练,精度高,但在inference时受限
Novel points
通过重参数化操作,将多分枝网络的training和inference阶段解耦,实现高精度的训练,和低latency的推理。
decouple the training-time multi-branch and inference-time plain architecture via structural re-parameterization
Methodology
RepVGG的核心结构如图所示,在training时采用多分枝结构,inference时等效替换为VGG-style的结构。网络部件选择Conv_3x3和Relu(3.1节实验显示3x3卷积的计算密度最高,最受欢迎)。
training: 网络结构如图B所示,采用类似于ResNet的多分枝结构(多分枝包含隐性的网络ensemble,有利于解决训练过程中的梯度消失问题),主要为并行的(3x3Conv, 1x1Conv, Identity,三者后都增加BN操作),三个操作并行结束后add组合,再经过一个Relu。在down sample的时候,采用stride = 2的卷积,放弃了VGG中的pooling。
inference: 如图C所示,简洁的Conv + Relu形式网络
*转换(Re-Parameterization):这一部分是核心问题,如何实现训练和推理时的架构等效替换,而不造成精度损失,较为关键。
具体步骤如图所示:主要分为两个步骤: 1、卷积与BN层的合并,即模型部署中常见的merge操作;2、分支的组合。这里其实还隐含了一个卷积核的转换步骤:首先通过数学等效替换,采用一个固定参数的1x1 kernel(值为1)来作为Identity操作;然后对两个1x1 卷积(原有的+identity转换的)进行zero-padding转为等效的3x3Conv;最后对所得的三个3x3卷积(带bias)的卷积核直接组合(对应点相加)为一个3x3 Conv。由于该多分支部分未涉及到非线性变换,因此可以实现数学上的等效变换而不影响最终结果。
Evaluation(benchmark, experiments design)
结果非常优秀,在ImageNet上的精度及速度对比如图所示。总的来说,实验结果有以下几项内容:
1、相比于原始VGG及其他类似的Plain网络改进工作来说,在精度层面都有较大的提升,因此该方法采用multi-branch的结构进行训练是有效的。
2、在不同尺度的缩放下,RepVGG在精度和速度上都普遍超越了ResNet系列及RegNext系列网络,效果非常突出。
3、在分割等泛化实验中,同样证明了该架构的有效性
4、Ablation实验证明了训练中的多分枝架构的有效性,具体如下所示。
Thoughts:
1、Describe what the authors of the paper aim to accomplish, or perhaps did achieve.
提出了一种训练与推理解耦的网络架构RepVGG,训练时采用多分枝结构提高精度,训练结束后采用重参数化方法改变架构变为VGG-style的网络,从而更有效地实现推理。
2、If a new approach/ technique/ method was introduced in a paper, what are the key elements of the newly proposed approach?
采用重参数化的方法,有效地将多分枝结构等效替换为single-path的结构
3、What content within the paper is useful to you?
一种reasonable并且易于实现的方法,对实际的神经网络工业应用有重要价值。
4、Which parts are not perfect, or need to be improved or researched further?
在Re-parameterization部分的推理不够详尽,(ACB中有详细推导,可以进行参考,ACB同样是该团队关于重参数化的一项研究)