ConvNeXt: 设计现代化卷积神经网络.

在图像分类任务中,视觉Transformer逐渐取代了卷积神经网络成为最先进的分类模型。本文作者重新审视了卷积网络的设计空间,并测试了纯粹的“卷积神经网络”所能达到的极限。通过逐步将标准ResNet现代化,构造了完全由标准卷积模块构建的ConvNeXt,并取得了分类任务的最优表现。

作者改进ResNet的路线图如图所示。通过把标准ResNet逐步魔改为现代视觉Transformer,在此过程中发现了导致性能差异的几个关键组件。本文主要考虑两个模型改进路线,分别是ResNet-50 / Swin-T结构(大约$4.5 \times 10^9$FLOPs)和ResNet-200 / Swin-B结构(大约$15 \times 10^9$FLOPs)。由于网络复杂性与最终性能密切相关,在整个研究过程中FLOPs大体上得到控制,尽管某些中间步骤中FLOPs可能高于或低于参考模型。所有的模型都在ImageNet-1K上进行训练和评估。

1. 训练技巧 Training Techniques

除了网络架构的设计之外,训练过程同样影响这最终性能。视觉Transformer引入了不同的训练技巧,主要涉及优化策略和相关的超参数设置。因此首先使用视觉Transformer的训练过程来训练baseline模型。

通过上述训练,ResNet50的准确率从76.1提高到78.8,说明Transformer性能的提升主要还应归因于训练技巧。后续的魔改过程中对所有模型采用固定的参数设置,所有结果都是三个不同随机种子下训练结果的平均。

2. 宏观设计 Macro Design

SwinTransformer的宏观架构设计沿袭着卷积网络的多阶段设计特点,每个阶段有不同的特征映射分辨率。

3. ResNet to ResNeXt

本节尝试采用ResNeXt的思想,它比普通的ResNet具有更好的FLOPs/准确性权衡。ResNeXt对网络的bottleneck块中对$3 \times 3$卷积层使用了分组卷积,可以显著地降低FLOPs,并通过扩大网络宽度来弥补容量损失。

作者把ResNet中的卷积替换为深度可分离卷积,即操作分别基于每个通道和空间维度,只在其中一个维度上混合信息,这样可以实现与视觉Transformer类似的空间的分离和通道的混合。与此同时将网络宽度增加到与Swin-T相同的通道数量(从64个增加到96个),这使得网络性能达到$80.5\%$。

4. 反向瓶颈 Inverted Bottleneck

Transformer块的一个重要设计是反向瓶颈,即MLP块的特征维度是输入特征维度的四倍。因此作者在卷积块中也使用了扩展比为$4$的反向瓶颈(96384),这一变化使整个网络FLOPs减少到4.6G,并略微提高性能(从$80.5\%$提高到$80.6\%$)。在ResNet-200 / Swin-B模式中,这一步带来了更多的收益($81.9\%$至$82.6\%$),同时也减少了FLOPs

5. 大卷积核尺寸 Large Kernel Size

Vision Transformer的自注意力机制使得每一层都具有全局的感受野,而卷积网络通常是堆叠小卷积核,这在现代gpu上具有高效的硬件实现。虽然Swin-T重新将局部窗口引入到自注意力模块中,但窗口的大小至少是$7 \times 7$,明显大于ResNet的$3 \times 3$大小。

为了使用较大的卷积核,首先需要向上移动深度卷积的位置,这个设计决策在transformer中也很明显,即自注意力块被放置在MLP层之前。这种设计使得复杂/低效的模块(大卷积核)具有更少的通道,而高效、密集的$1 \times 1$层将做繁重的工作。这个中间步骤将FLOPs降低到4.1G,导致性能暂时下降到$79.9\%$。

把$3 \times 3$卷积替换为$7 \times 7$,网络的性能从$79.9\%$提高到$80.6\%$,但网络的FLOPs基本保持不变。卷积核大小在$7 \times 7$时性能达到饱和点。至此设计出与Swin Transformer类似的卷积模块。

6. 微观设计 Micro Design

最终模型的性能提升至$82.0\%$,超过Swin-T($81.3\%$)。