Scaling Up Your Kernels to 31x31_ Revisiting Large Kernel Design in CNNs

研究背景

CNN曾是计算机视觉中常用的encoder,但最近CNN受到了Vision Transformers的极大挑战,在多个任务上(如图像分类、目标检测等)被Transformers超越。
为什么Transformer表现如此好?一些研究认为MHSA(multi-head self-attention)在vit中起着关键作用。MHSA更灵活,更少的归纳偏置,更能模拟长距离依赖。但一些研究也在质疑MHSA的必要性,它们将vit的高性能归因于适当的构建块和动态稀疏权值。
在这篇论文中,作者关注的是如何建立大感受野,在vit中,MHSA通常被设计成全局的或局部的,但具有大的内核,因此单个MHSA的每个输出都能够从一个大区域收集信息。但是大核卷积在CNN中使用并不普遍,在先进的CNN中,常用的方式是使用许多小卷积堆叠使其感受野和大卷积一样,上述观点自然引出了一个问题:如果我们在传统的cnn中使用几个大内核而不是许多小内核会怎么样?

使用大核卷积的指导准则

大深度卷积能在实践中更有效

大核卷积的计算成本很高,因为核的大小以二次形式增加了参数和浮点数。这一缺点可以通过应用深度卷积(depth-wise, DW)来克服。但DW卷积在GPU等现代并行计算设备上可能非常低效。并且不幸的是,我们发现现有的深度学习工具(如Pytorch)对大型DW卷积的支持很差,如表1所示。因此,我们尝试了几种方法来优化CUDA内核。基于fft的方法似乎是实现大卷积的合理方法。
image.png

identify shortcut在大内核中是至关重要的

为了证明这一点,我们使用MobileNet V2进行基准测试,因为它大量使用DW层,并且有两个已发布的变体(有或没有identify shortcut)。对于大卷积核的对应版本,我们只需将所有DW 3×3层替换为13×13。所有模型在ImageNet上以相同的训练配置训练100个epoch。下表显示,大型内核通过快捷方式将MobileNet V2的准确性提高了0.77%。而在没有快捷方式的情况下,大卷积核将准确率降低到只有53.98%。
image.png

用小卷积核re-parameterizing有助于解决优化问题

我们将MobileNet V2的3×3层分别替换为9×9和13×13,并可以选择采用re-parameterizing方法。特别地,我们构建一个3×3层大平行,然后添加自己的批处理后输出归一化层。在训练之后,我们将小内核以及BN参数合并到大内核,所以合成模型相当于模型训练但是不再有小的内核。下表显示直接将内核大小从9增加到13会降低精度,而re-parameterizing解决了这个问题。
image.png

re-parameterizing

image.png

大卷积核更能促进下游任务

image.png

image.png

是什么导致了这种现象?首先,大型内核设计显著增加了有效接收域。大量的研究表明,“上下文”信息在许多下游任务(如对象检测和语义分割)中至关重要。其次,我们认为另一个原因可能是大型内核设计导致了更多的形状偏差(shape biases)。简单地说,ImageNet图片可以根据纹理或形状进行正确的分类。然而,人类识别物体主要是基于形状而不是纹理,因此具有较强形状偏差的模型可能会更好地转移到下游任务。最近的一项研究指出,VIT具有很强的形状偏差,这部分解释了为什么VIT在迁移任务中具有超强的能力。相比之下,在ImageNet上训练的传统CNN往往倾向于纹理。幸运的是,我们发现在CNN中简单地增大核的大小可以有效地改善形状偏差。

大卷积核(13×13)即使在小的特征图 (7×7)上也是有用的

为了验证它,我们将MobileNet V2最后阶段的DW卷积放大到7×7或13×13,因此内核大小与feature map大小相当,甚至大于feature map大小(默认为7×7)。我们将re-parameterizing应用于大卷积核,这是准则3所建议的。下表显示,尽管最后阶段的卷积已经涉及非常大的接受域,但进一步增加卷积核大小仍然会导致性能改进,特别是在cityscape这样的下游任务上。
image.png

RepLKNet

image.png

**RepLK Block:**每个DW大型conv都使用一个5×5卷积核进行re-parameterizing,结构图中进行了省略。
**ConvFFN:**由于模型的表征能力也与深度密切相关,为了提供更多的非线性和跨通道的信息交互,我们希望使用1×1卷积来增加深度。受广泛应用于变压器和MLPs]的前馈网络(forward Network, FFN)的启发,我们采用了一种CNN风格的block,它由shortcut, BN,两个1×1卷积核和GELU组成,因此被称为ConvFFN块。

实验结果

image.png

同参数量的情况下,在ImageNet分类上,RepLKNet可以取得和Swin-Transformer相当的效果。
image.png

在下游任务上,RepLKNet也展示了和Swin-Transformer相当的泛化能力。

Limitations

尽管大卷积核设计极大地改善了ImageNet和下游任务上的CNN,但是,随着数据和模型规模的增加,RepLKNet开始落后于Swin transformer。目前还不清楚这种差距是由于未达到最佳的超参数调优,还是由于数据/模型放大时出现的CNN的其他根本性缺陷。我们正在研究这个问题,例如,研究一个更强大的CNN基线是否有助于在大卷积核设计中超越ViT的上限。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值