这里的VGG指代各种平铺卷积的CNN,不带resnet那种shortcut。难得在这么浮躁的时代还有人在钻研改进VGG-style的CNN。VGG作为经典CNN的代表,事实上到如今都没有被淘汰,依然活跃在各种工程中。

国际惯例,先放出原文:RepVGG: Making VGG-style ConvNets Great Again

链接:https://arxiv.org/abs/2101.03697

论文第一作者丁霄汉在知乎的解析:https://zhuanlan.zhihu.com/p/344324470 (推荐戳)

本文主要是把小丁的解析再用更简单明白的语言描述一下,并加入一些自己的评论。


其实2张图就足以说明这篇文章的主要创新点,第一张:

比resnet更好的former resnet vgg对比_CVPR

用一句话描述就是:像ResNet那么训练,像VGG那样推理。这么做有一定的优势,首先Resnet在推理的过程中需要更大的显存占用(需要把"+"之前的两组feature maps都存下来),理论上会比不带shortcut的网络如VGG多用一倍的显存。作为CVPR的best paper成果,Resnet的优越性想必不用多言,通过简单的shortcut可以实现“梯度搬运”,使得浅层和深层有同样的训练效果。所以,Resnet的主要优势体现在训练,能够让超多层网络学习也能学习得很好。而本论文最大的特点优势就是:吸取ResNet在训练时的优势,而规避其在推理时的缺点

那怎么实现的呢?那就用到一个叫Re-parameterization(重参数化)的trick,咱们看另一张图:

比resnet更好的former resnet vgg对比_CNN_02

上图表示的就是,在计算上,把带shortcut的网络结构等效到不带shortcut的3x3卷积。具体做法是在参数层面做等效,经过2次变换即可。我们先看上图右边,作者假设输入输出通道数都是2,那3x3卷积核所对应的参数矩阵应该是2x2x3x3,1x1卷积核对应的参数矩阵应该是2x2x1x1,直接shortcut的分支是没有参数的。接着,每个分支都需要计算一次BN。BN还不了解的同学请戳我的另一篇文章《BN》。

比resnet更好的former resnet vgg对比_VGG_03