ConvNeXt v2 | 2023年ConvNeXt再次超越SOTA的Transformer
极市导读
本文提出 FCMAE 的框架,这种自监督学习技术和架构改进的协同设计产生了一个 ConvNeXt V2 的新模型,它显著提高了纯 ConvNet 在各种识别基准上的性能, >>加入极市CV技术交流群,走在计算机视觉的最前沿
本文目录
1 ConvNeXt V2:使用 MAE 协同设计和扩展 ConvNets
(来自 KAIST,Meta AI,FAIR,纽约大学 [ConvNeXt 原作者刘壮,谢赛宁团队])
1 ConvNeXt V2 论文解读
1.1 背景和动机
1.2 自监督学习方法 FCMAE 的初步设计
1.3 自监督学习方法 FCMAE 的进一步优化
1.3.1 Feature collapse 现象
1.3.2 特征余弦距离分析
1.3.3 全局响应归一化
1.3.4 ConvNeXt V2
1.4 实验结果
1 ConvNeXt V2:使用 MAE 协同设计和扩展 ConvNets
论文名称:ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders
论文地址:
https://arxiv.org/pdf/2301.00808.pdf
1.1 背景和动机
在前几十年的突破性研究的基础上,视觉识别领域迎来了大规模视觉表征学习的新时代。大规模预训练视觉模型已经成为表征学习和实现各种各样视觉应用的基本工具。关于视觉表征学习的性能,一般认为受到以下三个主要因素的影响:
使用的神经网络的结构 训练这个神经网络的方法 训练使用的数据
在视觉识别领域,以上三个子领域的进步都有助于模型整体性能的提高。
关于第一点:神经网络架构设计的创新, 一直在表征学习领域发挥着重要作用。卷积神经网络架构 (ConvNets) 对计算机视觉研究产生了重大影响,它通过卷积操作学习通用特征,适用于各种视觉识别任务。近年来,最初为自然语言处理开发的 Transformer 体系结构也很受欢迎,因为它在模型和数据集大小方面有很好的扩展性。
ConvNeXt[1]是视觉架构的范例,它使传统的卷积网络现代化,并证明纯卷积模型也可以是可扩展的体系结构。然而,探索神经网络架构设计空间的最常用方法仍然是通过对 ImageNet 上的监督学习性能进行基准测试。
关于第二点:训练这个神经网络的方法, 视觉表征学习的重点已经从带有标签的有监督学习转向自监督预训练。比如,MAE[2] 在视觉领域的掩蔽语言建模中取得了成功,并迅速成为一种流行的视觉表征学习方法。然而,自监督学习使用的模型架构往往是为有监督学习设置的架构,并假设这个架构是固定的。比如,MAE 使用 Vision Transformer 架构做实验。
因此,在本文中作者希望将架构的设计和自监督学习框架的设计结合起来,但是直接在 MAE 上使用 ConvNeXt 架构是有问题的。因为 MAE 的 Encoder-Decoder 设计是针对 Transformer 这样的序列信息处理能力强的模型设计的,compute-heavy encoder 可以专注于可见的 Patches,从而降低了预训练成本。这种设计可能与使用密集滑动窗口的标准 ConvNets 不兼容。所以,自监督学习的训练目标和架构之间的关系需要明确,否则就不清楚是否能实现最佳性能。经验证据表明,Transformer 和 ConvNet 可能具有不同的特征学习行为,这些行为可能会影响表征的质量。
为此,作者提出协同设计神经网络的架构和掩码自编码器,目的是使基于掩码的自监督学习对 ConvNeXt 模型有效,使得性能接近 Transformer 获得的结果。在设计掩码自编码器时,我们将掩码输入视为一组 Sparse Patches,并使用稀疏卷积仅处理可见部分。在实践中,可以使用稀疏卷积实现 ConvNeXt,并且在 Fine-tuning 时,权重被转换回标准的密集层,而不需要特殊处理。为了进一步提高预训练效率,作者在实现解码器时,也使用 ConvNeXt 块,使整个设计完全卷积化。
本文动机:
基于有监督训练的 ConvNeXt 性能卓越,受最近自监督方法 MAE 的启发,ConvNeXt 的性能还可能受益于 MAE。但是,直接结合这两种技术性能一般,因此本文提出 FCMAE 的框架,这种自监督学习技术和架构改进的协同设计产生了一个 ConvNeXt V2 的新模型,它显著提高了纯 ConvNet 在各种识别基准上的性能。
1.2 自监督学习方法 FCMAE 的初步设计
如上图1所示,自监督学习方法 FCMAE 概念上简单,并以完全卷积的方式运行。原始的输入信号被随机 mask,输入 Encoder,希望 Encoder + Decoder 的输出预测 mask 掉的部分。
作者使用 masking ratio 为0.6的随机掩码策略。由于卷积模型具有分层设计,其中特征在不同阶段进行下采样,掩码在最后阶段生成,并递归上采样直至最佳分辨率。作者从原始输入图像中随机去除 60% 的 32×32 Patches,数据增强只使用 Random resized cropping。
Encoder 设计
作者使用 ConvNeXt 作为 Encoder。但是这样做自然产生一个问题:MAE 的一个自然的挑战是防止模型学习到复制和粘贴信息的 shortcuts,因为这样得到的模型没有重建能力。当 Transformer 模型作为 Encoder 时,这个问题很好解决,只需要将可见的 Patches 作为编码器的唯一输入即可。但是当 ConvNets 模型作为 Encoder 时,这个问题不好解决了,因为必须保留二维的图像结构。之前的工作 BEiT,SimMIM 的做法是在输入端引入一些可学习的 masked tokens,这些方法降低了预训练的效率,并导致训练和测试时间不一致,因为在测试时没有 masked tokens。当 masking ratio 很高时,这尤其成问题。
为了解决这个问题,作者从 "稀疏数据的视角" 来观察 masked image,关键的观点是,masked image 可以表示为一个二维稀疏像素阵列。因此可以很自然地想到使用稀疏卷积,以促进 MAE 的训练。在预训练期间,将卷积替换为 submanifold sparse convolution,这使得模型只能在可见数据点上操作;在微调阶段,稀疏卷积层可以转换回标准卷积,而不需要额外的处理。
Decoder 设计
作者使用1个 ConvNeXt Block 作为 Decoder。这在总体上形成了非对称的 Encoder-Decoder 体系结构,因为 Encoder 更重,且具有分层架构。
Reconstruction target 设计
遵循 MAE 的做法,使用重建目标和真值之间的 Mean Squared Error, MSE Loss,作为 Reconstruction target。损失函数仅应用于 masked patches。
作者分别使用 ImageNet-1K (IN1K) 数据集进行800和100个 Epoch 的预训练和微调。
为了理解 FCMAE 框架中使用稀疏卷积的影响,作者首先研究它在掩码图像预训练期间如何影响表征学习的质量。实证研究结果表明,为了达到良好的效果,防止信息泄漏是至关重要的。
接下来,作者将 FCMAE 与监督学习进行比较。如下图3所示,实验结果如下。有监督训练 100 Epochs 精度是82.7%,有监督训练 300 Epochs 精度是83.8%,FCMAE 进行 800和100个 Epoch 的预训练和微调结果是 83.7%。说明 FCMAE 预训练提供了比随机基线更好的初始化 (82.7→83.7),但它仍然不如在原始监督训练的最佳性能。
1.3 自监督学习方法 FCMAE 的进一步优化
至此,自监督学习方法 FCMAE 实现了接近有监督学习的性能,但是这与 Transformer + 自监督训练的性能远超有监督训练的结果形成了对比。因此,作者接下来探索自监督学习方法 FCMAE 的进一步优化。
1.3.1 Feature collapse现象
作者首先提出一种新的标准化技术:Global Response Normalization,使 FCMAE 预训练与 ConvNeXt 架构结合起来更加有效。作者首先观察到一种 Feature collapse 现象。如下图4所示,作者可视化了一个 FCMAE 预训练的 ConvNeXt-Base 模型的激活,并注意到一个 Feature collapse 现象,即:有许多死的或饱和的特征映射,激活在通道之间变得多余。这一现象主要在一个 ConvNeXt 块中的 MLP 的 channel expansion 层中观察到。
1.3.2 特征余弦距离分析
为了进一步定量地验证我们的观察结果, 作者进行了特征余弦距离分析。给定激活值 是第 个通道的特征, 将它 reshape 成一个 维的张量, 然 后计算 pair-wise cosine distance: 。
这个距离值越大,特征的多样性越强。反之,距离值越小,特征的冗余性越强。 为了进行分析,作者从 ImageNet-1K 验证集中的不同类别中随机选择1000张图像,并从不同模型的每一层中提取高维特征,包括 FCMAE模型、有监督训练的 ConvNeXt 模型和 MAE 预训练的 ViT 模型。然后计算每个图像的每层距离,并对所有图像的值求平均值。 结果如下图5所示,FCMAE 预训练的 ConvNeXt 模型表现出明显的特征崩溃趋势,与作者从之前的激活可视化中观察到的一致,这促使作者考虑在学习过程中使特征多样化并防止特征崩溃的方法。
1.3.3 全局响应归一化
缓解特征坍塌的方法,其实就是要增加神经元的多样性。在人类大脑中,有许多促进神经元多样性的机制。
例如,横向抑制 (lateral inhibition[3][4]) 可以帮助增强被激活神经元的反应,增加单个神经元对刺激的对比度和选择性,同时还可以增加整个神经元群体的反应多样性。
在深度学习中,这种形式的横向抑制可以通过 Response Normalization[5]来实现。在这项工作中,作者引入了一种新的响应归一化层,称为全局响应归一化 (Global Response Normalization, GRN),其目的是提高信道的对比度和选择性。给定一个输入特征 ,所提出的 GRN 包括三个步骤
全局特征聚合 特征归一化 特征校准
全局特征聚合
通过一个 函数,把空间特征聚合成为一个向量:
这可以看作是一个简单的池化层。作者在图6中尝试了不同的函数。
发现 L2 范数效果最好, 通过使用 L2 范数, 能够对于每个 channel 的特征得到一个值, 最终得到一组聚合的值: , 式中, 是聚合第 个 channel 的统计信息的标量。
特征归一化
如下式所示对第 个 channel 的统计信息的标量进行归一化,式2计算其相对于所有其他通道的相对重要性。
特征校准
最后使用计算出的特征归一化分数校准原始输入响应:
为了简化优化, 作者添加了两个额外的可学习参数 和 , 并将它们初始化为零。作者还在 GRN 层的输入和输出之间添加了一个残差连接。最终变为: .
GRN 与其他归一化策略的消融实验结果如下图8所示。
可以观察到,只有 GRN 可以显著优于监督基线模型。LRN 缺乏全局背景,因为它只对比附近邻居的 channel。BN 沿 Batch 轴在空间上归一化,不适合掩码输入。LN 通过全局均值和方差标准化隐含地鼓励特征竞争,但不像 GRN那样有效。
GRN 与其他 feature gating 的消融实验结果如下图9所示。GRN 类似于一种 feature gating 的方法,作者对比了它和 SE 模块[6],和 CBAM 方法[7]。SE 模块侧重于给 channel 维度的 gating,CBAM 方法侧重于给 spatial 维度的 gating。与它们相比,GRN 更简单,更有效,因为它不需要额外的参数层 (如 MLP)。
最后,作者研究了 GRN 在预训练和微调中的重要性。如下图10所示,从微调中删除 GRN,或者只在微调时添加新初始化的 GRN。无论哪种方式都会观察到显著的性能下降,这表明 GRN 在预训练和微调中的重要性。
1.3.4 ConvNeXt V2
ConvNeXt V2 和 ConvNeXt V1 的对比如下图11所示。与 ConvNeXt V1 相比,V2 丢弃了 Layer Scale,并使用了 GRN。从图4的可视化和图5的余弦距离分析中,可以观察到 ConvNeXt V2 有效地缓解了特征崩溃问题。余弦距离值始终较高,表明特征多样性在各层之间保持不变。可视化结果类似于 MAE 预训练的 ViT 模型。
如下图12所示为 FCMAE 和 ConvNeXt V2 配合与监督学习进行比较的实验结果,FCMAE 预训练模型可以显著优于300 Epochs 有监督训练的 ConvNeXt 模型。GRN 通过增强特征多样性来提高表征学习的质量。
1.4 实验结果
ImageNet 实验结果
本节展示 FCMAE 预训练框架下的 ConvNeXt V2 架构的实验结果,作者展示了这些设计很好地协同作用。联合设计的作用如下图13所示。
可以发现,在不修改模型架构的情况下,使用 FCMAE 框架对表示学习质量的影响有限。类似地,在监督训练的设置下,GRN 层对性能的影响相当小。然而,两者的结合在微调性能上有显著的改善。这说明模型的架构和学习框架应该一起设计,尤其是在涉及到自监督学习的时候。
模型的扩展性
ConvNeXt V2 从小到大的模型架构依次是:
Atto (3.7M),Femto (5.2M),Pico (9.1M),Nano (15.6M),Tiny (28M),Base (89M),Large (198M),Huge (659M)
ConvNeXt V2-A: C=40, B=(2, 2, 6, 2) ConvNeXt V2-F: C=48, B=(2, 2, 6, 2) ConvNeXt V2-P: C=64, B=(2, 2, 6, 2) ConvNeXt V2-N: C=80, B=(2, 2, 8, 2) ConvNeXt V2-T: C=96, B=(3, 3, 9, 3) ConvNeXt V2-B: C=128, B=(3, 3, 27, 3) ConvNeXt V2-L: C=192, B=(3, 3, 27, 3) ConvNeXt V2-H: C=352, B=(3, 3, 27, 3)
与其他自监督方法比较
作者将 FCMAE + ConvNeXt V2 与之前的 MIM 进行了比较,这些方法都是为基于 ViT 的模型设计的。如下图14所示,在所有模型尺寸上都优于用 SimMIM 预训练的 Swin Transformer。但不如使用 MAE 预训练的普通 ViT 模型。
ImageNet-22K intermediate fine-tuning 实验结果
实验包含3步:FCMAE 预训练,ImageNet-22K 微调,ImageNet-1K 微调。 使用 384×384 分辨率的图像进行预训练和微调。结果如图15所示,本文方法使用基于卷积的架构,仅使用公开可用的数据实现了高于 Transformer 模型的精度。
COCO 目标检测和实例分割实验结果
数据集:COCO,模型 Mask R-CNN。实验结果如下图16所示。可以看到,当模型架构从 V1 变为 V2,以及加入 GRN 之后,性能都有提升。在此基础上,当从有监督学习的预训练模型过渡到基于 FCMAE 的自监督学习预训练模型之后,模型性能得到了进一步的提升。
ADE20K 语义分割实验结果
数据集:ADE20K,模型 UperNet。实验结果如下图17所示。结果呈现出与目标检测实验相似的趋势,并且最终模型比 ConvNeXt V1 的模型表现出显著改进,并且性能与 Swin transformer 模型接近。
总结
基于有监督训练的 ConvNeXt 性能卓越,受最近自监督方法 MAE 的启发,ConvNeXt 的性能还可能受益于 MAE。但是,直接结合这两种技术性能一般,因此本文提出 FCMAE 的框架,这种自监督学习技术和架构改进的协同设计产生了一个 ConvNeXt V2 的新模型,它显著提高了纯 ConvNet 在各种识别基准上的性能,使之接近 Transformer 相关的模型。
参考
^A ConvNet for the 2020s ^Masked Autoencoders Are Scalable Vision Learners ^Application of fourier analysis to the visibility of gratings ^INHIBITION IN THE EYE OF LIMULUS ^ImageNet Classification with Deep Convolutional Neural Networks ^Squeeze-and-Excitation Networks ^CBAM: Convolutional Block Attention Module