ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders
原文链接:论文笔记《ConvNeXt V2:Co-designing and Scaling ConvNets with Masked Autoencoders》 | Karl的博客
CSDN链接:论文笔记《ConvNeXt V2:Co-designing and Scaling ConvNets with Masked Autoencoders》-CSDN博客
论文链接:[2301.00808] ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders (arxiv.org)
代码链接:facebookresearch/ConvNeXt-V2: Code release for ConvNeXt V2 model (github.com)
Abstract
在改进的架构和更好的表示学习框架的推动下,视觉识别领域在本世纪20年代初经历了快速的现代化和性能提升。例如,以ConvNeXt[52]为代表的现代卷积神经网络已经在各种场景中展示了强大的性能。虽然这些模型最初是为使用ImageNet标签进行监督学习而设计的,但它们也可能受益于自监督学习技术,如掩码自动编码器(MAE)[31]。然而,我们发现简单地结合这两种方法会导致表现欠佳。在本文中,我们提出了一个全卷积掩码自编码器框架和一个新的全局响应归一化(GRN)层,该层可以添加到ConvNeXt架构中以增强信道间特征竞争。这种自监督学习技术和架构改进的共同设计产生了一个名为ConvNeXt V2的新模型家族,它显著提高了纯ConvNets在各种识别基准上的性能,包括ImageNet分类、COCO检测和ADE20K分割。我们还提供了各种大小的预训练ConvNeXt V2模型,从在ImageNet上具有76.7% top-1精度的高效3.7 M参数Atto模型,到仅使用公共训练数据即可实现最先进的88.9%精度的650M Huge模型。
1. Introduction
在前几十年研究突破的基础上[34, 44, 47, 60, 68],视觉识别领域迎来了大规模视觉表征学习的新时代。预训练的大规模视觉模型已经成为特征学习和实现广泛视觉应用的基本工具。视觉表示学习系统的性能在很大程度上受三个主要因素的影响:选择的神经网络架构、用于训练网络的方法和用于训练的数据。在视觉识别领域,这些领域的进步都有助于整体性能的提高。
神经网络架构设计的创新一直在表征学习领域发挥着重要作用。卷积神经网络架构(ConvNets)[34, 44, 47]对计算机视觉研究产生了重大影响,因为它允许在各种视觉识别任务中使用通用的特征学习方法[25, 33],而不是依赖于人工特征工程。近年来,最初为自然语言处理而开发的transformer架构[68]也因其在模型和数据集大小方面的强大缩放行为[21]而受到欢迎。最近,ConvNeXt[52]架构使传统的卷积网络现代化,并证明纯卷积模型也可以是可扩展的架构。然而,探索神经网络架构设计空间的最常见方法仍然是通过对ImageNet上的监督学习性能进行基准测试。
在另一项研究中,视觉表征学习的重点已经从有标签的监督学习转向有预训练目标的自我监督预训练。在许多不同的自监督算法中,掩蔽自编码器(mask autoencoders, MAE)[31]最近将掩蔽语言建模成功地引入了视觉领域,并迅速成为视觉表征学习的一种流行方法。然而,自监督学习中的一个常见做法是使用为监督学习设计的预定架构,并假设该设计是固定的。例如,MAE是使用视觉transformer[21]架构开发的。
将架构的设计元素和自监督学习框架结合起来是可能的,但是这样做可能会在使用带有掩码自编码器的ConvNeXt时带来挑战。一个问题是,MAE有一个特定的编解码器设计,该设计针对transformers的序列处理能力进行了优化,这使得计算量大的编码器能够专注于可见的小块,从而减少预训练成本。这种设计可能与使用密集滑动窗口的标准卷积神经网络不兼容。此外,如果不考虑体系结构和训练目标之间的关系,那么是否能够实现最佳性能可能是不清楚的。事实上,之前的研究表明,用基于掩码的自监督学习训练卷积神经网络可能很困难,而且经验证据表明,transformers和卷积神经网络可能具有不同的特征学习行为,从而影响表征质量。
为此,我们提出在同一框架下共同设计网络架构和掩码自编码器,目的是使基于掩码的自监督学习对ConvNeXt模型有效,并获得与使用transformers相似的结果。
在设计掩码自编码器时,我们将掩码输入视为一组稀疏小块,并使用稀疏卷积[28]只处理可见部分。这个想法的灵感来自于在处理大规模3D点云时使用稀疏卷积[15, 76]。在实践中,我们可以用稀疏卷积实现ConvNeXt,在微调时,权重被转换回标准的密集层,而不需要特殊处理。为了进一步提高预训练效率,我们将transformer解码器替换为单个ConvNeXt块,使整个设计完全卷积。我们观察到这些变化的混合结果:学习到的特征是有用的,并且在基线结果上有所改进,但是微调性能仍然不如基于transformer的模型好。
然后,我们对ConvNeXt的不同训练配置进行特征空间分析。当直接在掩码输入上训练ConvNeXt时,我们发现了MLP层特征崩溃的潜在问题。为了解决这个问题,我们建议增加一个全局响应规范化层来增强通道间的特征竞争。当模型用掩码自编码器预训练时,这种变化是最有效的,这表明重用来自监督学习的固定架构设计可能是次优的。
总之,我们介绍了ConvNeXt V2,当与掩码自编码器结合使用时,它展示了改进的性能。我们发现,该模型显著提高了纯卷积神经网络在各种下游任务上的性能,包括ImageNet分类[60]、COCO对象检测[49]和ADE20K分割[81]。ConvNeXt V2模型可用于各种计算机制,包括不同复杂性的模型:从3.7M参数的Atto模型,在ImageNet上达到76.7%的top-1精度,到使用IN-22K标签时达到最先进的88.9%精度的650M Huge模型。
2. Related Work
ConvNets. 卷积神经网络的设计于20世纪80年代首次引入,并使用反向传播进行训练,多年来在优化、准确性和效率方面经历了许多改进[35, 36, 39, 44, 58, 61, 63, 75]。这些创新主要是通过在ImageNet数据集上使用监督训练发现的。近年来,人们在使用自监督的预训练任务(如旋转预测和着色)来执行架构搜索方面做出了一些努力,例如UnNAS[50]。最近,ConvNeXt[52]对设计空间进行了全面的回顾,并证明纯ConvNets可以像视觉transformers一样具有可扩展性[21, 51],这已经成为许多应用中的主导架构。ConvNeXt在需要较低复杂性的场景中表现尤为出色[7, 70, 71]。我们的ConvNeXt V2模型由自监督学习驱动,提供了一种简单的方法来升级现有模型,并在广泛的用例中实现性能的显著提升。
Masked Autoencoders. 以掩码自编码器[31]为代表的掩码图像建模是一种最新的自监督学习策略。掩码自编码器作为一种神经网络预训练框架,在视觉识别领域显示出广泛的影响。然而,原始的掩码自编码器由于其不对称的编解码器设计而不能直接应用于卷积神经网络。替代框架,如[3, 77]已经尝试将该方法用于卷积神经网络,但结果好坏参半。MCMAE[23]使用一些卷积块作为输入标记器。据我们所知,没有预训练的模型表明自监督学习可以提高最佳的ConvNeXt监督结果。
3. Fully Convolutional Masked Autoencoder
我们的方法在概念上很简单,并且以完全卷积的方式运行。学习信号是通过以高掩蔽比例随机掩蔽原始输入视觉效果并让模型在给定剩余上下文的情况下预测缺失部分来生成的。我们的框架如图2所示:
现在我们将更详细地描述它的主要组件。
Masking. 我们使用随机掩蔽策略,掩蔽比例为0.6。由于卷积模型具有分层设计,其中在不同阶段对特征进行下采样,在最后阶段生成掩码并递归上采样以达到最佳分辨率。为了在实践中实现这一点,我们从原始输入图像中随机去除60%的 32 × 32 32 \times 32 32×32块。我们使用最小的数据增强,只包括随机调整大小的裁剪。
Encoder design. 在我们的方法中,我们使用ConvNeXt[52]模型作为编码器。使掩码图像建模有效的一个挑战是防止模型学习允许它从掩码区域复制和粘贴信息的快捷方式。在基于transformer的模型中,这相对容易防止,因为它可以将可见的小块作为编码器的唯一输入。然而,使用卷积神经网络实现这一点更加困难,因为必须保留二维图像结构。虽然朴素的解决方案涉及在输入端引入可学习的掩码令牌[3, 77],但这些方法降低了预训练的效率,并导致训练和测试时间不一致,因为在测试时没有掩码令牌。当掩蔽比例很高时,这变得特别成问题。
为了解决这个问题,我们的新见解是从“稀疏数据视角”来看待被掩盖的图像,这是受到3D任务中稀疏点云学习的启发[15, 76]。我们的关键观察是,被遮挡的图像可以表示为二维稀疏的像素数组。基于这一见解,将稀疏卷积合并到我们的框架中以促进掩码自编码器的预训练是很自然的。在实践中,在预训练过程中,我们建议将编码器中的标准卷积层转换为子流形稀疏卷积,使模型仅对可见数据点进行操作[15, 27, 28]。我们注意到稀疏卷积层可以在微调阶段转换回标准卷积,而不需要额外的处理。作为一种替代方法,也可以在密集卷积操作之前和之后应用二进制掩蔽操作。该操作在数值上与稀疏卷积具有相同的效果,理论上计算强度更高,但在TPU等AI加速器上可能更友好。
Decoder design. 我们使用轻量级的、普通的ConvNeXt块作为解码器。这在整体上形成了一个不对称的编码器-解码器架构,因为编码器更重并且具有层次结构。我们还考虑了更复杂的解码器,如分层解码器[48, 59]或transformers[21, 31],但更简单的单个ConvNeXt块解码器在微调精度和显著减少预训练时间方面表现良好,如表1所示:
我们将解码器的尺寸设置为512。
Reconstruction target. 我们计算重建图像与目标图像之间的均方误差(MSE)。与MAE[31]类似,目标是原始输入的逐块归一化图像,并且损失仅应用于被掩蔽的补丁。
FCMAE. 我们现在结合上述建议提出了一个全卷积掩码自动编码器(FCMAE)。为了评估该框架的有效性,我们使用ConvNeXt-Base模型作为编码器,并进行了一系列消融研究。在整篇论文中,我们关注端到端微调性能,因为它在迁移学习中具有实际意义,并使用它来评估学习表征的质量。
我们使用ImageNet-1K(IN-1K)数据集分别进行800次和100次预训练和微调,并报告单个 224 × 224 224 \times 224 224×224中心裁剪的前1个IN-1K验证精度。关于实验设置的更多细节可以在附录中找到。
为了理解在我们的FCMAE框架中使用稀疏卷积的影响,我们首先研究了它如何影响掩码图像预训练期间学习到的表示的质量。我们的实证研究结果表明,为了达到良好的效果,防止掩码区域的信息泄露是至关重要的。
接下来,我们将自我监督方法与监督学习方法进行比较。具体来说,我们获得了两个基线实验结果:使用相同配方的监督100 epoch基线和原始ConvNeXt论文[52]中提供的300 epoch监督训练基线。我们发现我们的FCMAE预训练提供了比随机基线更好的初始化(即 82.7 → 83.7 82.7 \to 83.7 82.7→83.7),但它仍然需要赶上在原始监督设置中获得的最佳性能。
这与最近使用基于transformer的模型的掩码图像建模的成功形成对比[3, 31, 77],其中预训练的模型显著优于有监督的模型。这促使我们研究ConvNeXt编码器在掩码自动编码器预训练期间面临的独特挑战,我们接下来将讨论。
4. Global Response Normalization
在本节中,我们将介绍一种新的全局响应归一化(GRN)技术,以使FCMAE预训练与ConvNeXt架构相结合更加有效。我们首先通过定性和定量特征分析来激励我们的方法。
Feature collapse. 为了更深入地了解学习行为,我们首先在特征空间中进行定性分析。我们可视化了FCMAE预训练的ConvNeXt-Base模型的激活,并注意到一个有趣的“特征崩溃”现象:有许多死的或饱和的特征图,并且激活在通道之间变得冗余。我们在图3中展示了一些可视化效果:
这种行为主要在ConvNeXt块[52]的维度扩展MLP层中观察到。
Feature cosine distance analysis. 为了进一步定量验证我们的观察结果,我们进行了特征余弦距离分析。给定一个激活张量 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 i i个通道的特征图。我们将其重塑为 H W HW HW维向量,并通过 1 C 2 ∑ i C ∑ j C 1 − cos ( X i , X h ) 2 \frac{1}{C^2}\sum_i^C\sum_j^C\frac{1 - \cos(X_i, X_h)}{2} C21∑iC∑jC21−cos(Xi,X