RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计

文章目录

  • 摘要
  • 一、 简介
  • 二、相关工作
    • 2.1、大内核模型
    • 2.2. 模型缩放技术
    • 2.3. 结构重新参数化
  • 三、 应用大卷积的指南
  • 四、 RepLKNet:大内核架构
    • 4.1、架构规范
    • 4.2. 使大内核更大
    • 4.3. ImageNet 分类
    • 4.5.物体检测
  • 五、讨论
    • 5.1. 大内核 CNN 比深度小内核模型具有更大的 ERF
    • 5.2. 大核模型在形状偏差上更类似于人类
    • 5.3.大型内核设计是与 ConvNeXt 一起使用的通用设计元素
    • 5.4. 大内核的性能优于具有高膨胀率的小内核
  • 六、限制
  • 七、 结论

RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第1张图片

摘要

我们重新审视现代卷积神经网络 (CNN) 中的大内核设计。受vision transformers (ViT) 最新进展的启发,在本文中,我们证明了使用一些大型卷积核而不是一堆小核可能是一种更强大的范例。我们提出了五个指导方针,例如,应用重新参数化的大深度卷积来设计高效的高性能大内核 CNN。根据指南,我们提出了 RepLKNet,这是一种纯 CNN 架构,其内核大小高达 31×31,而不是常用的 3×3。RepLKNet 极大地缩小了 CNN 和 ViT 之间的性能差距,例如,在 ImageNet 和一些典型的下游任务上实现了与 Swin Transformer 相当或更好的结果,并且延迟更低。 RepLKNet 还显示出对大数据和大型模型的良好可扩展性,在 ImageNet 上获得 87.8% 的 top-1 准确率,在 ADE20K 上获得 56.0% mIoU,这在具有相似模型大小的最先进技术中非常具有竞争力。我们的研究进一步表明,与小核 CNN 相比,大核 CNN 具有更大的有效感受野和更高的形状偏差而不是纹理偏差。 代码和模型在https://github.com/megvii-research/RepLKNet 上。

一、 简介

RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第2张图片

卷积神经网络 (CNN) [42, 55] 曾经是现代计算机视觉系统中视觉编码器的常见选择。然而,最近,CNN [42, 55] 受到vision transformers (ViTs) [35,61, 89, 98] 的极大挑战,它们在许多视觉任务上都表现出了领先的性能——不仅是图像分类 [35, 109] 和表示学习 [4, 10, 17, 105],还有许多下游任务,例如对象检测 [25,61]、语义分割 [98, 103] 和图像恢复 [11, 56]。为什么 ViT 超级强大?一些工作认为,ViTs 中的多头自我注意 (MHSA) 机制起着关键作用。他们提供了实证结果来证明,MHSA 更灵活 [52],能够(更少的归纳偏差)[21],对失真更稳健 [68, 103],或者能够模拟长期依赖关系 [71, 93]。但是一些工作挑战了 MHSA [121] 的必要性,将 ViT 的高性能归因于适当的构建块 [34] 和/或动态稀疏权重 [40,116]。更多作品 [21,40,44,100,121] 从不同的角度解释了 ViT 的优越性。

在这项工作中,我们专注于一个观点:建立大感受野的方式。在 ViT 中,MHSA 通常设计为全局 [35、80、98] 或局部但具有大内核 [61、72、92],因此单个 MHSA 层的每个输出都能够从大区域收集信息。然而,大内核在 CNN 中并不普遍使用(第一层 [42] 除外)。相反,一种典型的方式是使用许多小的空间卷积1 [42, 46, 49, 70, 79, 84, 114](例如,3×3)来扩大最先进的感受野CNN。只有一些老式的网络,如 AlexNet [55]、Inceptions [81-83] 和一些源自神经架构搜索的架构 [39,45,58,122] 采用大空间卷积(其大小大于 5)作为主要部分。上面的观点自然会引出一个问题:如果我们对传统的 CNN 使用一些大的而不是许多小的内核会怎样?大内核还是构建大感受野的方式是缩小 CNN 和 ViT 之间性能差距的关键?

为了回答这个问题,我们系统地探索了 CNN 的大内核设计。我们遵循一个非常简单的“哲学”:只需将大的深度卷积引入常规网络,其大小范围从 3×3 到 31×31,尽管还有其他替代方案可以通过单层或几层引入大的感受野,例如特征金字塔 [96]、扩张卷积 [14、106、107] 和可变形卷积 [24]。通过一系列实验,我们总结了有效使用大卷积的五个经验指南:1)非常大的内核在实践中仍然是有效的; 2) 身份快捷方式至关重要,尤其是对于具有非常大内核的网络; 3)用小内核重新参数化[31]有助于弥补优化问题; 4) 大卷积比 ImageNet 更能提升下游任务; 5)即使在小特征图上,大内核也很有用。

基于上述指导方针,我们提出了一种名为 RepLKNet 的新架构,这是一种纯 CNN,其中使用重新参数化的大卷积来构建大的感受野。我们的网络总体上遵循 Swin Transformer [61] 的宏观架构,并进行了一些修改,同时用大的深度卷积替换了多头自注意力。我们主要对中型和大型模型进行基准测试,因为过去人们认为 ViT 在大数据和模型上优于 CNN。在 ImageNet 分类上,我们的基线(与 Swin-B 相似的模型大小),其内核大小高达 31×31,仅在 ImageNet-1K 数据集上训练的 top-1 准确率达到 84.8%,这比 Swin-B 好 0.3%,但延迟效率更高。

更重要的是,我们发现大内核设计在下游任务上特别强大。例如,在相似的复杂度和参数预算下,我们的网络在 COCO 检测 [57] 上比 ResNeXt-101 [104] 或 ResNet-101 [42] 骨干网高出 4.4%,在 ADE20K 分割 [120] 上高出 6.1%,这也在与对应的 Swin Transformers 相当甚至更好,但推理速度更快。鉴于更多的预训练数据(例如,73M 图像)和更多的计算预算,我们的最佳模型在具有相似模型大小的最先进技术中获得了非常有竞争力的结果,例如在 ImageNet 上的 top-1 准确率为 87.8%,在 ADE20K 上为 56.0%,这表明对大规模应用程序具有出色的可扩展性。

我们认为 RepLKNet 的高性能主要是因为通过大内核构建的大有效感受野 (ERF) [65],如图 1 所示。此外,与传统 CNN 相比,RepLKNet 显示出利用更多的形状信息,这部分地符合人类的认知。我们希望我们的发现可以帮助理解 CNN 和 ViT 的内在机制。

二、相关工作

2.1、大内核模型

正如介绍中提到的,除了一些老式的模型,如 Inceptions [81-83] 之外,大型内核模型在 VGG-Net [79] 之后变得不流行。一项具有代表性的工作是全局卷积网络(GCN)[69],它使用非常大的 1×K 卷积,然后是 K×1 来改进语义分割任务。然而,据报道大内核会损害 ImageNet 的性能。局部关系网络 (LRNet) [47] 提出了一种空间聚合算子 (LRLayer) 来代替标准卷积,可以将其视为动态卷积。 LR-Net 可以从 7×7 的内核大小中受益,但性能会随着 9×9 下降。使用与特征图一样大的内核大小,top-1 准确率从 75.7% 显着降低到 68.4%。

最近,Swin Transformers [61] 提出使用偏移窗口注意力来捕获空间模式,其窗口大小范围从 7 到 12,也可以看作是大内核的变体。 后续 [33, 60] 采用更大的窗口尺寸。 受这些本地转换器成功的启发,最近的一项工作 [40] 在 [61] 中用静态或动态 7×7 深度卷积替换了 MHSA 层,同时仍保持可比较的结果。尽管 [40] 提出的网络与我们的设计模式相似,但动机不同:[40] 没有研究 ERF、大内核和性能之间的关系;相反,它将视觉转换器的卓越性能归因于稀疏连接、共享参数和动态机制。另外三个具有代表性的作品是 Global Filter Networks (GFNets) [74]、CKConv [76] 和 FlexConv [75]。 GFNet优化了傅里叶域中的空间连接权重,相当于空间域中的循环全局卷积。 CKConv 将内核制定为连续函数来处理顺序数据,可以构造任意大的内核。 FlexConv 为不同的层学习不同的内核大小,可以和特征图一样大。尽管他们使用了非常大的内核,但他们并不打算回答我们想要回答的关键问题:为什么传统 CNN 的性能不如 ViT,以及如何在普通 CNN 中应用大内核。此外,[40] 和 [74] 都没有在强基线上评估他们的模型,例如,比 SwinL 更大的模型。因此,尚不清楚大内核 CNN 是否可以像变压器一样进行扩展。
相同的作品

ConvMixer [90] 使用多达 9×9 的卷积来替换 ViTs [35] 或 MLPs [87, 88] 的“混合器”组件。 MetaFormer [108] 建议池化层是自我注意的替代方案。 ConvNeXt [62] 采用 7×7 深度卷积来设计强大的架构,突破了 CNN 性能的极限。 尽管这些作品表现出出色的性能,但它们并没有显示出更大的卷积(例如,31×31)带来的好处

2.2. 模型缩放技术

给定一个小模型,通常的做法是对其进行扩展以获得更好的性能,因此扩展策略在最终的准确性-效率权衡中起着至关重要的作用。 对于 CNN,现有的缩放方法通常侧重于模型深度、宽度、输入分辨率 [32、70、84]、瓶颈比和组宽度 [32、70]。 然而,内核大小经常被忽略。 在秒。 在图 3 中,我们将展示内核大小也是 CNN 中重要的缩放维度,尤其是对于下游任务

2.3. 结构重新参数化

结构重新参数化 [27-31] 是一种通过转换参数来等效转换模型结构的方法。 例如,RepVGG 针对深度推理时间类 VGG(例如,无分支)模型,并在训练期间构建了与 3×3 层平行的额外 ResNet 样式快捷方式。 与难以训练的真实 VGG 模型相比 [42],这种捷径帮助模型达到了令人满意的性能。 训练后,快捷方式通过一系列线性变换被吸收到并行的 3×3 内核中,从而得到的模型成为 VGG-like 模型。 在本文中,我们使用这种方法将一个相对较小(例如 3×3 或 5×5)的内核添加到一个非常大的内核中。 通过这种方式,我们使非常大的内核能够捕获小规模的模式,从而提高模型的性能。

三、 应用大卷积的指南

对 CNN 简单地应用大卷积通常会导致性能和速度下降。在本节中,我们总结了有效使用大内核的 5 条准则。
RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第3张图片

准则 1:大的深度卷积在实践中可能是有效的。人们认为,大内核卷积的计算成本很高,因为内核大小会二次增加参数和 FLOP 的数量。 通过应用深度(DW)卷积可以极大地克服这个缺点[18,46]。 例如,在我们提出的 RepLKNet(详见表 5)中,将不同阶段的内核大小从 [3, 3, 3, 3] 增加到 [31, 29, 27, 13] 只会增加 FLOPs 和参数数量 分别下降 18.6% 和 10.4%,这是可以接受的。 剩余的 1×1 卷积实际上主导了大部分复杂性。

有人可能会担心 DW 卷积在现代并行计算设备(如 GPU)上效率很低。传统的 DW 3×3 内核 [46, 77, 114] 确实如此,因为 DW 操作引入了较低的计算与内存访问成本的比率 [66],这对现代计算架构不友好。但是,我们发现当内核大小变大时,计算密度会增加:例如,在 DW 11×11 内核中,每次从特征图中加载一个值,它最多可以进行 121 次乘法运算,而在 3× 3 kernel这个数字只有9个。因此,根据roofline模型,当kernel size变大时,实际延迟应该不会随着FLOPs的增加而增加。

备注 1. 不幸的是,我们发现现成的深度学习工具(例如 Pytorch)对大型 DW 卷积的支持很差,如表 1 所示。因此我们尝试了几种方法来优化 CUDA 内核。基于 FFT 的方法 [67] 似乎可以合理地实现大卷积。然而,在实践中,我们发现分块(逆)隐式 gemm 算法是更好的选择。该实现已集成到开源框架 MegEngine [1] 中,我们在此省略细节。我们还为 PyTorch 发布了一个高效的实现 [2]。表 1 显示,与 Pytorch 基线相比,我们的实现效率更高。通过我们的优化,RepLKNet 中 DW 卷积的延迟贡献从 49.5% 降低到 12.3%,这与 FLOPs 占用大致成正比。
RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第4张图片

准则 2:标识快捷方式至关重要,尤其是对于具有非常大内核的网络。为了证明这一点,我们使用 MobileNet V2 [77] 进行基准测试,因为它大量使用 DW 层并且有两个已发布的变体(有或没有快捷方式)。对于大内核对应物,我们只需将所有 DW 3×3 层替换为 13×13。所有型号
在 ImageNet 上使用相同的训练配置训练 100 个 epoch(详见附录 A)。表 2 显示大内核将 MobileNet V2 的准确率提高了 0.77%。但是,没有捷径,大内核将准确率降低到只有 53.98%。

备注 2. 该指南也适用于 ViT。 最近的一项工作 [34] 发现,如果没有身份捷径,注意力会随着深度成倍地下降,从而导致过度平滑问题。 尽管大核 CNN 可能会以与 ViT 不同的机制退化,但我们也观察到没有捷径,网络很难捕获局部细节。 从与 [94] 类似的角度来看,快捷方式使模型成为由具有不同感受野 (RF) 的众多模型组成的隐式集合,因此它可以从更大的最大 RF 中受益,同时不会失去捕获小规模模式的能力。
RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第5张图片

准则 3:用小内核重新参数化 [31] 有助于弥补优化问题。我们将 MobileNet V2 的 3×3 层分别替换为 9×9 和 13×13,并可选择采用结构重新参数化 [27,28,31] 方法。具体来说,我们构建了一个与大层平行的 3×3 层,然后在批量归一化 (BN) [51] 层之后将它们的输出相加(图 2)。训练后,我们将小核和BN参数合并到大核中,这样得到的模型就相当于训练的模型,但不再有小核。表 3 显示直接将内核大小从 9 增加到 13 会降低准确性,而重新参数化解决了该问题。

然后,我们在 Cityscapes [22] 上使用 DeepLabv3+ [16] 将 ImageNet 训练的模型转移到语义分割。我们只替换主干并保留MMSegmentation [20] 提供的所有默认训练设置。观察结果与 ImageNet 上的类似:3×3 re-param 将 9×9 模型的 mIoU 提高了 0.19,13×13 模型提高了 0.93。通过如此简单的重新参数化,将内核大小从 9 增加到 13 不再降低 ImageNet 和 Cityscapes 的性能。

备注 3. 众所周知,ViT 存在优化问题,尤其是在小型数据集上 [35, 59]。 一种常见的解决方法是引入卷积先验,例如,为每个自注意力块 [19,101] 添加一个 DW 3×3 卷积,这与我们的类似。 这些策略在网络之前引入了额外的平移等效性和局部性,从而更容易在小型数据集上进行优化而不会失去一般性。 与 ViT 的行为 [35] 类似,我们还发现,当预训练数据集增加到 7300 万张图像时(请参阅下一节中的 RepLKNet-XL),可以省略重新参数化而不会降级。
RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第6张图片

准则 4:大卷积比 ImageNet 分类更能促进下游任务。表 3(重新参数后)显示将 MobileNet V2 的内核大小从 3×3 增加到 9×9,ImageNet 准确度提高了 1.33%,但 Cityscapes mIoU 提高了 3.99%。 表 5 显示了类似的趋势:随着内核大小从 [3, 3, 3, 3] 增加到 [31, 29, 27, 13],ImageNet 准确率仅提高了 0.96%,而 ADE20K [120] 上的 mIoU 提高 3.12%。 这种现象表明,ImageNet 分数相似的模型在下游任务中可能具有非常不同的能力(正如表 5 中的底部 3 个模型)。

备注 4. 造成这种现象的原因是什么?首先,大内核设计显着增加了有效感受野 (ERF) [65]。许多工作已经证明了“上下文”信息,这意味着大的 ERF,在许多下游任务(如对象检测和语义分割)中至关重要 [63、69、96、106、107]。我们将在第二节讨论这个话题。 5. 其次,我们认为另一个原因可能是大内核设计为网络贡献了更多的形状偏差。简而言之,ImageNet 图片可以根据 [8, 36] 中提出的纹理或形状正确分类。然而,人类主要基于形状提示而不是纹理来识别物体,因此具有更强形状偏差的模型可能会更好地转移到下游任务。最近的一项研究 [91] 指出 ViT 的形状偏差很强,这部分解释了为什么 ViT 在传输任务中非常强大。相比之下,在 ImageNet 上训练的传统 CNN 倾向于偏向纹理 [8,36]。幸运的是,我们发现简单地扩大 CNN 中的内核大小可以有效地改善形状偏差。详情请参阅附录 C。
RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第7张图片

准则 5:大内核(例如,13×13)即使在小特征图(例如,7×7)上也很有用。为了验证这一点,我们将 MobileNet V2 最后阶段的 DW 卷积扩大到 7×7 或 13×13,因此内核大小与特征图大小(默认为 7×7)相当甚至更大。我们按照指南 3 的建议对大内核应用重新参数化。表 4 显示虽然最后阶段的卷积已经涉及非常大的感受野,但进一步增加内核大小仍会导致性能提升,尤其是在 Cityscapes 等下游任务上。
RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第8张图片

备注 5. 当内核大小变大时,请注意 CNN 的平移等方差并不严格成立。如图 3 所示,相邻空间位置的两个输出仅共享一部分内核权重,即通过不同的映射进行转换。该属性也符合 ViT 的“哲学”——在获得更多容量之前放松对称性。有趣的是,我们发现在 Transformer 社区中广泛使用的 2D 相对位置嵌入(RPE)[5,78] 也可以被视为大小为 (2H -1)×(2W -1) 的大深度内核,其中 H 和 W 分别是特征图的高度和宽度。大内核不仅有助于学习概念之间的相对位置,而且由于填充效应[53],还可以编码绝对位置信息。

四、 RepLKNet:大内核架构

遵循上述指导方针,在本节中,我们提出了 RepLKNet,这是一种具有大内核设计的纯 CNN 架构。据我们所知,到目前为止,CNN 仍然在小型模型中占主导地位 [113,115],而在更复杂的预算下,视觉转换器被认为比 CNN 更好。因此,在本文中,我们主要关注相对较大的模型(其复杂度与 ResNet-152 [42] 或 Swin-B [61] 相当或更大),以验证大内核设计是否可以消除性能差距在 CNN 和 ViT 之间。

4.1、架构规范

RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第9张图片

我们在图 4 中勾勒出 RepLKNet 的架构:

Stem是指开始层。由于我们针对下游密集预测任务的高性能,我们希望在开始时通过几个卷积层捕获更多细节。在第一个 3×3 和 2× 下采样之后,我们安排一个 DW 3×3 层来捕获低级模式,一个 1×1 卷积层和另一个 DW 3×3 层用于下采样。

Stages 1-4 每个都包含几个 RepLK 块,它们使用快捷方式(指南 2)和 DW 大内核(指南 1)。我们在 DW conv 之前和之后使用 1×1 conv 作为一种常见做法。请注意,每个 DW large conv 使用 5×5 内核进行重新参数化(指南 3),这在图 4 中未显示。除了提供足够感受野和聚合空间信息能力的 large conv 层外,模型的表征能力也与深度密切相关。为了提供更多的非线性和跨通道的信息通信,我们希望使用 1×1 层来增加深度。受已在变压器 [35,61] 和 MLP [27,87,88] 中广泛使用的前馈网络 (FFN) 的启发,我们使用了一个类似的 CNN 样式块,由快捷方式、BN、两个 1×1层和 GELU [43],所以它被称为 ConvFFN Block。与在全连接层之前使用 Layer Normalization [3] 的经典 FFN 相比,BN 具有可以融合到 conv 中进行高效推理的优势。通常,ConvFFN 模块的内部通道数是输入的 4 倍。简单地按照将注意力和 FFN 块交错的 ViT 和 Swin,我们在每个 RepLK 块之后放置一个 ConvFFN。

Transition Blocks 放置在阶段之间,首先通过 1×1 conv 增加通道维度,然后使用 DW 3×3 conv 进行 2× 下采样。

总之,每个阶段都有三个架构超参数:RepLK Blocks B 的数量、通道维度 C 和内核大小 K。因此,RepLKNet 架构由 [B1, B2, B3, B4],[C1, C2, C3, C4],[K1, K2, K3, K4]。

4.2. 使大内核更大

我们通过固定 B=[2, 2,18, 2], C=[128, 256, 512, 1024] 继续评估 RepLKNet 上的大内核,改变 K 并观察分类和语义分割的性能。 在没有仔细调整超参数的情况下,我们随便将内核大小分别设置为 [13, 13, 13, 13], [25, 25, 25, 13], [31, 29, 27, 13],并参考 模型为 RepLKNet-13/25/31。 我们还构建了两个小内核基线,其中内核大小均为 3 或 7 (RepLKNet-3/7)。

在 ImageNet 上,我们使用 AdamW [64] 优化器、RandAugment [23]、mixup [111]、CutMix [110]、Rand Erasing [118] 和 Stochastic Depth [50] 训练了 120 个 epoch,遵循最近的工作 [4, 61 , 62, 89]。 详细的训练配置见附录 A。

对于语义分割,我们使用 ADE20K [120],这是一个广泛使用的大规模语义分割数据集,包含 150 个类别的 20K 图像用于训练和 2K 用于验证。 我们使用 ImageNet 训练的模型作为主干,并采用由 MMSegmentation [20] 实现的 UperNet [102] 和 80K 迭代训练设置并测试单尺度 mIoU。
RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第10张图片

表 5 显示了我们在不同内核大小下的结果。 在 ImageNet 上,虽然将内核大小从 3 增加到 13 会提高准确性,但将它们变得更大并不会带来进一步的改进。 然而,在 ADE20K 上,将内核从 [13, 13, 13, 13] 扩大到 [31, 29, 27, 13] 带来了 0.82 的 mIoU,而参数仅增加了 5.3%,FLOPs 增加了 3.5%,这凸显了 用于下游任务的大内核。

在以下小节中,我们使用具有更强训练配置的 RepLKNet-31 与 ImageNet 分类、Cityscapes/ADE20K 语义分割和 COCO [57] 对象检测的最新技术进行比较。 我们将上述模型称为 RepLKNet-31B(B 表示 Base),将 C = [192、384、768、1536] 的更广泛的模型称为 RepLKNet-31L(Large)。 我们构建了另一个 RepLKNet-XL,其 C = [256, 512, 1024, 2048] 和 RepLK 块中的 1.5 倍倒置瓶颈设计(即 DW 大卷积层的通道是 1.5 倍作为输入)。

4.3. ImageNet 分类

由于 RepLKNet 的整体架构类似于 Swin,我们希望首先进行比较。 对于 ImageNet-1K 上的 RepLKNet-31B,我们将上述训练计划扩展到 300 个 epoch 以进行公平比较。 然后我们对输入分辨率为 384×384 的 30 个 epoch 进行微调,使得总的训练成本远低于 Swin-B 模型,后者是从头开始用 384×384 训练的。 然后我们在 ImageNet-22K 上预训练 RepLKNet-B/L 模型并在 ImageNet-1K 上进行微调。 RepLKNetXL 在我们名为 MegData73M 的私有半监督数据集上进行了预训练,该数据集在附录中进行了介绍。 我们还展示了批量测试的吞吐量 64 在同一个 2080Ti GPU 上。 训练配置见附录。
RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第11张图片

表 6 表明,尽管非常大的内核不适用于 ImageNet 分类,但我们的 RepLKNet 模型显示出准确度和效率之间的良好折衷。值得注意的是,仅通过 ImageNet-1K 训练,RepLKNet-31B 的准确率达到 84.8%,比 Swin-B 高 0.3%,运行速度快 43%。而且即使 RepLKNet-XL 的 FLOP 比 Swin-L 更高,它的运行速度也更快,这凸显了超大内核的效率。
RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第12张图片

4.4.语义分割
RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第13张图片

然后,我们使用预训练模型作为 Cityscapes(表 7)和 ADE20K(表 8)的主干。具体来说,我们使用由 MMSegmentation [20] 实现的 UperNet [102] 以及 Cityscapes 的 80K 迭代训练计划和 ADE20K 的 160K 迭代训练计划。由于我们只想评估主干,我们不使用任何高级技术、技巧或自定义算法。
RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第14张图片

在 Cityscapes 上,ImageNet-1K 预训练的 RepLKNet-31B 明显优于 Swin-B(单尺度 mIoU 为 2.7),甚至优于 ImageNet-22K 预训练的 Swin-L。即使配备了为视觉转换器定制的技术 DiversePatch [38],22K 预训练的 Swin-L 的单尺度 mIoU 仍然低于我们的 1K 预训练的 RepLKNet-31B,尽管前者有 2 倍参数。

在 ADE20K 上,RepLKNet-31B 在 1K 和 22K 预训练方面都优于 Swin-B,并且单尺度 mIoU 的边际尤其显着。使用我们的半监督数据集 MegData73M 进行预训练,RepLKNet-XL 实现了 56.0 的 mIoU,这表明对大规模视觉应用的可扩展性是可行的。

4.5.物体检测

RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第15张图片

对于目标检测,我们使用 RepLKNets 作为 FCOS [86] 和 Cascade Mask R-CNN [9,41] 的主干,它们是一阶段和二阶段检测方法的代表,也是 MMDetection [13] 中的默认配置. FCOS 模型使用 2x(24-epoch)训练计划进行训练,以便与来自相同代码库 [20] 的 X101(ResNeXt-101 [104] 的缩写)基线进行公平比较,其他结果使用 Cascade Mask R -CNN 都使用 3x (36-epoch)。同样,我们只是简单地替换了主干,不使用任何高级技术。表 9 显示 RepLKNets 的性能优于 ResNeXt-101-64x4d 高达 4.4 mAP,同时具有更少的参数和更低的 FLOP。请注意,使用 HTC [12]、HTC++ [61]、Soft-NMS [7] 或 6x(72-epoch)时间表。与 Swin 相比,RepLKNets 以更少的参数和更低的 FLOP 实现了更高或相当的 mAP。值得注意的是,RepLKNet-XL 实现了 55.5 的 mAP,这再次证明了可扩展性。

五、讨论

5.1. 大内核 CNN 比深度小内核模型具有更大的 ERF

我们已经证明大内核设计可以显着提升 CNN(尤其是在下游任务上)。 然而,值得注意的是,大内核可以通过一系列小卷积[79]来表示,例如,一个 7×7 的卷积可以分解为三个 3×3 内核的堆栈而不会丢失信息(之后需要更多的通道) 保持自由度的分解)。 鉴于这一事实,自然会出现一个问题:为什么可能包含数十或数百个小卷积(例如,ResNets [42])的传统 CNN 仍然表现不如大内核网络?

我们认为,就获得大的感受野而言,单个大内核比许多小内核更有效。首先,根据有效感受野 (ERF) [65] 的理论,ERF 与 O(KpL) 成正比,其中 K 是内核大小,L 是深度,即层数。换句话说,ERF 随内核大小线性增长,而随深度呈次线性增长。其次,增加的深度引入了优化难度[42]。尽管 ResNets 似乎克服了这个困境,设法训练了一个具有数百层的网络,但一些工作 [26,94] 表明 ResNets 可能不像看起来那么深。例如,[94] 表明 ResNets 的行为类似于浅层网络的集合,这意味着即使深度显着增加,ResNets 的 ERF 仍然可能非常有限。这种现象在以前的作品中也有经验观察[54]。总而言之,大内核设计需要更少的层来获得大的 ERF,并且避免了深度增加带来的优化问题。

为了支持我们的观点,我们选择 ResNet-101/152 和前面提到的 RepLKNet-13/31 作为小内核和大内核模型的代表,它们都在 ImageNet 上训练有素,并使用来自 ImageNet 的 50 张图像进行测试验证集大小调整为 1024×1024。为了可视化 ERF,我们使用了 [54] 之后的附录 B 中介绍的一种简单而有效的方法(代码在 [2] 中发布)。简而言之,我们生成一个聚合贡献得分矩阵 A (1024×1024),其中每个条目 a (0 ≤ a ≤ 1) 测量输入图像上相应像素对最后一个生成的特征图中心点的贡献层。图 1 显示了 ResNet-101 的高贡献像素聚集在中心点周围,但外部点的贡献非常低,表明 ERF 有限。 ResNet-152 显示出类似的模式,表明更多的 3×3 层不会显着增加 ERF。另一方面,图 1 © 中的高贡献像素分布更均匀,表明 RepLKNet-13 关注更多外部像素。使用更大的内核,RepLKNet-31 使高贡献像素分布更均匀,表明 ERF 更大。
RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第16张图片

表 10 给出了一个定量分析,我们报告了一个最小矩形的高贡献面积比 r,该矩形覆盖了给定阈值 t 上的贡献分数。例如,ResNet-101 的 20% 的像素贡献(A 值)位于中心的 103×103 区域内,因此面积比为 (103=1024)2 = 1.0%,t = 20%。我们做几个有趣的观察。 1) ResNets 虽然更深,但 ERF 比 RepLKNets 小得多。例如,ResNet-101 超过 99% 的贡献分数位于仅占总面积 23.4% 的小区域内,而 RepLKNet-31 的这种面积比率为 98.6%,这意味着大部分像素对最后的预测。 2)在 ResNet-101 中添加更多层并不能有效地扩大 ERF,而按比例放大内核会以边际计算成本提高 ERF。

5.2. 大核模型在形状偏差上更类似于人类

我们发现 RepLKNet-31B 比 Swin Transformer 和小内核 CNN 具有更高的形状偏差。
RepLKNet将内核扩展到 31x31:重新审视 CNN 中的大型内核设计_第17张图片

最近的一项工作 [91] 报告说,视觉转换器更类似于人类视觉系统,因为它们更多地基于对象的整体形状进行预测,而 CNN 更关注局部纹理。我们遵循其方法并使用其工具箱 [6] 来获得在 ImageNet-1K 或 22K 上预训练的 RepLKNet-31B 和 Swin-B 的形状偏差(例如,基于形状而不是纹理做出的预测比例),以及两个小内核基线 RepLKNet-3 和 ResNet-152。图 5 显示 RepLKNet 比 Swin 具有更高的形状偏差。考虑到 RepLKNet 和 Swin 具有相似的整体架构,我们认为形状偏差与有效感受野密切相关,而不是自我注意的具体公式(即查询键值设计)。这也解释了 1)[91] 报告的 ViTs [35] 的高形状偏差(因为 ViT 采用全局注意力),2)1K 预训练 Swin 的低形状偏差(局部窗口内的注意力),以及 3)形状小内核基线 RepLKNet-3 的偏差,非常接近 ResNet-152(两个模型都由 3×3 卷积组成)。

5.3.大型内核设计是与 ConvNeXt 一起使用的通用设计元素

用 31×31 的内核替换 ConvNeXt [62] 中的 7×7 卷积带来了显着的改进,例如,ConNeXt-Tiny + 大内核 >ConNeXt-Small 和 ConNeXt-Small + 大内核 >ConNeXt-Base。我们使用最近提出的 ConvNeXt [62] 作为基准架构来评估大内核作为通用设计元素。我们只需将 ConvNeXt [62] 中的 7×7 卷积替换为 31×31 的内核。 ImageNet(120 epochs)和 ADE20K(80K 迭代)上的训练配置与 Sec. 中显示的结果相同。 4.2.表 11 表明,尽管原始内核已经是 7×7,但进一步增加内核大小仍然带来显着的改进,尤其是在下游任务上:对于 31×31 大的内核,ConvNeXt-Tiny 优于原始 ConvNeXt-Small,并且大内核 ConvNeXt-Small 优于原始 ConvNeXt-Base。同样,这种现象表明内核大小是一个重要的缩放维度。

5.4. 大内核的性能优于具有高膨胀率的小内核

详情请参阅附录 C。

六、限制

尽管大内核设计大大提高了 CNN 在 ImageNet 和下游任务上的性能,但是,根据表 6,随着数据和模型规模的增加,RepLKNets 开始落后于 Swin Transformers,例如 RepLKNet-31L 的 ImageNet top-1 准确率 比使用 ImageNet-22K 预训练的 Swin-L 低 0.7%(而下游分数仍然相当)。 目前尚不清楚这种差距是由次优的超参数调整造成的,还是由于数据/模型扩大时出现的 CNN 的其他一些基本缺陷。 我们正在努力解决这个问题。

七、 结论

本文重新审视了在设计 CNN 架构时长期以来一直被忽视的大型卷积核。 我们证明了使用几个大内核而不是许多小内核可以更有效地产生更大的有效感受野,大幅提升 CNN 的性能,尤其是在下游任务上,并在数据和模型扩大时大大缩小 CNN 和 ViT 之间的性能差距 . 我们希望我们的工作能够推动 CNN 和 ViT 的研究。 一方面,对于 CNN 社区,我们的研究结果表明我们应该特别注意 ERF,这可能是高性能的关键。 另一方面,对于 ViT 社区,由于大卷积可以替代具有相似行为的多头 self-attention,它可能有助于理解 self-attention 的内在机制。

你可能感兴趣的:(图像分类,cnn,计算机视觉,深度学习)