《Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs》
论文: https://arxiv.org/abs/2203.06717
MegEngine代码和模型:
https://github.com/megvii-research/RepLKNet
PyTorch代码和模型:
https://github.com/DingXiaoH/RepLKNet-pytorch
CVPR2022 2022年3月
清华&旷视
视觉主干新网络:调整卷积核大小,达到31*31
ResNet-152等传统深层小kernel模型的有效感受野其实不大,大kernel模型不但有效感受野更大而且更像人类,Transformer可能关键在于大kernel而不在于self-attention的具体形式。例如,下图分别表示ResNet-101、ResNet-152、全为13x13的RepLKNet、kernel大到31x31的RepLKNet的有效感受野,可见较浅的大kernel模型的有效感受野非常大。
通过一系列探索性的实验,总结了在现代CNN中应用超大卷积核的五条准则:
a. 用depth-wise超大卷积,最好再加底层优化(已集成进开源框架MegEngine)
b. 加shortcut
c. 用小卷积核做重参数化(即结构重参数化方法论,见RepVGG)
d. 要看下游任务的性能,不能只看ImageNet点数高低
e. 小feature map上也可以用大卷积,常规分辨率就能训大kernel模型
基于以上准则,简单借鉴Swin Transformer的宏观架构,提出一种架构RepLKNet,其中大量使用超大卷积,如27x27、31x31等。这一架构的其他部分非常简单,都是1x1卷积、Batch Norm等,不用任何attention。