转载自:计算机视觉工坊
编辑:夏初
文章题目:RepVGG:Make VGG-style ConvNets outstanding again
代码地址:在公众号「计算机视觉工坊」,后台回复「RepVGG」,即可直接下载。
摘要:
本文提出一种简单而强有力的CNN架构RepVGG,在推理阶段,它具有与VGG类似的架构,而在训练阶段,它则具有多分支架构体系,这种训练-推理解耦的架构设计被称为“重参数化”。
研究现状:
尽管许多复杂的ConvNet都比简单的ConvNet提供更高的准确性,但缺点很明显。1)复杂的多分支设计(例如ResNet中的残差加法和Inception中的分支级联)使模型难以实现和定制,减慢了推理速度并降低了内存利用率。2)一些组件增加了内存访问成本,并且缺乏对各种设备的支持。此外,还有影响的因素,浮点运算(FLOP)的数量不能准确反映实际速度。因此,VGG和ResNets的原始版本仍然在学术界和工业界广泛用于现实世界的应用程序。
研究贡献:
基于上述研究现状,本文的研究人员提出了一种简单有强有的CNN架构RepVGG,相比其他架构,具有更佳的精度-速度均衡;对plain架构采用重参数化技术;并在图像分类、语义分割等任务上验证了RepVGG的有效性。
研究细节:
1. 选择ConvNet的原因:
快速:相比VGG,现有的多分支架构理论上具有更低的计算速度,但推理速度并未更快。计算速度与推理速度的矛盾主要源自两个关键因素:(1)内存访问消耗,比如多分支结构的运算很小,但内存访问消耗很高;(2)并行度,并行度高的模型要比并行度低的模型推理速度更快。
节省内存:多分支结构是一种内存低效的架构,这是因为每个分支的结构都需要在运算之前保存,这会导致更大的峰值内存占用;而plain模型则具有更好的内存高效特征。
灵活:多分支结构会限制CNN的灵活性,与此同时,多分支结构对于模型剪枝不够友好。
2. 训练中的多分支架构体系
Palin模型存在性能差的缺点。本文设计的RepVGG,其ResNet的ResBlock构建了一个短连接模型信息流,当的维度不匹配时,则转变为。尽管多分支结构对于推理不友好,但适合于训练,研究人员将RepVGG设计为训练时多分支,推理时单分支结构。研究人员设计了如下形式模块:
其中,分别对应,卷积。在训练阶段,通过简单的堆叠上述模块构建CNN架构;而在推理阶段,上述模块可以轻易转换为形式,且的参数可以通过线性组合方式从已训练好的模型中转换得到。
3. Plain架构的重新参数化
研究中将已训练模块转换成单一的卷积用于推理。下图给出了参数转换示意图。
模块中仅具有一个卷积核,两个1卷积核以及三个bias参数,三个bias参数相加即可合并为一个bias,卷积核是通过将卷积核参数与卷积核的中心点相加获取的。
4. RepVGG网络设计
RepVGG是一种类VGG的架构,文中对于每个阶段的层数按照如下规则进行相应的设计。研究人员遵循三个简单的准则来决定每个阶段的层数。1)第一阶段以高分辨率运行,很耗时,因此仅使用一层来降低延迟。2)最后一级应具有更多通道,因此仅使用一层来保存参数。3)紧随ResNet及其最新版本之后,研究人员将最多的层放到倒数第二级(在ImageNet上具有的输出分辨率),设置五个阶段分别具有1、2、4、14、1层,以构造一个名为RepVGG-A的实例。此外还构建了更深的RepVGG-B,在stage2、3和4中又增加了2层。使用RepVGG-A与其他轻型和中等重量型号竞争,包括ResNet-18 / 34/50,而RepVGG-B与高性能机型竞争
基于上述规则,RepVGG-A中的层数对应为1,2,4,14,1;RepVGG-B中的层数对应为1,4,6,16,1,下图为两者的对比。
5. 实验:
实验中,研究人员将RepVGG的性能与ImageNet上的基线进行比较,通过一系列消融研究和比较证明结构重新参数化的重要性,并验证RepVGG在语义分割上的泛化性能
本文主要是在ImageNet图像分类任务上进行了实验,实验结果如下图所示,主要反映了RepVGG和不同计算量的ResNe和变体在精度、速度、参数量上的对比,从中不难发现,RepVGG具有更好的精度-速度均衡。在ImageNet数据集上,RepVGG取得了超过80%的top-1精度,这是plain模型首次达到如此高的精度。在NVIDIA 1080TiGPU上,RepVGG比ResNet50快83%,比ResNet101快101%,同时具有更高的精度。
与此同时,RepVGG在参数量和推理速度上也具有较好的性能。
不足:RepVGG模型是快速,简单和实用的ConvNet架构,在GPU和专用硬件上以最快的速度运行,而无需考虑参数等。尽管RepVGG模型的参数效率比ResNets高,但在低功耗设备应用上,它们可能不如MobileNets和ShuffleNets等移动系统模型。
总结:本文提出了RepVGG,一个简单的体系结构,适用于GPU和专用推理芯片。研究人员通过结构重新参数化方法,使其在ImageNet上可以达到80%的top-1精度,并且与最新的复杂模型相比,它显示出良好的速度-精度性能。
推荐阅读