摘要
视觉识别的咆哮的20年代开始于ViTs的引入,它很快取代了卷积神经网络,成为最先进的图像分类模型。另一方面,一个原始的ViT在用于一般的比如目标识别和语义分割的计算机视觉任务的时候面临困难。层次Transformer(例如,Swin-Transformer),它重新引入了几个卷积神经网络先验,使Transformer作为通用视觉主干实际上可行,并在各种视觉任务中表现出卓越的性能。然而,这种混合方法的有效性仍然很大程度上归功于Transformer的内在优势,而不是卷积固有的归纳偏差。在这项工作中,我们重新审视了设计空间,并测试了纯卷积神经网络所能达到的极限。我们逐渐将一个标准ResNet“现代化”,以实现视觉Transformer的设计,并在此过程中发现了几个导致性能差异的关键组件。这一探索的结果是一组被称为ConvNeXt的纯卷积模型。完全由标准的卷积模块构建,ConvNeXts在精度和可扩展性方面与Transformer可以竞争,达到87.8%的ImageNet top-1精度,在COCO检测和ADE20K分割方面优于Swin-Transformers,同时保持了标准卷积的简单性和高效率。
1.简介
回顾2010年代,这十年的特点是深度学习取得了巨大的进步和影响。主要的驱动因素是神经网络的复兴,尤其是神经卷积网络。近十年来,视觉识别领域成功地从控制特征转向设计(卷积神经网络)架构。尽管反向传播训练的卷积神经网络的发明可以追溯到20世纪80年代,但是直到2012年底我们才看到它对于视觉特征学习的真正潜力。AlexNet的首次出现促成了“ImageNet时刻”,开启了计算机视觉的新时代。此后,这一领域迅速发展。典型的卷积神经网络,如VGGNet ,inception、ResNe(X)t、DenseNet、MobileNet、EfficientNet和RegNet侧重于准确性、效率和可扩展性的不同方面,并推广了许多有用的设计原则。
卷积神经网络在计算机视觉领域的完全统治地位并非巧合:在许多应用场景中,“滑动窗口”策略是视觉处理的固有策略,尤其是在高分辨率图像上。卷积网络有几个内建的归纳偏使得其非常适合各种各样的计算机视觉应用。其中最重要的一个是平移不变性,对于目标检测这种任务来说是理想属性。卷积网络本身也是高效的,这是因为这样一个事实,使用滑动窗口这种方式时计算是共享的。几十年来,这一直是卷积神经网络的默认使用,通常被用于有限的对象类别,如数字、人脸和行人。进入21世纪10年代以来,基于区域的检测器进一步提高卷积神经网络成为视觉识别系统的基本组成部分。
大约在同一时间,自然语言处理(NLP)的神经网络设计之旅则走了一条截然不同的道路,因为Transformers取代了循环神经网络,成为占主导地位的主干架构。尽管语言和视觉领域所感兴趣的任务存在明显差异,这两股潮流在2020年出人意料地汇合在一起,因为随着视觉Transformers(ViT)的引入完全改变了网络架构设计的格局。除了用来将图片划分为一个块序列的初始的“patchify”层,ViT没有引入图像特定的归纳偏置,并且对原始的NLP变压器进行了最小的改动。ViT一个主要的关注点
是关于缩放行为的:在更大的模型和数据集的帮助下,Transformer可以超过标准的
ResNets以显著优势领先。这些在图像分类任务上的结果是令人振奋的,但计算机视觉并不局限于图像分类。正如之前所讨论的,在过去的十几年中大部分的计算机视觉任务的解决方案都明显依赖于滑动窗口和全卷积范式。没有了卷积网络的归纳偏置后,一个原始的VIt模型在被视作一个通用的视觉主干的路上面临许多挑战。最大的挑战是ViT的全局注意力设计,其复杂度相对于输入的大小是二次的。这对于ImageNet分类任务来说是可以接收的,但是在面对高分辨率的输入的时候就变得很棘手。
层次Transformers利用了一种混合方法来弥补这一差距。例如,滑动窗口策略被重新引入Transformers,允许它们可以表现地更加像卷积网络。Swin-Transformer是这个方向的里程碑式的工作,第一次展现了Transformers可以被当作一个通用的视觉主干并且在包括图像分类的一系列计算机视觉任务上实现了最先进的性能。Swin Transformer的成功和迅速普及也揭示了一件事:卷积的本质并没有变得无关紧要;相反,它仍然很受欢迎,从未褪色。
在这一观点的指导下,许多计算机视觉的Transformers在朝着回归卷积的方向发展。然而这些尝试是有代价的,滑动窗口自注意力的简单实现可能代价高昂;而使用了先进的方法例如循环移位,速度可以被优化但是系统的设计变得更加的复杂。另一方面,具有讽刺意味的是,卷积神经网络已经满足了许多期望的属性,尽管是以一种直接的、不加修饰的方式。ConvNets似乎失去动力的唯一原因是Transformers在许多视觉任务中超越了他们,这种性能差异通常归因于Transformer的优越的缩放行为,其中多头自注意力是关键组件。
与卷积网络在过去十年间逐步提高不同,Vision Transformers的采用是一个巨大的改变。在最近的文献中,在比较两者时通常采用系统级比较(例如Swin Transformer vs. ResNet)。卷积神经网络和层次视觉Transfomrers同时变得不同和相似:它们都具有相似的归纳偏差,但在训练过程和宏观/微观层面的架构设计上有很大的不同。在本文中,我们研究了卷积网络和Transformers之间的架构上的不同,并且尝试在比较网络性能时分辨那些令人困惑的变量。我们的研究旨在弥合前ViT和后ViT时代之间的差距,以及测试纯卷积网络所能达到的极限。要做到这一点,我们从一个标准的ResNet(例如ResNet-50)开始使用改进的程序训练。我们逐渐向着层次视觉Transformer的结构方向将ResNet体系结构“现代化”。我们的探索是由一个关键问题引导的:Transformers中的设计决策如何影响卷积神经网络的性能?用这种方法,我们发现了几个导致性能差异的关键组件。因此,我们提出了一个系列纯卷积网络被称为ConvNeXt。我们在各种视觉任务上评估ConvNeXts,如ImageNet分类,COCO上的对象检测/分割,ADE20K上的语义分割。令人惊讶的是,完全由标准卷积模块所构建得ConvNeXts,在所有主要基准测试中,在准确性、可扩展性和鲁棒性方面都能与Transformer竞争。ConvNeXt维持了标准卷积网络得高效性同时训练和测试的全卷积特性使得它非常容易实现。
我们希望新的观察和讨论能够挑战一些普遍相信得观点,并鼓励人们重新思考卷积在计算机视觉中的重要性。
2.现代化一个卷积网络:路线图
在这部分,我们提供了一条从Resnet到一个和Transformer很像的卷积网络的路径。我们考虑了两种模型在FLOPs方面的尺寸,一组是ResNet-50/Swin-T,其FLOPs大约在 4.5 × 1 0 9 4.5 \times 10^9 4.5×109,而另一组是ResNet200/Swin-B其FLOPs大约在 15.0 × 1 0 9 15.0 \times 10^9 15.0×109。简单起见,我们将展示ResNet-50/Swin-T这一复杂度下的结果。更高容量的模型的结果是一致的,其结果可以在附录C中找到。
在高层次上,我们的探究旨在探索和遵循Swin-Transformer不同层级的设计的同时维持其作为标准卷积网络的简单性。我们的探究的路线图如下所示。我们的起点是一个ResNet-50模型。我们首先首先用和训练视觉Transformers相同的技巧训练它然后相比比原始ResNet-50大大改善了结果。这将作为我们的基线。然后,我们研究了一系列设计决策,我们将其总结为1)宏观设计,2)ResNeXt, 3)反瓶颈,4)大内核尺寸,以及5)各种分层微设计。在图2中,我们展示了“网络现代化”的每一步所实现的过程和结果。因为网络的复杂度与其最终的表现密切相关,所以在探究的过程中,FLOPs大致受到控制,虽然在中间的步骤中FLOPs可能高于或低于参考模型。所有的模型的训练和评估都在ImgaeNet-1K上。
2.1 训练技巧
除了网络体系结构的设计,训练过程也会影响最终的性能。视觉Transformers不仅带来了一系列新的模块和架构设计决策,而且还引入了不同的训练技术(例如AdamW优化器)。这主要与优化策略和相关的超参数设置有关。因此,我们探索的第一步是用Vision Transformer训练过程训练基线模型,在本例中为ResNet-50/200。最近的研究表明,一些现代训练技术可以显著提高简单ResNet-50模型的性能。在我们的研究中,我们使用的训练配置接近DeiT和Swin Transformer。ResNets的训练轮次从原来的90个epoch扩展到300个epoch。我们使用AdamW优化器[46]、Mixup[90]、Cutmix[89]、RandAugment[14]、随机擦除等数据增强技术,正则化方案包括随机深度和标签平滑。我们使用的超参数的完整集合可以在附录A.1中找到。就其本身而言,这种增强的训练配方将ResNet-50模型的性能从76.1%提高到78.8%(+2.7%),这意味着传统卷积神经网络和视觉神经网络之间的性能差异很大一部分原因可能是由于训练技巧。我们将在整个“现代化”过程中使用具有相同超参数的固定训练配置。在ResNet-50方案中,每个报告的准确率都是通过使用三种不同的随机种子进行训练获得的平均值。
2.2宏观设计
我们现在来分析Swin Transformer的宏观网络设计。Swin Transformer和卷积网络一样用来多级设计,每个阶段都有不同的特征图分辨率。这里有两个有意思的设计考虑:阶段计算比和“主干块”结构。
改变阶段计算比例。
在ResNet中,跨阶段计算分布的原始设计在很大程度上是依靠经验。
沉重的“res4”阶段意味着与下游任务(如目标检测)兼容,其中检测头在14×14特征平面上操作。另一方面,Swin - t遵循相同的原理,但阶段计算比例略有不同,为1:1:3:1。对于更大的Swin Transformer,比例为1:1:9:1。根据这个设计,我们调整了ResNet-50每个阶段的块数从原始的(3,4,6,3)调整到(3,3,9,3),这也使得flops与Swin - t对齐。这将模型精度从78.8%提高到79.4%。值得注意的是,研究人员已经深入研究了计算的分布,并且可能存在更优化的设计。
从现在起,我们将使用这个阶段计算比例。
改变主干块为”patchify“。
通常情况下,主干块的设计关注的是如何在网络开始时处理输入图像。由于自然图像所固有的冗余性,在标准卷积神经网络和视觉Transformers中,一个普通的主干块会积极地将输入图像降采样到合适的特征图大小。标准ResNet中的主干块包含一个步长为2的7×7卷积层,然后是一个最大池化层,这会导致输入图像的4倍下采样。在视觉Transfromers中,一种更激进的“patchify”策略被用作主干块,它对应一个大的内核尺寸(例如,核大小=为14或16)和非重叠卷积。Swin Transformer使用了类似的“patchify”层,但为了适应架构的多阶段设计,使用了较小的补丁大小为4。我们将resnet风格的主干块替换为核大小为4×4,步长为4的卷积层来实现patchify层。准确率从79.4%提高到79.5%。这表明ResNet中的主干块可以用更简单的“patchify”层代替,这将产生类似的性能。
我们将在网络中使用“patchify stem”(4×4非重叠卷积)。
2.3 ResNeXt-ify
在这一部分中,我们尝试采用ResNeXt的一些思路,它比原始的Resnet具有更好的FLOPs/精度平衡。核心组件是分组卷积,其中卷积滤波器被分成不同的组。在高层次上,ResNeXt的指导原则是“使用更多组,扩大宽度”。更准确地说,ResNeXt在瓶颈块中的3×3卷积层中使用分组卷积。由于这大大减少了flops,因此可以扩展网络宽度以补偿容量损失。
在我们的例子中,我们使用深度卷积,这是分组卷积的一种特殊情况,其中分组的数量等于通道的数量。深度卷积已经在MobileNet和Xception中推广。我们注意到深度卷积类似于自注意力中的加权和运算,它在每个通道的基础上操作,即只混合空间维度的信息。深度卷积和1 × 1卷积的结合导致了空间和通道混合的分离,这是视觉Transformers所共有的特性,其中每个操作要么跨空间维度混合信息,要么跨通道维度混合信息,但不能同时混合信息。深度卷积的使用有效地降低了网络的FLOPs,并如预期的那样提高了精度。按照ResNeXt中提出的策略,我们将网络宽度增加到与Swin - T相同的通道数(从64到96)。这使得网络在FLOPs增加5.3G的条件下性能达到80.5%。
现在我们将采用ResNeXt设计
2.4 Inverted Bottleneck
每个Transformer块中的一个重要设计是,它创建了一个逆瓶颈结构,例如,MLP块的隐藏维度比输入维度宽4倍。有趣的是,这种Transformer设计与卷积网络中使用的扩展比为4的逆瓶颈设计有联系。这个思路是从MobileNetV2流行的,并随后在几个先进的卷积网路架构中获得了关注。
在这里,我们探讨逆瓶颈设计。图3的(a)至(b)阐明了配置。尽管深度卷积层增加了FLOPs,但是由于下采样残差块的快捷1×1 卷积层的FLOPs的显著降低使得整个网络的FLOPs降低到4.6G。有趣的是,这会略微提高性能(从80.5%提高到80.6%)。在ResNet-200/ Swin - B方案中,这一步骤在 FLOPs降低的情况下,带来了更多的收益(81.9%到82.6%)。
现在我们将使用逆瓶颈结构。
2.5大核尺寸
在这一部分的探索中,我们专注于大卷积核的行为。视觉Transformers最显著的特点之一是它们的非局部自注意力,这使得每一层都有一个全局的感受野。虽然大的内核尺寸在过去已经被用于卷积神经网络,其黄金标准(由VGGNet推广)是堆叠小的3×3核的卷积层,因为这在现代gpu上具有高效的硬件实现。虽然Swin Transformers重新将局部窗口引入了自注意力,但窗口大小至少为7×7,明显大于ResNe(X)t的3×3的卷积核大小。在这里,我们重新审视大核卷积在卷积网络中的使用。
上移深度卷积层.
要探索大核,一个先决条件是将深度卷积层的位置向上移动从图3 ( b )到 ( c )。这是一个在Transformers中也很明显的设计决策:MSA块被放置在MLP层之前。
由于我们有一个逆瓶颈块,这是一个自然的设计选择——复杂/低效的模块(MSA,大内核conv)将拥有更少的通道,而高效、密集的1×1层将完成繁重的工作。这个中间步骤将FLOPs减少到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中采取的设计选择的重要部分可以映射到卷积网络实例。
2.6 微观设计
在本节中,我们将在微观尺度上研究其他几种架构差异——其中大多数探索都是在层级别上完成的,重点是激活函数和归一化层的具体选择。
用GELU代替ReLU
NLP和视觉架构两者之间的一个显著差异是激活函数的使用细节。随着时间的推移,已经开发出了许多激活函数,但是整流线性单元(ReLU)由于其简单、高效,目前仍广泛应用于卷积神经网络中。在Transformer的原始论文中,ReLU也被用作激活函数。高斯误差线性单元,或GELU,它可以被认为是ReLU的一个更平滑的变体,被用于最先进的Transformers,包括谷歌的BERT和OpenAI的GPT-2,以及最近的ViTs。我们发现在我们的卷积网络中,ReLU也可以用GELU代替,尽管准确率保持不变(80.6%)。
更少的激活函数
Transformer和ResNet块之间的一个小区别是Transformer具有更少的激活函数。考虑一个Transformer块,它具有键/查询/值线性嵌入层、投影层和MLP块中的两个线性层。在MLP块中只有一个激活函数。相比之下,通常的做法是为每个卷积层附加一个激活函数,包括1 × 1卷积。在这里,我们将研究当我们坚持相同的策略时,性能是如何变化的。如图4所示,除了两个1 × 1层之间的一个层,我们模仿Transformer块的风格将残差块中的所有的GELU层都消除了。该过程将结果提高了0.7%至81.3%,几乎与swin - t的性能相当。
现在,我们将在每个块中使用单个GELU激活。
更少的归一化层。
Transformer块通常也有更少的归一化层。这里我们移除两个BatchNorm (BN)层,只在 1 × 1卷积层前留下一个BN层。这进一步将性能提高到81.4%,已经超过了swin - t的结果。注意到我们的每个块甚至拥有比Transformers更少的归一化层,根据实验,我们发现在块的开始添加一个额外的BN层并不能提高性能。
用LN代替BN
BatchNorm是ConvNets的重要组成部分,因为它提高了收敛性并减少了过拟合。然而,BN也有许多复杂之处,可能对模型的性能产生不利影响。已经有许多尝试去开发一种替代的归一化技术,但BN仍然是大多数视觉任务的首选。另一方面,更简单的层归一化(LN)已经在Transfomrers中使用,在不同的应用场景中都有很好的性能。在原始ResNet中直接用LN代替BN会导致性能不理想。随着网络架构和训练技术的修改,这里我们重新审视使用LN代替BN的影响。我们观察到我们的卷积网络模型在LN训练中没有任何困难;实际上,性能会稍微好一些,获得了81.5%的准确率。
从现在开始,我们将在每个残差块中使用一个LayerNorm作为我们的归一化选择。
分离下采样层
在ResNet中,空间下采样是通过每个阶段开始时的残差块来实现的,使用步长为2的3×3 卷积(和在快捷连接处使用步长为2的1×1 卷积)。在Swin Transformers中,在阶段之间添加了一个单独的下采样层。我们探索了类似的策略,我们使用2×2卷积层,步长为2,用于空间下采样。这种修改令人惊讶地导致了训练发散。进一步的研究表明,在空间分辨率发生变化的地方添加归一化层可以帮助稳定训练。这包括在Swin transformer中也使用的几个LN层:在每个下采样层之前一个,在主干之后一个,在最终的全局平均池化之后一个。我们可以将准确率提高到82.0%,显著超过swin-t 的81.3%。
我们将使用单独的下采样层。这就引出了我们最终的模型,我们称之为ConvNeXt。
ResNet、Swin和ConvNeXt块结构的比较可以在图4中找到。ResNet-50、swin - t和ConvNeXt-T的比较的详细结构规范见表9。
结束语
我们已经完成了第一个“过程”,并发现了ConvNeXt,这是一个纯卷积网络,在这种计算机制下,它可以在ImageNet-1K分类方面胜过Swin Transformer。值得注意的是,到目前为止讨论的所有设计选择都改编自视觉Transformers。此外,这些设计即使在卷积网络的文献中也不新颖——在过去的十年里,它们都被单独研究过,但没有被集中研究过。我们的ConvNeXt模型和Swin Transformer具有大致相同的FLOPs、参数量、吞吐量和内存使用,但不需要专门的模块,如移动窗口注意力或相对位置偏差。
这些发现令人鼓舞,但还不能完全令人信服——我们的探索到目前为止还局限于小范围,但视觉Transformers的缩放行为才是它们真正的区别。此外,卷积神经网络能否在下游任务(如目标检测和语义分割)上与Swin transformer竞争是计算机视觉从业者关注的中心问题。在下一节中,我们将在数据和模型大小方面扩展我们的ConvNeXt模型,并在不同的视觉识别任务集上对它们进行评估。
3.ImageNet的实验评价
我们构建了不同的ConvNeXt变体,ConvNeXtT/S/B/L,其复杂性与swing - t /S/B/L相似。ConvNeXt-T/B分别是ResNet-50/200“现代化”程序的最终产品。此外,我们构建了一个更大的ConvNeXt- xl来进一步测试ConvNeXt的可扩展性。变体只是在每个阶段的通道C的数量和块B的数量上有所不同。继ResNets和Swin Transformers之后,在每个新阶段通道数量都会翻倍。我们总结如下配置:
3.1设置
ImageNet-1K数据集由1000个对象类和1.2M张训练图像组成。我们在验证集上报告了ImageNet-1K的top-1精度。我们在ImageNet-22K进行预训练,ImageNet-22K是一个包含21841个类的更大数据集(1000个ImageNet-1K类的超集),使用大约14M的图像进行预训练,然后在ImageNet-1K上对预训练模型进行微调用于评估。在下面我们总结了我们的训练设置。详情见附录A。
**在ImageNet-1K上训练。**我们使用AdamW训练ConvNeXts 300个epoch,学习率为4e-3。有一个20轮次的线性预热然后是余弦衰减步骤。我们使用的批量大小为4096,权重衰减为0.05。对于数据增强,我们采用了常见的方案,包括Mixup、Cutmix、RandAugment和Random erase。我们使用随机深度和标签平滑对网络进行正则化。应用初始值为1e-6的Layer Scale。我们使用指数移动平均(EMA),因为我们发现它缓解了较大模型的过拟合。
**ImageNet-22K的预训练。**我们在ImageNet-22K上预训练ConvNeXts 90次其中预热5次。
我们不使用EMA。其他设置遵循ImageNet-1K。
**ImageNet-1K的微调。**我们对在ImageNet-22K上预训练的模型在ImageNet-1K上进行微调30个epoch。我们使用AdamW,学习率为5e-5,余弦学习率调度,分层学习率衰减,无预热,批大小为512,权值衰减为1e-8。默认的预训练、微调和测试分辨率是224x2。此外,我们在384x2的更大分辨率下进行微调,用于ImageNet-22K和ImageNet-1K预训练模型。
与ViTs/Swin变压器相比,ConvNeXts在不同分辨率下更容易微调,因为网络是全卷积的,不需要调整输入补丁大小或插入绝对/相对位置偏差。
3.2 结果
ImageNet-1K表1显示了与最近的两个Transformer变体DeiT和Swin transformer,以及来自架构搜索的两个卷积网络——RegNets、EfficientNets和EfficientNetsV2的对比结果。在精度-计算权衡以及推理吞吐量方面,ConvNeXt与两个强大的ConvNet基线(RegNet和EfficientNet)竞争有利。
在相同的复杂度下,ConvNeXt的性能也优于Swin Transformer,有时会有相当大的差距(例如ConvNeXt-T和Swin-T差0.8%)。由于没有专门的模块,如移位窗口或相对位置偏置,与SwinTransformer相比,ConvNeXts还有更高的吞吐量。结果中的一个亮点是384x2的ConvNeXt-B
:比swin- b高0.6%(85.1%比84.5%),但推理吞吐量提高12.5% (95.7 vs 85.1图像/秒)。我们注意到,当分辨率从224x2增加到384x2时,ConvNeXt-B比swin - B的FLOPs/吞吐量优势变得更大。此外,当进一步缩放到ConvNeXt-L时,我们观察到改进结果为85.5%。
ImageNet-22K.
我们在表1(下)中展示了从ImageNet-22K预训练中微调的模型的结果。这些实验很重要,因为一个广泛持有的观点是,视觉Transformer有更少的归纳偏好,因此在更大的规模上进行预训练时,可以比卷积神经网络表现得更好。我们的结果表明,当使用大型数据集进行预训练时,适当设计的卷积神经网络并不逊于视觉变形器——卷积神经网络的性能仍然与类似大小的Swin变形器相当或更好,吞吐量略高。此外,我们的ConvNeXt-XL模型达到了87.8%的准确率,比384x2输入的ConvNeXt-L的有了很大的提高,证明ConvNeXt是可扩展的架构。在ImageNet-1K上,EfficientNetV2-L,一个配备高级模块(如squeeze -and dexcitation)和渐进式训练程序的搜索架构可以获得最佳性能。然而,使用ImageNet-22K预训练,ConvNeXt能够胜过EfficientNetV2,进一步证明了大规模训练的重要性。
在附录B中,我们讨论了ConvNeXt的鲁棒性和域外泛化结果。
3.3ConvNeXt和Vit各向同性比较
在这个消融实验中,我们检查了我们的ConvNeXt块设计是否可推广到vit风格的各向同性架构,该架构没有下采样层,并在所有深度保持相同的特征分辨率(例如14×14)。我们使用了与ViT-S/B/L(384/768/1024)相同的特征维度构建了各向同性的ConvNeXt-S/B/L。深度设置为18/18/36,以匹配参数数量和FLOPs。块结构保持不变(图4)。我们将来自DeiT的监督训练结果用于ViT-S/B,来自MAE的用于Vit-L,因为它们采用了比原始vit先进的训练程序。ConvNeXt模型使用与以前相同的设置进行训练,但预热时间更长。在224x2的分辨率下ImageNet-1K的结果如表2所示。我们观察到ConvNeXt的性能与ViT相当,这表明我们的ConvNeXt块设计在非分层模型中具有竞争力。
4.下游任务的实验评价
基于COCO的目标检测与分割我们在带有ConvNeXt主干的COCO数据集上对Mask R-CNN和Cascade Mask R-CNN进行了微调。和Swin Transformer一样,我们使用了多尺度训练、AdamW优化器和3x时间表。进一步的细节和超参数设置可以在附录A.3中找到。表3显示了Swin Transformer、ConvNeXt和传统ConvNet(如ResNeXt)的目标检测和实例分割结果。在不同的模型复杂性中,ConvNeXt实现了与Swin Transformer相当或更好的性能。当使用在ImageNet-22K上预训练的更大的模型(ConvNeXt- b /L/XL)时,在许多情况下,ConvNeXt在box和掩模AP方面明显优于Swin Transformers(例如+1.0 AP)。
ADE20K上的语义分割
我们也在ADE20K语义分割任务上评估了基于ConvNeXt主干的Upernet。所有的模型变体都训练了160K次迭代,批大小为16。其他实验设置如下6。在表4中,我们报告了多尺度测试下的验证mIoU。ConvNeXt模型可以在不同的模型容量下实现竞争性的性能,进一步验证了我们架构设计的有效性。
关于模型效率的评论
在类似的FLOPs下,深度卷积的模型比只有密集卷积的卷积网络更慢,消耗更多的内存。很自然的会问是否ConvNeXt的设计将使它实际上效率低下。如本文所示,ConvNeXts的推理吞吐量
与Swin Transformer相当或超过SwinTransformer。这对于分类和其他需要更高分辨率输入的任务都是有效的(参见表1,3的吞吐量/FPS比较)。此外,我们注意到训练ConvNeXts比训练Swin需要更少的内存。例如,使用ConvNeXt-B骨干网训练Cascade Mask-RCNN,每个gpu批处理大小为2,消耗17.4GB的峰值内存,而swin - b的参考量为18.5GB。与普通ViT相比,由于局部计算,ConvNeXt和Swin Transformer都表现出更有利的精度- flops权衡。值得注意的是,这种效率的提高是ConvNet归纳偏好的结果,与视觉Transformers中的自注意力机制没有直接关系。
5. 相关的工作
混合模型在前vit时代和后vit时代,卷积和自注意力相结合的混合模型都得到了积极的研究。在ViT之前,重点是用自注意力/非局部模块来增强ConvNet,以捕获远程依赖关系。最初的ViT首先研究了一种混合构型,随后大量的工作集中于以显式或隐式的方式将卷积先验重新引入ViT。
最近的基于卷积的方法
Han等表明,局部Transformer注意力等价于非齐次动态深度卷积。Swin中的MSA块然后被动态或规则深度卷积替换,实现了与Swin相当的性能。同时期的一项工作ConvMixer表明,在小规模设置中,深度卷积可以作为一种很有前途的混合策略。ConvMixer使用较小的补丁大小来获得最佳结果,使吞吐量远低于其他基线。GFNet采用快速傅里叶变换(FFT)用于token混合。FFT也是卷积的一种形式,但是具有全局内核大小和圆形填充。与许多最近的Transformer或ConvNet设计不同,我们研究的一个主要目标是深入研究标准ResNet的现代化过程并实现最先进的性能。
6.结论
在21世纪20年代,视觉Transformers,特别是像SwinTransformer这样的分层Transformer,开始取代卷积神经网络成为通用视觉主干的首选。人们普遍认为,视觉Transformers比卷积神经网络更准确、更高效、更可扩展。我们所提出的ConvNeXts是一种纯ConvNet模型,可以在多个计算机视觉基准测试中与最先进的层次视觉Transformers竞争,同时保留了标准ConvNets的简单性和效率。在某些方面,我们的观察结果令人惊讶,虽然我们的ConvNeXt模型本身并不是全新的——在过去的十年里,许多设计选择都是单独研究过的,而不是共同研究过的。我们希望本研究报告的新结果将挑战一些广泛持有的观点,并促使人们重新思考卷积在计算机视觉中的重要性。