AConvNet for the 2020s


前言

论文:https://arxiv.org/abs/2201.03545
代码:https://github.com/facebookresearch/ConvNeXt
"我们希望新的观察和讨论能够挑战一些共同的信念,并鼓励人们重新思考卷积在计算机视觉中的重要性。"⭐
非常值得一看!
视觉识别的“Roaring 20s”始于ViTs的出现。普通的ViT在具体的视觉任务上使用遇到了很多困难。是分层Transformer重新引入了一些之前的ConvNet,使得Transformer在实际上可以作为通用的视觉backbone,并在各种视觉任务上表现出卓越的性能。但是这些混合方法的有效性,在很大程度上归功于Transformer内在的优越性,而不是卷积固有的归纳偏置。在这项工作中,重新审视了设计空间,并测试了春卷及神经网络所能达到的极限。
他们用训练Transformer的技巧去训练ConvNet,发现了导致性能差异的几个关键组件。提出的ConvNeXts完全由标准的ConvNet模块构建,在准确性和可扩展性方面可以与Transformer竞争。

在这里插入图片描述


1. Introduction

深度学习的发展,神经网络的复兴,使得视觉理解成功地从工程特征转向对ConvNet的结构设计。ConvNets在计算机视觉领域占主导地位不是巧合,在很多应用场景中,“滑动窗口”策略是视觉处理所固有的。卷积神经网络具有多个内置的感应偏置,使其非常适合各种计算机视觉应用。最重要的一个是平移等价,这是物体检测等任务的理想特性。本质上也是有效的,因为当以滑动窗口方式使用时,计算是共享的。ViT的出现彻底改变了网络架构设计的布局。ViT最受关注的特点是他尺寸方面的表现,在更大的模型和数据集的帮助下,Transformer的性能可以大大优于标准的ResNet。
如前所述,过去十年中许多计算机视觉任务的解决方案在很大程度上依赖于滑动窗口的全卷积范式。最大的挑战是ViT的全局注意力设计,它在输入大小方面具有二次复杂性。这对于 ImageNet 分类可能是可以接受的,但对于更高分辨率的输入,很快就会变得棘手。
分层的变压器采用混合的方式来弥补这一个差距。把ConvNet和Transformer混合在一起。Swin Transformer的成功和快速采用也揭示了一件事:卷积的本质并没有变得无关紧要;相反,它仍然非常被需要,从未减弱。
在这种观点下,很多视觉领域的Transformer的完善是恢复卷积。然而,这些尝试是有代价的:滑动窗口自我注意的朴素实现可能很昂贵。速度可以优化,但系统在设计上变得更加复杂。几乎具有讽刺意味的是,ConvNet已经满足了许多所需的属性。卷积神经网络似乎失去动力的唯一原因是(分层),变压器在许多视觉任务中都超越了它们。而且表现性能差异归因于变形Transformer卓越的缩放性能,以及多头自我注意力关键组成部分。
卷积网和分层视觉变压器同时不同和相似:它们都配备了相似的归纳偏置,但在训练程序和宏观/微观层面的架构设计上却有很大不同。研究了卷积神经网络和变压器之间的架构差异,并尝试在比较网络性能时识别混杂变量。
探索是由一个关键问题指导:
How do design decisions in Transformers impact ConvNets’ performance?

2. Modernizing a ConvNet: a Roadmap

总结了一系列的设计决策:

  1. macro design
  2. ResNeXt
  3. inverted bottleneck
  4. large kernel size
  5. various layer-wise micro designs
    展示了"Modernizing a ConvNet"的每一步所能达到的过程和结果。由于网络复杂度与最终性能密切相关,因此对FLOPs进行了大致的控制。
    在这里插入图片描述

2.1 Training Techniques

最近的研究证明一套现代的训练技术可以显著增强一个简单的ResNet-50模型。epoch设置为300,使用Adam W优化器,数据增强技术eg:Mixup、Cutmix、Random Erasing,以及正则化方案包括Stochatic Depth和Label Smothing。这种增强的训练方案将ResNet - 50模型的性能从76.1 %提高到78.8 % ( + 2.7 % ),这意味着传统的卷积神经网络和Vision Transformers之间的性能差异很大一部分可能是由于训练技术造成的。将在整个"现代化"过程中使用这个具有相同超参数的固定训练方案。

2.2 Macro Design

分析Swin Transformer的macro network设计。
Changing stage compute ratio更改阶段计算比例:Swin-T阶段计算比例为1:1:3:1,对于较大的Swin Transformer,比例为1:1:9:1。按照这个设计,每个阶段中的块数从原始的ResNet-50中的(3,4,6,3)调整为(3,3,9,3)。这将模型精度从 78.8% 提高到 79.4%。

Change stem to “Patchify”(处理输入图片,ViT是把图片打成patch进入transfomer,我的理解就是这个处理,ResNet的Conv0层):通常干细胞设计关注的是如何在网络开始的时候处理输入图像。在视觉Transformer和ConvNet stem cell是将输入图像下采样到合适的大小。ResNet是一个7x7 stride=2的conv+maxpool,就是把输入图像进行4x的下采样(原来的1/4倍)。ViT中,使用更加积极的“修补”策略作为stem cell ,这个方式与较大的内核和非重叠卷积相一致。Swin Transformer使用类似的"Patchify"层,但是生成的图像块的大小较小,为4,以适应架构的多阶段设计。用4x4大小stride=4的卷积代替了ResNet50原来的stem cell。准确率从79.4%提升到了79.5%。

2.3 ResNeXt-ify

尝试利用ResNeXt的想法,它的核心是分组卷积,它比普通的 ResNet 具有更好的 FLOP/精度权衡。从高层次上看,ResNeXt的指导原则是“使用更多组,扩展宽度”。
这里使用了分组卷积的特例深度卷积(组数=通道数)。注意到深度卷积类似于自注意力中的加权和运算(基于每一个通道运行,仅在空间维度上混合信息)。
深度卷积和conv1x1的结合导致空间和通道混合的分类。是ViT共享的属性,其中每个操作要么混合空间维度信息,或者是混合通道维度信息,不能同时混合两个。深度卷积的使用有效地降低了网络FLOP,并且如预期的那样降低了准确性。
按照 ResNeXt 中提出的策略,将网络宽度增加到与 Swin-T 相同的通道数(从 64 个增加到 96 个)。随着FLOP(5.3G)的增加,网络性能达到80.5%。

2.4 Inverted Bottleneck

每一个transformer的一个重要设计是它创造了一个inverted bottleneck。NLP的隐藏层尺寸是输入尺寸的四倍。这个变压器的设计是连接扩展比为4的倒置的bottleneck。
在这里插入图片描述
(a)是ResNeXt块,(b)创建的一个倒置的bootleneck块,©空间深度卷积层的位置向上移动
在这里,探讨倒置瓶颈设计。图 3 (a) 至 (b) 说明了配置。尽管深度卷积层的 FLOP 增加了,但由于下采样残差块的快捷方式 1×1 卷积层的 FLOP 显著减少,这种变化将整个网络的 FLOP 减少到 4.6G。有趣的是,这导致性能略有提高(80.5% 到 80.6%)。在 ResNet-200 / Swin-B 制度中,这一步带来了更多的收益(81.9% 至 82.6%),同时降低了 FLOP。

扫描二维码关注公众号,回复: 15283861 查看本文章

2.5 Large Kernel Sizes

虽然过去在卷积神经网络有些中使用了大内核大小,但黄金标准(由 VGGNet 推广)是堆叠小内核大小 (3×3) 卷积层,这些层在现代 GPU 上具有高效的硬件实现。Swin Transformer将本地窗口引入自注意力模块,窗口大小为7x7,明显大于ResNeXt卷积核大小3x3。这里我们使用大卷积核。
Moving up depthwise conv layer:探究大卷积核,一个先决条件是把深度卷积层的位置向上移动,就像上图(b)->©。这是一个设计决策,在变压器中也很明显:MSA模块放置在MLP层之前。复杂/低效的模块(MSA,大内核转换)将具有较少的通道,而高效,密集的1×1层将完成繁重的工作。中间步骤将 FLOP 降低到 4.1G,导致性能暂时下降到 79.9%
Increasing the kernel size:网络的性能从79.9%(3×3)增加到80.6%(7×7),而网络的FLOP大致保持不变。发现大卷积带来的好处在 7×7 达到饱和点。我们也在大容量模型中验证了这种行为:当我们将内核大小增加到 7×7 以上时,ResNet-200 制度模型不会表现出进一步的增益。
至此,已经结束了对宏观网络架构的考察。有趣的是,在Vision Transformer中采取的很大一部分设计选择可以映射到ConvNet实例化。

2.6 Micro Design

下面是讲一些微小的改动。
Replace ReLU with GELU:用GELU替换ReLU。GELU比ReLU更加平滑。很多先进的Transformer中都使用了GELU,在 ConvNet 中,ReLU 也可以用 GELU 代替,尽管准确性保持不变。
在这里插入图片描述

Fewer activation functions:更少的激活函数。在这里,研究当坚持相同的策略时性能如何变化。如图 4 所示,我们从残差块中去除了所有 GELU 层,除了两个 1 × 1 层之间的一个层,复制了变压器块的样式。该过程将结果提高了0.7%至81.3%,几乎与Swin-T的性能相当。

Fewer normalization layers:更少的正则化层。我们移除了2个normalization layers只剩下一个normalization layer。这进一步将性能提高到81.4%,已经超过了Swin-T的结果。我们的normalization layer的数量小于Transformer,根据经验,我们发现在块的开头添加一个额外的BN层并不能提高性能。
Substituting BN with LN:用LN代替BN。在原始 ResNet 中直接用 LN 代替 BN 将导致性能欠佳,我们的 ConvNet 模型在使用 LN 进行训练没有任何困难。事实上,性能略好,获得了81.5%的准确率。
Separate downsampling layers:分离下采样层。在 ResNet 中,空间下采样是通过每个阶段开始时的残差块实现的,在快捷连接处使用 3×3 卷和步幅 2(在快捷连接处使用 1×1 卷和步幅 2)。在 Swin 变压器中,在级之间增加了一个单独的下采样层。探索了一种类似的策略,其中使用 2×2 个卷积层和步幅 2 进行空间下采样。这种修改令人惊讶地导致了不同的训练。进一步的研究表明,在空间分辨率发生变化的地方添加归一化层可以帮助稳定训练。其中包括Swin变压器中也使用的几个LN层:每个下采样层之前一个,stem之后一个,最终全局平均池化之后一个。我们可以将精度提高到82.0%,大大超过Swin-T的81.3%。
Closing remarks.闭幕词。值得注意的是,到目前为止讨论的所有设计选择都改编自视觉变压器。到目前为止,我们的探索仅限于小规模,但Vision Transformers的在尺寸方面的表现才是它们的真正区别。我们将在数据和模型大小方面扩展我们的ConvNeXt模型,并在各种视觉识别任务中对其进行评估。

3. Empirical Evaluations on ImageNet

总结了一下配置:
• 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 Settings

我们使用 4096 的批量大小和 0.05 的重量衰减。对于数据增强,我们采用常见的方案,包括Mixup,Cutmix [89],RandAugment和随机擦除。我们使用随机深度和标签平滑 对网络进行正则化。应用初始值 1e-6 的层比例 。我们使用指数移动平均线(EMA),因为我们发现它减轻了较大模型的过度拟合。
Pre-training on ImageNet-22K.
Fine-tuning on ImageNet-1K.
与ViTs/Swin变压器相比,ConvNeXts在不同分辨率下更容易进行微调,因为网络是完全卷积的,不需要调整输入补丁大小或插值绝对/相对位置偏差。

3.2 Results

ImageNet-1K
Transformer变体,DeiT和 Swin Transformers,以及来自架构搜索的两个 ConvNets - RegNets、EfficientNets 和 EfficientNetsV2。ConvNeXt在精度计算权衡以及推理吞吐量方面与两个强大的ConvNet基线(RegNet和EfficientNet)竞争有利。没有专门的模块,如移位窗口或相对位置偏差,与Swin变压器相比,ConvNeXts的吞吐量也更高。
ImageNet-22K
证明了当在大的数据集上进行预训练的时候,正确设计的卷积神经网络不逊色于视觉Transformer。ConvNeXts的性能仍然与类似尺寸的Swin变压器相当或更好,吞吐量更大。ConvNeXts 是可扩展的架构。

3.3 Istropic ConvNeXt vs. ViT

我们观察到ConvNeXt的性能通常与ViT相当,这表明我们的ConvNeXt模块设计在非分层模型中使用时具有竞争力。

4.Empirical Evaluation on Downstream Tasks

在下游任务上的结果。略

5. Relation Work

介绍了Hybrid models和Recent convolution-based approaches方面的工作。

3.3 Isotropic ConvNeXt vs. ViT

4. Empirical Evaluation on Downstream Tasks


总结

提出了ConvNeXts,这是一种纯粹的ConvNet模型,可以在多个计算机视觉基准测试中与最先进的分层视觉变压器竞争,同时保留标准ConvNet的简单性和效率。在某些方面,观察结果令人惊讶,而ConvNeXt模型本身并不是全新的——在过去十年中,许多设计选择都经过了单独检查,但不是集体的。希望这项研究中报告的新结果将挑战几种广泛持有的观点,并促使人们重新思考卷积在计算机视觉中的重要性。

猜你喜欢

转载自blog.csdn.net/goodenough5/article/details/129813486