摘要
论文链接:ConvNeXt V2
在改进的架构和更好的表示学习框架的推动下,视觉识别领域在21世纪20年代初实现了快速现代化和性能提升。例如,以ConvNeXt[52]为代表的现代ConvNets在各种场景中都表现出了强大的性能。虽然这些模型最初是为使用ImageNet标签的监督学习而设计的,但它们也可能受益于自监督学习技术,如蒙面自编码器(MAE)[31]。然而,我们发现,简单地结合这两种方法会导致性能不佳。在本文中,我们提出了一个全卷积掩码自编码器框架和一个新的全局响应归一化(GRN)层,可以添加到ConvNeXt架构中,以增强通道间的特征竞争。这种自我监督学习技术和架构改进的共同设计产生了一个名为ConvNeXt V2的新模型家族,它显著提高了纯ConvNets在各种识别基准上的性能,包括ImageNet分类、COCO检测和ADE20K分割。我们还提供各种大小的预训练ConvNeXt V2模型,从高效的3.7 m参数Atto模型,在ImageNet上具有76.7%的top-1精度,到仅使用公共训练数据实现最先进的88.9%精度的650M Huge模型。
1 简介
在前几十年的研究突破的基础上[34,44,47,60,68],视觉识别领域迎来了大规模视觉表示学习的新时代。预训练的大规模视觉模型已经成为特征学习的重要工具,并使广泛的视觉应用成为可能。视觉表示学习系统的性能在很大程度上受三个主要因素的影响:所选择的神经网络结构、用于训练网络的方法和用于训练的数据。在视觉识别领域,每个领域的进步都有助于性能的整体提高。
神经网络架构设计的创新一直在表示学习领域发挥着重要作用。卷积神经网络架构(ConvNets)[34, 44, 47]通过允许将通用特征学习方法用于各种视觉识别任务[25,33],而不是依赖人工特征工程,对计算机视觉研究产生了重大影响。近年来,最初为自然语言处理开发的transformer架构[68]也因其相对于模型和数据集大小[21]的强大扩展行为而受到欢迎。最近,ConvNeXt[52]架构使传统的卷积网络现代化,并表明纯卷积模型也可以是可扩展的架构。然而,探索神经网络架构设计空间的最常见方法仍然是在ImageNet上对监督学习性能进行基准测试。
在另一项研究中,视觉表示学习的重点已经从带有标签的监督学习转移到以前置目标为目标的自监督预训练。在众多不同的自监督算法中,掩码自编码器(MAE)[31]最近将掩码语言建模的成功带入视觉领域,并迅速成为视觉表示学习的流行方法。然而,自监督学习中的一种常见做法是使用为监督学习设计的预先确定的体系结构,并假设设计是固定的。例如,MAE是使用vision transformer[21]架构开发的。
可以将架构的设计元素和自监督学习框架结合起来,但在将ConvNeXt与掩码自动编码器结合使用时,这样做可能会带来挑战。一个问题是,MAE有一个特定的编-解码器设计,针对transformer的序列处理能力进行了优化,这允许计算量大的编码器专注于可见的块,从而降低预训练成本。这种设计可能与使用密集滑动窗口的标准卷积网络不兼容。此外,如果不考虑架构和训练目标之间的关系,可能不清楚是否可以实现最佳性能。事实上,之前的研究表明,用基于掩码的自监督学习训练卷积网络可能是困难的[43],经验证据表明,transformer和卷积网络可能有不同的特征学习行为,会影响表示质量。
本文建议在同一框架下共同设计网络架构和掩码自编码器,目的是使基于掩码的自监督学习对ConvNeXt模型有效,并取得与使用transformer获得的结果类似的结果。
在设计掩码自编码器时,将掩码输入视为一组稀疏块,并使用稀疏卷积[28]来仅处理可见部分。这个想法的灵感来自于在处理大规模3D点云时使用稀疏卷积[15,76]。在实践中,我们可以用稀疏卷积实现ConvNeXt,在微调时,权重被转换回标准的密集层,而不需要特殊处理。为进一步提高预训练效率,将transformer解码器替换为单个ConvNeXt块,使整个设计成为全卷积的。我们观察到有这些变化的结果是混合的:学习到的特征是有用的,并在基线结果上有所提高,但微调性能仍然没有基于transformer的模型好。
对ConvNeXt的不同训练配置进行特征空间分析。在直接在掩码输入上训练ConvNeXt时,发现了MLP层特征坍缩的潜在问题。为了解决这个问题,本文提出增加一个全局响应归一化层来增强通道间的特征竞争。当模型使用掩码自动编码器进行预训练时,这种改变是最有效的,这表明从监督学习中重用固定的架构设计可能是次优的。
本文介绍了ConvNeXt V2,该V2在与掩码自动编码器联合使用时,证明了性能的提高。我们发现,该模型显著提高了纯卷积网络在各种下游任务中的性能,包括ImageNet分类[60],COCO目标检测[49]和ADE20K分割[81]。ConvNeXt V2模型可用于各种计算模式,包括不同复杂度的模型:从一个高效的3.7 m参数的Atto模型,在ImageNet上达到76.7%的top-1精度,到一个650M的巨型模型,在使用ImageNet- 22k标签时达到最先进的88.9%的精度。
2 相关工作
ConvNets。 卷积网络的设计于20世纪80年代首次引入[46],使用反向传播进行训练,多年来在优化、精度和效率方面进行了许多改进[35,36,39,44,58,61,63,75]。这些创新主要是通过在ImageNet数据集上使用监督训练而发现的。近年来,有人尝试使用自监督的前文本任务(如旋转预测和着色)来进行架构搜索,如UnNAS[50]。最近,ConvNeXt[52]对设计空间进行了全面的审查,并表明纯ConvNets可以像视觉transformer一样可扩展[21,51],后者在许多应用中已成为主导架构。ConvNeXt在要求较低复杂度的场景中特别出色[7,70,71]。ConvNeXt V2模型由自监督学习提供支持,提供了一种简单的方法来升级现有模型,并在广泛的用例中实现性能的显著提高。
Masked Autoencoders。 以掩码自编码器[31]为代表的掩码图像建模是最新的自监督学习策略之一。作为一种神经网络预训练框架,掩码自动编码器对视觉识别产生了广泛的影响。然而,原始的掩码自编码器由于其非对称编码器-解码器设计,不能直接适用于卷积网络。诸如[3,77]等替代框架试图将该方法用于ConvNets,但结果不一。MCMAE[23]使用一些卷积块作为输入分词器。据我们所知,没有任何预训练模型表明,自监督学习可以提高最佳ConvNeXt监督结果。
3 全卷积掩码自编码器
该方法在概念上简单,并以完全卷积的方式运行。学习信号是通过以高掩码率随机掩盖原始输入视觉效果,并让模型在给定剩余上下文的情况下预测缺失的部分来生成的。我们的框架如图2所示,现在我们将更详细地描述它的主要组件。
编码器的设计。 我们使用ConvNeXt[52]模型作为编码器。使掩码图像建模有效的一个挑战是防止模型学习允许它从掩码区域复制和粘贴信息的快捷方式。在基于transformer的模型中,这相对容易防止,因为它可以将可见的块作为编码器的唯一输入。然而,用卷积网络实现这一点比较困难,因为必须保留2D图像结构。虽然朴素的解决方案涉及在输入端引入可学习的掩码标记[3,77],但这些方法降低了预训练的效率,并导致训练和测试时间不一致,因为在测试时没有掩码标记。当掩蔽率很高时,这变得尤其成问题。
为了解决这个问题,本文的新见解是从"稀疏数据的角度"看掩码图像,这是受3D任务中稀疏点云学习的启发[15,76]。本文的关键观察是,掩码图像可以表示为像素的二维稀疏数组。基于这一见解,很自然地将稀疏卷积纳入该框架中,以促进掩码自编码器的预训练。在实践中,在预训练期间,我们建议用子流形稀疏卷积转换编码器中的标准卷积层,这使模型仅在可见数据点上操作[15,27,28]。稀疏卷积层可以在微调阶段转换回标准卷积,而不需要额外的处理。作为一种替代方案,也可以在密集卷积操作之前和之后应用二进制掩码操作。这种操作在数字上与稀疏卷积具有相同的效果,理论上计算更密集,但在TPU等AI加速器上可以更友好。
译码器的设计。 我们使用一个轻量级的普通ConvNeXt块作为解码器。这形成了一个非对称的编码器-解码器架构,因为编码器更重,并且具有层次结构。我们还考虑了更复杂的解码器,如分层解码器[48,59]或transformer[21,31],但更简单的单一ConvNeXt块解码器在微调精度方面表现良好,并大大减少了预训练时间,如表1所示。我们将解码器的维度设置为512。
重建目标。 我们计算重建图像和目标图像之间的均方误差(MSE)。与MAE[31]类似,目标是原始输入的逐块归一化图像,损失仅应用于被掩码的块。
FCMAE。 通过结合上述建议,本文提出一种全卷积掩码自编码器(FCMAE)。为评估该框架的有效性,使用ConvNeXt-Base模型作为编码器,并进行了一系列消融研究。在本文中,我们专注于端到端微调性能,因为它在迁移学习中的实际相关性,并使用它来评估学习到的表示的质量。
使用ImageNet-1K (IN-1K)数据集分别进行800和100个epoch的预训练和微调,并报告了单个224×224中心裁剪的top-1 IN-1K验证精度。有关实验设置的更多细节可以在附录中找到。
为了解在FCMAE框架中使用稀疏卷积的影响,本文首先研究了它在掩码图像预训练期间如何影响学习到的表示的质量。实验结果表明,为了取得良好的效果,防止被屏蔽区域的信息泄露至关重要。
接下来,将自监督方法与监督学习进行比较。获得了两个基线实验结果:使用相同配方的有监督的100 epoch基线和原始ConvNeXt论文[52]中提供的300 epoch有监督的训练基线。FCMAE预训练提供了比随机基线更好的初始化(即
82.7
→
83.7
)
82.7 \rightarrow 83.7)
82.7→83.7)),但仍然需要赶上原始有监督设置中获得的最佳性能。
这与最近使用基于transformer的模型[3,31,77]进行掩码图像建模的成功形成了对比,其中预训练模型的性能明显优于监督的对应模型。这激励我们研究ConvNeXt编码器在掩码自编码器预训练过程中面临的独特挑战,下面将讨论。
4 全局响应归一化
在本节中,我们引入一种新的全局响应归一化(GRN)技术,与ConvNeXt架构相结合,使FCMAE预训练更有效。首先,通过定性和定量特征分析来激励所提出方法。
特征坍缩。 为了更好地了解学习行为,首先在特征空间中进行定性分析。可视化了FCMAE预训练convnextbase模型的激活,并注意到一个有趣的"特征坍缩"现象:有许多死亡或饱和的特征图,激活在各个通道中变得冗余。我们在图3中显示了一些可视化结果。这种行为主要在ConvNeXt块[52]中的维度扩展MLP层中观察到。
特征余弦距离分析。 为了进一步定量验证所观察到的结果,进行了特征余弦距离分析。将其重塑为HW维向量,并通过1C2 PC i PC j 1−cos(2Xi;Xj)计算通道上的平均成对余弦距离。距离值越高,特征越多样化;距离值越低,特征冗余度越高。
特征余弦距离分析。 为了进一步定量验证所观察到的结果,进行了特征余弦距离分析。给定一个激活张量 X ∈ R H × W × C X \in R^{H \times W \times C} X∈RH×W×C, X i ∈ R H × W X_{i} \in R^{H \times W} Xi∈RH×W是第i个通道的特征图。将其重塑为HW维向量,并通过 1 C 2 ∑ i C ∑ j C 1 − cos ( X i , X j ) 2 \frac{1}{C^{2}} \sum_{i}^{C} \sum_{j}^{C} \frac{1-\cos \left(X_{i}, X_{j}\right)}{2} C21∑iC∑jC21−cos(Xi,Xj)计算通道上的平均成对余弦距离。距离值越高,特征越多样化;距离值越低,特征冗余度越高。
为了进行分析,在ImageNet-1K验证集中随机选择了不同类别的1000张图像,并从不同模型的每一层中提取高维特征,包括FCMAE模型、ConvNeXt监督模型[52]和MAE预训练的ViT模型[31]。然后,我们计算每个图像的每层距离,并将所有图像的距离取平均值。结果绘制在图4中。FCMAE预训练ConvNeXt模型表现出明显的特征坍缩趋势,这与我们在之前的激活可视化中的观察结果一致。这促使我们考虑在学习过程中使特征多样化并防止特征崩溃的方法。
方法。 大脑中有许多促进神经元多样性的机制。例如,侧抑制[6,30]有助于增强激活神经元的反应,并增加单个神经元对刺激的对比度和选择性,同时也增加了整个神经元群体反应的多样性。在深度学习中,这种形式的侧抑制可以通过响应归一化[45]来实现。本文提出一种新的响应归一化层,称为全局响应归一化(GRN),旨在增加通道的对比度和选择性。给定输入特征 X ∈ R H × W × C X \in R^{H \times W \times C} X∈RH×W×C,所提出的GRN单元由三个步骤组成: 1)全局特征聚合,2)特征归一化和 3)特征校准。
首先,我们总
X
i
X_{i}
Xi映射到一个向量空间特征
g
x
gx
gx全局函数
G
(
⋅
)
\mathcal{G}(\cdot)
G(⋅):
G
(
X
)
:
=
X
∈
R
H
×
W
×
C
→
g
x
∈
R
C
.
(1)
\mathcal{G}(X):=X \in \mathcal{R}^{H \times W \times C} \rightarrow g x \in \mathcal{R}^{C} . \tag{1}
G(X):=X∈RH×W×C→gx∈RC.(1)
这可以被视为一个简单的池化层。我们在表2a中尝试了不同的函数。有趣的是,全局平均池化,一种广泛使用的特征聚合器[37,72],在我们的案例中表现不佳。相反,我们发现使用基于范数的特征聚合,特别是使用l2 -范数,可以产生更好的性能。这给我们一个聚合值的集合
G
(
X
)
=
g
x
=
{
∥
X
1
∥
,
∥
X
2
∥
,
…
,
∥
X
C
∥
}
∈
R
C
\mathcal{G}(X)=g x= \left\{\left\|X_{1}\right\|,\left\|X_{2}\right\|, \ldots,\left\|X_{C}\right\|\right\} \in \mathcal{R}^{C}
G(X)=gx={∥X1∥,∥X2∥,…,∥XC∥}∈RC其中
G
(
X
)
i
=
∥
X
i
∥
\mathcal{G}(X)_{i}=\left\|X_{i}\right\|
G(X)i=∥Xi∥是一个标量,用于聚合第i个通道的统计信息。
接下来,我们对聚合值应用响应归一化函数N(·)。具体来说,我们使用一个标准的分裂归一化如下:
N ( ∥ X i ∥ ) : = ∥ X i ∥ ∈ R → ∥ X i ∥ ∑ j = 1 , … , C ∥ X j ∥ ∈ R (2) \mathcal{N}\left(\left\|X_{i}\right\|\right):=\left\|X_{i}\right\| \in \mathcal{R} \rightarrow \frac{\left\|X_{i}\right\|}{\sum_{j=1, \ldots, C}\left\|X_{j}\right\|} \in \mathcal{R} \tag{2} N(∥Xi∥):=∥Xi∥∈R→∑j=1,…,C∥Xj∥∥Xi∥∈R(2)
其中 ∥ X i ∥ \left\|X_{i}\right\| ∥Xi∥是第i个通道的l2范数。直观地说,对于第i个通道,Eqn.2计算其相对于所有其他通道的相对重要性。与其他形式的归一化[42,45,68]类似,这一步通过相互抑制创建了跨通道的特征竞争。在表2b中,我们还检查了其他规范化函数的使用,并发现简单分裂式规范化效果最好,尽管当应用于相同的l2 -范数聚合值时,标准化 ( ∥ X i ∥ − μ ) / σ \left(\left\|X_{i}\right\|-\mu\right) / \sigma (∥Xi∥−μ)/σ产生类似的结果。
最后,我们使用计算得到的特征归一化得分校准原始输入响应:
X
i
=
X
i
∗
N
(
G
(
X
)
i
)
∈
R
H
×
W
(3)
X_{i}=X_{i} * \mathcal{N}\left(\mathcal{G}(X)_{i}\right) \in \mathcal{R}^{H \times W} \tag{3}
Xi=Xi∗N(G(X)i)∈RH×W(3)
核心GRN单元非常容易实现,只需要3行代码,并且没有可学习的参数。GRN单元的伪代码在算法1中。
为了简化优化,我们添加了两个额外的可学习参数,
γ
\gamma
γ和
β
\beta
β,并将它们初始化为零。我们还在GRN层的输入和输出之间添加了残差连接。GRN block的最终计算结果
X
i
=
γ
∗
X
i
∗
N
(
G
(
X
)
i
)
+
β
+
X
i
X_{i}= \gamma * X_{i} * \mathcal{N}\left(\mathcal{G}(X)_{i}\right)+\beta+X_{i}
Xi=γ∗Xi∗N(G(X)i)+β+Xi
这种设置允许GRN层最初执行一个恒等函数,并在训练过程中逐渐适应。表2c展示了残差连接的重要性。
ConvNeXt V2。 我们将GRN层合并到原始ConvNeXt块中,如图5所示。我们根据经验发现,当应用GRN时,LayerScale[65]变得不必要,并且可以删除。使用这种新的区组设计,创建了具有不同效率和容量的各种模型,称为ConvNeXt V2模型族。这些模型从轻量级(如atto[70])到计算密集型(如巨型)。详细的模型配置可以在附录中找到。
GRN的影响。 现在,我们使用FCMAE框架对ConvNeXt V2进行预训练,并评估GRN的影响。从图3的可视化和图4的余弦距离分析中,我们可以观察到ConvNeXt V2有效地缓解了特征坍缩问题。余弦距离值始终很高,表明跨层保持了特征多样性。这种行为类似于MAE预训练的ViT模型[31]。总的来说,这表明在类似的掩码图像预训练框架下,ConvNeXt V2学习行为可以类似于ViT。
接下来,评估微调性能。
当配备GRN时,FCMAE预训练模型可以显著优于300 epoch的监督模型。GRN通过增强特征多样性来提高表示质量,而特征多样性在V1模型中是缺失的,但已被证明对基于掩码的预训练至关重要。注意,这种改进是在不增加额外参数开销或增加浮点数的情况下实现的。
与特征规范化方法的关系。其他归一化层[2,41,45,67,73]能否表现得像全局响应归一化(GRN)层一样好?在表2d中,我们将GRN与三个广泛使用的归一化层进行了比较:局部响应归一化(LRN)[45]、批量归一化(BN)[41]和层归一化(LN)[2]。只有GRN可以显著优于监督基线。LRN缺乏全局上下文,因为它只对比相邻通道中的通道。BN沿着批处理轴进行空间归一化,这不适用于掩码输入。LN通过全局均值和方差标准化隐含地鼓励特征竞争,但效果不如GRN。
与特征门控方法的关系。另一种增强神经元之间竞争的方法是使用动态特征门控方法[37,56,69,72,78]。在表2e中,我们将GRN与两个经典的门控层进行了比较:squeeze-and - dexcite (SE)[37]和卷积块注意力模块(CBAM)[72]。SE专注于通道门控,而CBAM专注于空间门控。这两个模块都可以增加单个通道的对比度,类似于GRN的作用。GRN更简单、更高效,因为它不需要额外的参数层(如mlp)。
GRN在预训练/微调中的作用。研究了GRN在预训练和微调中的重要性。我们在表2f中给出了结果,其中我们要么从微调中删除GRN,要么只在微调时添加新的初始化的GRN。无论哪种方式,我们观察到性能显著下降,表明在预训练和微调中保持GRN是很重要的。
5 ImageNet实验
在本节中,提出并分析了两个关键建议,FCMAE预训练框架和ConvNeXt V2架构,它们是共同设计的,以使基于掩码的自监督预训练成功。这些设计很好地协同作用,并为将模型扩展到各种尺寸提供了强大的基础。通过实验将所提出方法与之前的掩码图像建模方法进行了比较。使用FCMAE框架预训练并在ImageNet-22K数据集上微调的最大的ConvNeXt V2巨型模型,仅使用公开数据,就可以在ImageNet-1K数据集上达到88.9%的最高精度。
联合设计很重要。 本文进行了一项独特的研究,包括联合设计自监督学习框架(FCMAE)和模型架构改进(GRN层),通过对它们的学习行为的实证研究。表3给出的结果表明了这种方法的重要性。
!
发现在不修改模型架构的情况下使用FCMAE框架对表示学习质量的影响有限。类似地,新的GRN层在监督设置下对性能的影响相当小。然而,两者的结合可以显著提高微调性能。这支持了一种观点,即模型和学习框架应该一起考虑,特别是在涉及自监督学习时。
模型扩展。 在本研究中,我们评估了8个不同尺寸的模型,从低容量3.7M的Atto模型到高容量6.5 m的巨型模型。使用提出的FCMAE框架对这些模型进行预训练,并将微调结果与完全监督的对应模型进行比较。
图1所示的结果显示了强大的模型缩放行为,在所有模型大小的监督基线上,性能都得到了持续的提高。这是掩码图像建模的好处首次在如此广泛的模型范围内得到证明,无论是在有效性还是效率方面。完整的表格结果可以在附录中找到。
与先前方法的比较。 将该方法与之前的掩码自编码器方法[3,31,77]进行了比较,这些方法都是为基于transformer的模型设计的。结果总结在表4中。所提出框架在所有模型大小上都优于用SimMIM[77]预训练的Swin transformer。与用MAE[31]预训练的普通ViT相比,所提出方法的表现类似于大型模型,尽管使用的参数少得多(198M vs 307M)。然而,在庞大的模型体系中,我们的方法略有落后。这可能是因为巨大的ViT模型可以从自监督预训练中获益更多。正如我们接下来将看到的,这个差距可能会通过额外的中间微调来弥合。
ImageNet-22K中级微调。本文还提出了ImageNet-22K中间微调结果[3]。训练过程包括三个步骤:1)FCMAE预训练,2)ImageNet-22K微调,3)ImageNet-1K微调。使用3842张分辨率图像对[38]进行预训练和微调。将结果与最先进的架构设计进行了比较,包括基于卷积的[52,64]、基于transformer的[22]和混合设计[20,66]。所有这些结果都是用ImageNet-22K监督标签训练的。结果总结在表5中。所提出方法使用基于卷积的架构,仅使用公开数据(即ImageNet-1K和ImageNet-22K)设置了新的最先进的精度。
6 迁移学习实验
现在我们对迁移学习性能进行基准测试。评估了联合设计的影响,即比较了ConvNeXt V1 + supervised与ConvNeXt V2 + FCMAE。还将该方法与SimMIM预训练的Swin transformer模型[77]进行了直接比较。培训和测试细节见附录。
基于ADE20K的语义分割。总之,我们使用UperNet框架[74]在ADE20K[82]语义分割任务上进行了实验。结果显示了与目标检测实验相似的趋势,最终模型比V1监督的对应模型有了明显的改善。在基本模型和大型模型体系中,它的表现与Swin transformer相当,但在大型模型体系中优于Swin。
7 结论
本文提出一种新的卷积网络模型族,称为ConvNeXt V2,覆盖了更广泛的复杂性。虽然该架构的变化很小,但它是专门为更适合自监督学习而设计的。使用所提出的全卷积掩码自编码器预训练,可以显著提高纯卷积网络在各种下游任务中的性能,包括ImageNet分类、COCO目标检测和ADE20K分割。