Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
paper:https://arxiv.org/pdf/2203.06717.pdf
code:https://github.com/megvii-research/RepLKNet
该篇论文论述了卷积核的kernel size可以选择多大。25x25就很好,31x31甚至更好。清华大学丁霄汉继RepVGG后提出了一种大量采用超大卷积核的模型RepLKNet,将结构化重参数化、Depthwise卷积融合,使得超大卷积更强更快。
摘要
在论文中,回顾了现代卷积神经网络(CNNs)中的大型核设计,这在过去的几年中经常被忽视。受视觉Transformer(ViTs)最新进展的启发,使用一些大的内核而不是一堆小的卷积可能是一个更强大的范例。因此,论文总结了5个指导方针,例如,应用重新参数化的大深度卷积,来设计高效的高性能大核cnn。根据这些指导方针,论文提出了RepLKNet,这是一个纯粹的CNN架构,其内核大小高达31×31。RepLKNet极大地弥补了cnn和vit之间的性能差距,例如,在ImageNet和下游任务上取得了与Swin Transformer相当或更好的结果,而RepLKNet的延迟要低得多。此外,RepLKNet对大数据和大模型的可扩展性,在ImageNet上获得87.8%的Top 1精度,在ADE20K上获得56.0%的mIoU。最后,研究进一步表明,大核cnn与ViTs具有一些很好的特性,例如,比传统cnn具有更大的有效感受域,以及更高的形状偏差而不是纹理偏差。
论文主要思想
目前有论文论述了大的卷积核通常在实用过程中伴随着性能与速度的下降,而在该论文中作者总结了5条大核卷积的高效使用的方法。
(1))大核的深度卷积可以更高效。作者自己实现了一种优于Pytorch大卷积核的延迟方案block-wise(inverse) implicit gemm方案。
(2)大核卷积+残差结构提升性能。
(3)小核重参数化有助于弥补优化问题。重参数化主要是RepVGG与DBB(这里不懂的可以看我之前的博客)
(4)大核卷积对下游任务的提升更明显。因为大核设计可以加大感受野区域,同时可以为网络带来更多的形状偏置。
(5)大核卷积在小的特征图谱上是有用的。
下图是给出了RepLKNet的示意图:
整体形式参考的SWIN Transformer结构。其中RepLK由残差+大卷积核实现,ConvFNN部分是由1x1的卷积+GELU+BN构成 ,Transition Block由1x1卷积和3x3的深度卷积构成。
RepLK vs Swin
声明:本内容来源网络,版权属于原作者,图片来源原论文。如有侵权,联系删除。
创作不易,欢迎大家点赞评论收藏关注!(想看更多最新的注意力机制文献欢迎关注浏览我的博客)