【第25篇】力压Tramsformer,ConvNeXt成了CNN的希望

论文链接:https://arxiv.org/pdf/2201.03545.pdf
代码链接:https://github.com/facebookresearch/ConvNeXt
如果github不能下载,可以使用下面的连接:
https://gitcode.net/hhhhhhhhhhwwwwwwwwww/ConvNeXt
【第25篇】力压Tramsformer,ConvNeXt成了CNN的希望

视觉识别的“咆哮的 20 年代”始于 Vision Transformers (ViTs) 的引入,它迅速取代了 ConvNets,成为最先进的图像分类模型。另一方面,普通的 ViT 在应用于目标检测和语义分割等一般计算机视觉任务时面临困难。正是分层 Transformers(例如,Swin Transformers)重新引入了几个 ConvNet 先验,使 Transformers 作为通用视觉骨干实际上可行,并在各种视觉任务上表现出卓越的性能。然而,这种混合方法的有效性在很大程度上仍归功于 Transformer 的内在优势,而不是卷积固有的归纳偏差。在这项工作中,我们重新检查了设计空间并测试了纯 ConvNet 所能达到的极限。我们逐渐将标准 ResNet “现代化”为视觉 Transformer 的设计,并在此过程中发现了导致性能差异的几个关键组件。这一探索的结果是一系列纯 ConvNet 模型,称为 ConvNeXt。 ConvNeXts 完全由标准 ConvNet 模块构建,在准确性和可扩展性方面与 Transformer 竞争,实现 87.8% ImageNet top-1 准确率,在 COCO 检测和 ADE20K 分割方面优于 Swin Transformers,同时保持标准 ConvNet 的简单性和效率。

1、简介

回顾 2010 年代,这十年以深度学习的巨大进步和影响为标志。 主要驱动力是神经网络的复兴,特别是卷积神经网络 (ConvNets)。 十年来,视觉识别领域成功地从工程特征转向设计(ConvNet)架构。 尽管反向传播训练的卷积神经网络的发明可以追溯到 1980 年代 [39],但直到 2012 年底我们才看到它在视觉特征学习方面的真正潜力。 AlexNet [37] 的引入沉淀了“ImageNet 时刻”[56],开创了计算机视觉的新时代。 此后,该领域迅速发展。 VGGNet [61]、Inceptions [64]、ResNe(X)t [26, 82]、DenseNet [33]、MobileNet [32]、EfficientNet [67] 和 RegNet [51] 等代表性 ConvNet 专注于准确性的不同方面, 效率和可扩展性,并推广了许多有用的设计原则。

ConvNets 在计算机视觉中的完全主导地位并非巧合:在许多应用场景中,“滑动窗口”策略是视觉处理所固有的,尤其是在处理高分辨率图像时。 ConvNets 有几个内置的归纳偏置,使它们非常适合各种计算机视觉应用。 最重要的一个是平移等方差,这是对象检测等任务的理想属性。 由于当以滑动窗口方式使用时,计算是共享的 [59],因此 ConvNets 本质上也是高效的。 几十年来,这一直是 ConvNets 的默认用途,通常用于有限的对象类别,例如数字 [40]、人脸 [55,71] 和行人 [17,60]。 进入 2010 年代,基于区域的检测器 [21, 22, 25, 54] 进一步将 ConvNets 提升到成为视觉识别系统中基本构建块的位置。

大约在同一时间,自然语言处理 (NLP) 的神经网络设计之旅走上了一条截然不同的道路,因为 Transformers 取代了循环神经网络成为主导的主干架构。尽管语言和视觉领域之间感兴趣的任务存在差异,但随着视觉转换器 (ViT) 的引入彻底改变了网络架构设计的格局,这两个流在 2020 年令人惊讶地融合了。除了最初的“patchify”层将图像分割成一系列补丁之外,ViT 没有引入图像特定的归纳偏差,并且对原始 NLP 变换器进行了最小的更改。 ViT 的一个主要关注点是缩放行为:借助更大的模型和数据集大小,Transformers 可以显着优于标准 ResNet。这些图像分类任务的结果令人鼓舞,但计算机视觉不仅限于图像分类。如前所述,过去十年中众多计算机视觉任务的解决方案在很大程度上依赖于滑动窗口、全卷积范式。在没有 ConvNet 归纳偏差的情况下,普通 ViT 模型在被用作通用视觉主干时面临许多挑战。最大的挑战是 ViT 的全局注意力设计,它在输入大小方面具有二次复杂度。这对于 ImageNet 分类可能是可以接受的,但很快就会变得难以处理更高分辨率的输入。

分层 Transformer 采用混合方法来弥补这一差距。 例如,“滑动窗口”策略(例如局部窗口内的注意力)被重新引入 Transformer,使它们的行为更类似于 ConvNets。 Swin Transformer [42] 是朝这个方向发展的里程碑式的工作,它首次证明了 Transformer 可以被用作通用视觉骨干,并在图像分类之外的一系列计算机视觉任务中实现最先进的性能。 Swin Transformer 的成功和迅速采用也揭示了一件事:卷积的本质并没有变得无关紧要; 相反,它仍然很受欢迎,并且从未褪色。

从这个角度来看,Transformers 在计算机视觉方面的许多进步都旨在恢复卷积。 然而,这些尝试是有代价的:滑动窗口自注意力的幼稚实现可能会很昂贵 [52]; 使用循环移位等先进方法[42],可以优化速度,但系统在设计上变得更加复杂。 另一方面,具有讽刺意味的是,ConvNet 已经满足了许多所需的属性,尽管是以一种直接、简洁的方式。 ConvNets 似乎失去动力的唯一原因是(分层的)Transformers 在许多视觉任务中超过了它们,而性能差异通常归因于 Transformers 的卓越缩放行为,其中多头自注意力是关键组成部分。

为此,我们从经过改进程序训练的标准 ResNet(例如 ResNet-50)开始。我们逐渐将架构“现代化”为构建分层视觉 Transformer(例如 Swin-T)。我们的探索是由一个关键问题引导的:Transformers 中的设计决策如何影响 ConvNets 的性能?我们发现了几个导致性能差异的关键组件。因此,我们提出了一个名为 ConvNeXt 的纯 ConvNet 家族。我们在各种视觉任务上评估 ConvNeXts,例如 ImageNet 分类 [15]、COCO [41] 上的对象检测/分割和 ADE20K [87] 上的语义分割。令人惊讶的是,完全由标准 ConvNet 模块构建的 ConvNeXts 在所有主要基准测试中的准确性、可扩展性和鲁棒性方面都与 Transformers 竞争。 ConvNeXt 保持了标准 ConvNets 的效率,训练和测试的完全卷积特性使其实施起来非常简单。我们希望新的观察和讨论能够挑战一些共同的信念,并鼓励人们重新思考卷积在计算机视觉中的重要性。

2、ConvNet 现代化:路线图

在本节中,我们提供了从 ResNet 到类似于 Transformer 的 ConvNet 的轨迹。 我们根据 FLOPs 考虑两种模型大小,一种是 ResNet-50 / Swin-T 机制,FLOPs 约为 4:5×109,另一种是 ResNet-200 / Swin-B 机制,FLOPs 约为 15:0×109 . 为简单起见,我们将使用 ResNet-50 / Swin-T 复杂度模型呈现结果。 更高容量模型的结论是一致的,结果可以在附录 C 中找到。

【第25篇】力压Tramsformer,ConvNeXt成了CNN的希望

在高层次上,我们的探索旨在调查和遵循 Swin Transformer 的不同设计级别,同时保持网络作为标准 ConvNet 的简单性。我们的探索路线图如下。我们的起点是 ResNet-50 模型。我们首先使用用于训练视觉 Transformer 的类似训练技术对其进行训练,并与原始 ResNet-50 相比获得了很大改进的结果。这将是我们的基线。然后我们研究了一系列设计决策,我们总结为 1) 宏观设计,2) ResNeXt,3) 倒置瓶颈,4) 大内核大小,以及 5) 各种分层微设计。在图 2 中,我们展示了“网络现代化”的每一步我们能够实现的过程和结果。由于网络复杂性与最终性能密切相关,因此在探索过程中对 FLOPs 进行了粗略的控制,尽管在中间步骤中,FLOPs 可能高于或低于参考模型。所有模型都在 ImageNet-1K 上进行训练和评估

2.1、训练技巧

除了网络架构的设计,训练过程也会影响最终的性能。视觉变形金刚不仅带来了一组新的模块和架构设计决策,而且还为视觉引入了不同的训练技术(例如 AdamW 优化器)。这主要与优化策略和相关的超参数设置有关。因此,我们探索的第一步是使用视觉 Transformer 训练程序训练基线模型,在本例中为 ResNet-50/200。最近的一篇论文 [76] 展示了一组现代训练技术如何显着提高简单 ResNet-50 模型的性能。在我们的研究中,我们使用了一个接近 DeiT 的 [68] 和 Swin Transformer 的 [42] 的训练方法。训练从 ResNets 的原始 90 个 epoch 扩展到 300 个 epoch。我们使用 AdamW 优化器 [43]、Mixup [85]、Cutmix [84]、RandAugment [12]、随机擦除 [86] 等数据增强技术,以及随机深度 [33] 和标签平滑 [65] 等正则化方案。我们使用的完整超参数集可以在附录 A.1 中找到。就其本身而言,这种增强的训练方案将 ResNet-50 模型的性能从 76.1% [1] 提高到 78.8% (+2.7%),这意味着传统 ConvNet 和视觉 Transformer 之间的很大一部分性能差异可能是由于训练技巧。我们将在整个“现代化”过程中使用具有相同超参数的固定训练配方。 ResNet-50 机制上报告的每个准确度都是通过使用三种不同的随机种子进行训练获得的平均值。

2.2、宏观设计

我们现在分析 Swin Transformers 的宏网络设计。 Swin Transformers 遵循 ConvNets [26,62] 使用多阶段设计,其中每个阶段具有不同的特征图分辨率。有两个有趣的设计考虑:阶段计算比率和“干细胞”结构。

改变阶段计算比率。 ResNet 中跨阶段计算分布的原始设计很大程度上是经验性的。重型“res4”阶段旨在与目标检测等下游任务兼容,其中探测器头在 14×14 特征平面上运行。另一方面,Swin-T 遵循相同的原则,但阶段计算比例略有不同,为 1:1:3:1。对于较大的 Swin Transformers,比例为 1:1:9:1。按照设计,我们将每个阶段的块数从 ResNet-50 中的 (3, 4, 6, 3) 调整为 (3, 3, 9, s3),这也对齐
Swin-T 的 FLOPs。这将模型准确率从 78.8% 提高到 79.4%。值得注意的是,研究人员已经彻底研究了计算的分布 [50,51],并且可能存在更优化的设计。从现在开始,我们将使用这个阶段的计算比率。

将词干更改为“Patchify”。通常,干细胞设计关注的是在网络开始时如何处理输入图像。由于自然图像中固有的冗余性,普通干细胞会在标准 ConvNets 和视觉 Transformer 中积极地将输入图像下采样到适当的特征图大小。标准 ResNet 中的干细胞包含一个步长为 2 的 7×7 卷积层,然后是一个最大池,这导致输入图像的 4 倍下采样。在视觉变形金刚中,干细胞使用了更激进的“patchify”策略,这对应于较大的内核大小(例如内核大小 = 14 或 16)和非重叠卷积。 Swin Transformer 使用类似的“patchify”层,但使用更小的 4 补丁大小来适应架构的多阶段设计。我们将 ResNet 风格的干细胞替换为使用 4×4、步幅为 4 的卷积层实现的补丁化层。准确率从 79.4% 变为 79.5%。这表明 ResNet 中的干细胞可以用更简单的“patchify”层 à la ViT 代替,这将产生类似的性能。我们将在网络中使用“patchify stem”(4×4 非重叠卷积)。

2.3、ResNeXtify

在这一部分中,我们尝试采用 ResNeXt [82] 的思想,它比普通的 ResNet 具有更好的 FLOPs/accuracy 权衡。核心组件是分组卷积,其中卷积滤波器被分成不同的组。在较高的层面上,ResNeXt 的指导原则是“使用更多的组,扩大宽度”。更准确地说,ResNeXt 对瓶颈块中的 3×3 卷积层采用分组卷积。由于这显着减少了 FLOP,因此网络
宽度被扩大以补偿容量损失。在我们的例子中,我们使用深度卷积,这是分组卷积的一种特殊情况,其中组数等于通道数。深度卷积已被 MobileNet [32] 和 Xception [9] 推广。我们注意到,depthwise convolution 类似于 self-attention 中的加权求和操作,它在每个通道的基础上进行操作,即仅在空间维度上混合信息。深度卷积的使用有效地降低了网络 FLOPs,并且正如预期的那样,准确度。按照 ResNeXt 中提出的策略,我们将网络宽度增加到与 Swin-T 相同的通道数(从 64 到 96)。随着 FLOPs (5.3G) 的增加,这使网络性能达到 80.5%。
我们现在将采用 ResNeXt 设计。

2.4、倒置瓶颈

每个 Transformer 块中的一个重要设计是它创建了一个倒置瓶颈,即 MLP 块的隐藏维度是输入维度的四倍(参见图 4)。有趣的是,这种 Transformer 设计与 ConvNets 中使用的扩展比为 4 的倒置瓶颈设计相连。这个想法被 MobileNetV2 [58] 推广,随后在几个先进的 ConvNet 架构 [66,67] 中获得了关注。

【第25篇】力压Tramsformer,ConvNeXt成了CNN的希望

在这里,我们探索倒置瓶颈设计。图 3 (a) 至 (b) 说明了这些配置。尽管深度卷积层的 FLOPs 增加了,但由于下采样残差块的快捷 1×1 卷积层的 FLOPs 显着减少,这种变化将整个网络的 FLOPs 减少到 4.6G。有趣的是,这会稍微提高性能(从 80.5% 提高到 80.6%)。在 ResNet-200/Swin-B 方案中,这一步带来了更多的收益(81.9% 到 82.6%),同时也减少了 FLOP。
我们现在将使用倒置瓶颈。

2.5、大内核大小

在这部分探索中,我们关注大型卷积核的行为。视觉变形金刚最显着的方面之一是它们的非局部自注意力,它使每一层都具有全局感受野。虽然过去在 ConvNets [37,64] 中使用了大内核大小,但黄金标准(由 VGGNet [62] 普及)是堆叠小内核大小(3×3)的卷积层,它们在现代 GPU [38]。尽管 Swin Transformers 将局部窗口重新引入了 self-attention block,但窗口大小至少为 7×7,明显大于 3×3 的 ResNe(X)t 内核大小。在这里,我们重新审视了在 ConvNets 中使用大内核大小的卷积。向上移动深度卷积层。要探索大内核,一个先决条件是向上移动深度卷积层的位置(图 3 (b) 到 (c))。这在变形金刚中也很明显:MSA 块放置在 MLP 层之前。由于我们有一个倒置的瓶颈块,这是一个自然的设计选择——复杂/低效的模块(MSA、大内核卷积)将具有更少的通道,而高效、密集的 1×1 层将完成繁重的工作。这个中间步骤将 FLOP 减少到 4.1G,导致性能暂时下降到 79.9%。

增加内核大小。 通过所有这些准备工作,采用更大的内核大小的卷积的好处是显着的。 我们尝试了几种内核大小,包括 3、5、7、9 和 11。网络的性能从 79.9% (3×3) 提高到 80.6% (7×7),而网络的 FLOPs 大致保持不变。 此外,我们观察到较大内核大小的好处在 7×7 处达到饱和点。 我们也在大容量模型中验证了这种行为:当我们将内核大小增加到 7×7 以上时,ResNet-200 机制模型没有表现出进一步的增益。

我们将在每个块中使用 7×7 深度卷积。

至此,我们已经完成了对宏观尺度网络架构的检查。 有趣的是,视觉 Transformer 中的很大一部分设计选择可能会映射到 ConvNet 实例化。

2.6、微设计

在本节中,我们在微观尺度上研究其他几个架构差异——这里的大部分探索都是在层级完成的,重点是激活函数和归一化层的具体选择。

用 GELU 代替 ReLU NLP 和视觉架构之间的一个差异是使用哪些激活函数的细节。随着时间的推移,已经开发了许多激活函数,但整流线性单元 (ReLU) [46] 由于其简单性和效率,仍然广泛用于 ConvNets。 ReLU 也被用作原始 Transformer 论文 [72] 中的激活函数。高斯误差线性单元,或 GELU [30],可以被认为是 ReLU 的更平滑变体,被用于最先进的 Transformer,包括 Google 的 BERT [16] 和 OpenAI 的 GPT-2 [49],并且,大多数最近,ViTs。我们发现 ReLU 在我们的 ConvNet 中也可以用 GELU 代替,尽管准确率保持不变(80.6%)。

【第25篇】力压Tramsformer,ConvNeXt成了CNN的希望

更少的激活函数。 Transformer 和 ResNet 块之间的一个小区别是 Transformer 的激活函数较少。考虑一个带有键/查询/值线性嵌入层、投影层和 MLP 块中的两个线性层的 Transformer 块。 MLP 块中只有一个激活函数。相比之下,通常的做法是在每个卷积层(包括 1×1 卷积)上附加一个激活函数。在这里,我们研究了当我们坚持相同的策略时性能如何变化。如图 4 所示,我们从残差块中消除了所有 GELU 层,除了两个 1×1 层之间的一个,复制了 Transformer 块的样式。这个过程将结果提高了 0.7% 到 81.3%,实际上与 Swin-T 的性能相当。

我们现在将在每个块中使用单个 GELU 激活。

更少的归一化层。 Transformer 块通常也具有较少的归一化层。在这里,我们删除了两个 BatchNorm (BN) 层,在 conv 1 × 1 层之前只留下一个 BN 层。这进一步将性能提升至 81.4%,已经超过了 Swin-T 的结果。请注意,我们每个块的归一化层比 Transformer 还要少,因为根据经验,我们发现在块的开头添加一个额外的 BN 层并不能提高性能。

为它提高了收敛性并减少了过拟合。然而,BN 也有许多错综复杂的东西,可能会对模型的性能产生不利影响 [79]。在开发替代标准化 [57,70,78] 技术方面已经进行了许多尝试,但 BN 仍然是大多数视觉任务中的首选方案。另一方面,Transformers 中使用了更简单的层规范化 [5] (LN),从而在不同的应用场景中实现了良好的性能。在原始 ResNet 中直接用 LN 代替 BN 将导致性能欠佳 [78]。随着网络架构和训练技术的所有修改,我们在这里重新审视使用 LN 代替 BN 的影响。我们观察到我们的 ConvNet 模型在使用 LN 训练时没有任何困难;实际上,性能稍好一些,获得了 81.5% 的准确率。从现在开始,我们将使用一个 LayerNorm 作为我们在每个残差块中的归一化选择。分离下采样层。在 ResNet 中,空间下采样是通过每个阶段开始时的残差块来实现的,使用步长为 2 的 3×3 卷积(在快捷连接处使用步长为 2 的 1×1 卷积)。在 Swin Transformers 中,在各个阶段之间添加了一个单独的下采样层。我们探索了一个类似的策略,我们使用 2×2 卷积层
步幅 2 用于空间下采样。这种修改出人意料地导致了不同的训练。进一步的调查表明,在空间分辨率发生变化的地方添加归一化层有助于稳定训练。其中包括 Swin Transformers 中也使用的几个 LN 层:每个下采样层之前的一个,茎之后的一个,以及最终全局平均池化之后的一个。我们可以将准确率提高到 82.0%,大大超过 Swin-T 的 81.3%。
我们将使用单独的下采样层。这将我们带到了我们称之为 ConvNeXt 的最终模型。
ResNet、Swin 和 ConvNeXt 块结构的比较可以在图 4 中找到。ResNet-50、Swin-T 和 ConvNeXt-T 的详细架构规范的比较可以在表 9 中找到。

结束语。我们已经完成了我们的第一次“演练”,并发现了 ConvNeXt,一个纯 ConvNet,它在这个计算机制中的 ImageNet-1K 分类性能优于 Swin Transformer。还值得注意的是,到目前为止讨论的设计选项都不是新颖的——在过去十年中,它们都是单独研究的,但不是集体研究的。我们的 ConvNeXt 模型具有与 Swin Transformer 大致相同的 FLOP、#params.、吞吐量和内存使用,但不需要专门的模块,例如移位窗口注意力或相对位置偏差。这些发现令人鼓舞,但尚未完全令人信服——迄今为止,我们的探索仅限于小规模,但视觉变形金刚的缩放行为才是真正让它们与众不同的地方。此外,ConvNet 能否在对象检测和语义分割等下游任务上与 Swin Transformers 竞争的问题是计算机视觉从业者关注的核心问题。在下一节中,我们将在数据和模型大小方面扩展我们的 ConvNeXt 模型,并在一组不同的视觉识别任务上评估它们。

3、ImageNet 上的实证评估

我们构建了不同的 ConvNeXt 变体,ConvNeXtT/S/B/L,与 Swin-T/S/B/L [42] 具有相似的复杂性。 ConvNeXt-T/B 分别是 ResNet-50/200 机制上“现代化”程序的最终产品。 此外,我们构建了一个更大的 ConvNeXt-XL 来进一步测试 ConvNeXt 的可扩展性。 变体仅在通道数量 C 和每个阶段中的块 B 数量上有所不同。 在 ResNets 和 Swin Transformers 之后,每个新阶段的通道数量都会翻倍。 我们总结了以下配置:
• ConvNeXt-T:C = (96; 192; 384; 768),B = (3; 3; 9; 3)
• ConvNeXt-S:C = (96; 192; 384; 768),B = (3; 3; 27; 3)
• ConvNeXt-B:C = (128; 256; 512; 1024),B = (3; 3; 27; 3)
• ConvNeXt-L:C = (192;384;768;1536),B = (3;3;27;3)
• ConvNeXt-XL:C = (256; 512; 1024; 2048),B = (3; 3; 27; 3)

3.1、设置

ImageNet-1K 数据集由 1000 个对象类和 120 万张训练图像组成。我们在验证集上报告 ImageNet-1K top-1 准确度。我们还对 ImageNet-22K 进行预训练,这是一个包含 21841 个类(1000 个 ImageNet-1K 类的超集)的更大数据集,有 1400 万张图像进行预训练,然后在 ImageNet- 上微调预训练模型1K 用于评估。我们在下面总结了我们的训练设置。更多细节可以在附录 A.ImageNet-1K 训练中找到。我们使用 AdamW [43] 训练 ConvNeXts 300 个 epoch,学习率为 4e-3。之后有一个 20 epoch 的线性预热和一个余弦衰减时间表。我们使用 4096 的批量大小和 0.05 的权重衰减。对于数据增强,我们采用常见的方案,包括 Mixup [85]、Cutmix [84]、RandAugment [12] 和 Random Erasing [86]。我们使用随机深度 [34] 和标签平滑 [65] 对网络进行正则化。应用初始值 1e-6 的层尺度 [69]。我们使用指数移动平均线 (EMA) [48],因为我们发现它可以缓解较大模型的过度拟合。 ImageNet-22K 上的预训练。我们在 ImageNet-22K 上预训练 ConvNeXts 90 个 epoch,预热 5 个 epoch。我们不使用 EMA。其他设置遵循 ImageNet-1K。在 ImageNet-1K 上进行微调。我们在 ImageNet-1K 上对 ImageNet-22K 预训练模型进行了 30 个 epoch 的微调。我们使用 AdamW,学习率为 5e-5,余弦学习率计划,逐层学习率衰减 [6, 10],无预热,批量大小为 512,权重衰减为 1e-8。默认的预训练、微调和测试分辨率为 2242。此外,对于 ImageNet-22K 和 ImageNet-1K 预训练模型,我们以 3842 的更大分辨率进行微调。与 ViTs/Swin Transformers 相比,ConvNeXts 更容易在不同分辨率下进行微调,因为网络是全卷积的,无需调整输入块大小或插入绝对/相对位置偏差。

3.2、结果

【第25篇】力压Tramsformer,ConvNeXt成了CNN的希望

ImageNet-1K。表 1(上)显示了与最近的两个 Transformer 变体 DeiT [68] 和 Swin Transformers [42] 以及来自架构搜索的两个 ConvNet - RegNets [51] 和 EfficientNets [67] 的结果比较。 ConvNeXt 在准确度计算权衡以及推理吞吐量方面与两个强大的 ConvNet 基线(RegNet [51] 和 EfficientNet [67])具有竞争力。 ConvNeXt 的性能也全面优于具有类似复杂性的 Swin Transformer,有时具有可观的利润率(例如,ConvNeXt-T 的利润率为 0.8%)。与 Swin Transformers 相比,ConvNeXts 在没有诸如移位窗口或相对位置偏差等专门模块的情况下也享有更高的吞吐量。结果的一个亮点是 ConvNeXt-B 为 384:它比 Swin-B 高 0.6%(85.1% 对 84.5%),但推理吞吐量提高了 12.5%(95.7 对 85.1 图像/秒)。我们注意到,当分辨率从 224 增加到 384 时,ConvNeXtB 相对于 Swin-B 的 FLOPs/吞吐量优势变得更大。此外,当进一步扩展到 ConvNeXt-L 时,我们观察到 85.5% 的改进结果。 ImageNet-22K。我们在表 1(下)中展示了从 ImageNet-22K 预训练中微调的模型的结果。这些实验很重要,因为普遍持有的观点是
视觉 Transformer 具有较少的归纳偏差,因此在大规模预训练时可以比 ConvNets 表现更好。我们的结果表明,在使用大型数据集进行预训练时,正确设计的 ConvNets 并不逊于视觉 Transformer——ConvNeXts 的性能仍然与类似大小的 Swin Transformers 相当或更好,吞吐量略高。此外,我们的 ConvNeXt-XL 模型达到了 87.8% 的准确度——在 3842 处比 ConvNeXt-L 有了相当大的改进,证明了 ConvNeXts 是可扩展的架构。在附录 B 中,我们讨论了 ConvNeXt 的鲁棒性和域外泛化结果。

3.3、各向同性 ConvNeXt 与 ViT

【第25篇】力压Tramsformer,ConvNeXt成了CNN的希望

在这个消融中,我们检查我们的 ConvNeXt 块设计是否可推广到没有下采样层并在所有深度保持相同特征分辨率(例如 14×14)的 ViT 风格 [18] 各向同性架构。我们使用与 ViT-S/B/L (384/768/1024) 相同的特征尺寸构建各向同性 ConvNeXt-S/B/L。深度设置为 18/18/36 以匹配参数和 FLOP 的数量。块结构保持不变(图 4)。我们将 DeiT [68] 的监督训练结果用于 ViT-S/B 和 MAE [24] 用于 ViT-L,因为它们采用了比原始 ViT [18] 改进的训练程序。 ConvNeXt 模型使用与以前相同的设置进行训练,但预热时间更长。 ImageNet-1K 在 224 分辨率下的结果如表 2 所示。我们观察到 ConvNeXt 的性能通常与 ViT 相当,这表明我们的 ConvNeXt 块设计在用于非分层模型时具有竞争力。

4、下游任务的实证评估

COCO 上的对象检测和分割。我们使用 ConvNeXt 主干在 COCO 数据集上微调 Mask R-CNN [25] 和 Cascade Mask R-CNN [7]。在 Swin Transformer [42] 之后,我们使用多尺度训练、AdamW 优化器和 3x 调度。更多细节和超参数设置可以在附录 A.3 中找到。表 3 显示了比较 Swin Transformer、ConvNeXt 和传统 ConvNet(如 ResNeXt)的对象检测和实例分割结果。在不同的模型复杂性中,ConvNeXt 的性能与 Swin Transformer 相当或更好。当放大到在 ImageNet-22K 上预训练的更大模型 (ConvNeXt-B/L/XL) 时,在许多情况下,ConvNeXt 在 box 和 mask AP 方面明显优于 Swin Transformers(例如 +1.0 AP)。

ADE20K 上的语义分割。我们还使用 UperNet [80] 在 ADE20K 语义分割任务上评估 ConvNeXt 主干。所有模型变体都经过 16 万次迭代训练,批量大小为 16。其他实验设置遵循 [6](有关更多详细信息,请参见附录 A.3)。在表 4 中,我们报告了具有多尺度测试的验证 mIoU。 ConvNeXt 模型可以在不同的模型容量上实现具有竞争力的性能,进一步验证了我们架构设计的有效性。

关于模型效率的评论。在类似的 FLOPs 下,深度卷积的模型比只有密集卷积的 ConvNets 更慢并且消耗更多的内存。很自然地要问 ConvNeXt 的设计是否会使其实际上效率低下。正如整篇论文所展示的,ConvNeXts 的推理吞吐量与 Swin Transformers 相当或超过。对于分类和其他任务都是如此
需要更高分辨率的输入(有关吞吐量/FPS 的比较,请参见表 1,3)。此外,我们注意到训练 ConvNeXts 比训练 Swin Transformers 需要更少的内存。例如,使用 ConvNeXt-B 主干训练 Cascade Mask-RCNN 消耗 17.4GB 的峰值内存,每 GPU 批量大小为 2,而 Swin-B 的参考数为 18.5GB。与 vanilla ViT 相比,ConvNeXt 和 Swin Transformer 由于本地计算而表现出更有利的准确性 - FLOPs 权衡。值得注意的是,这种效率的提高是 ConvNet 归纳偏差的结果,与视觉 Transformers 中的自注意力机制没有直接关系。

5、相关工作

混合模型。在 ViT 之前和之后的时代,结合卷积和自注意力的混合模型都得到了积极的研究。在 ViT 之前,重点是使用自我注意/非本地模块 [52、63、74] 来增强 ConvNet 以捕获远程依赖关系。最初的 ViT [18] 首先研究了一种混合配置,并且大量后续工作侧重于将卷积先验重新引入 ViT,无论是显式 [13、14、19、77、81、83] 还是隐式 [42 ] 方法。

最近基于卷积的方法。韩等人。 [23]表明局部Transformer注意力等效于非均匀动态深度卷积。然后将 Swin 中的 MSA 块替换为动态或常规深度卷积,实现与 Swin 相当的性能。并发工作 ConvMixer [4] 表明,在小规模设置中,深度卷积可以用作一种有前途的混合策略。 ConvMixer 使用更小的补丁大小来获得最佳结果,使得吞吐量远低于其他基线。 GFNet [53] 采用快速傅里叶变换 (FFT) 进行标记混合。 FFT 也是卷积的一种形式,但具有全局内核大小和循环填充。与许多最近的 Transformer 或 ConvNet 设计不同,我们研究的一个主要目标是深入了解标准 ResNet 的现代化过程并实现最先进的性能。

6、结论

在 2020 年代,视觉变形金刚,尤其是 Swin Transformers 等分层变形金刚开始取代 ConvNets,成为通用视觉骨干网的首选。 人们普遍认为,视觉 Transformer 比 ConvNets 更准确、更高效、更可扩展。 我们提出了 ConvNeXts,这是一种纯 ConvNet 模型,可以在多个计算机视觉基准上与最先进的分层视觉 Transformer 竞争,同时保持标准 ConvNet 的简单性和效率。 在某些方面,我们的观察结果令人惊讶,而我们的 ConvNeXt 模型本身并不是全新的——在过去十年中,许多设计选择都被单独研究过,但没有被集体研究过。 我们希望本研究报告的新结果能够挑战几种广泛持有的观点,并促使人们重新思考卷积在计算机中的重要性
想象。

上一篇:1. (arg0: bool) -> mediapipe.python._framework_bindings.packet.Packet


下一篇:Python求两个list的交集、并集、补集、对称差集的两种方法