ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders(2023.1.2-v1)
链接: paper
code
Abstract:(1).引入MAE形成FCMAE(全卷积掩码自编码器)
(2).提出GRN(全局响应正则化)
引入MAE1,困难点:
MAE有一个针对Transformer的序列处理能力优化的设计,使得大计算量编码器能够专注于visible patches(可见图块),从而降低预训练成本。而这种设计可能与使用密集滑动窗口的标准ConvNets不兼容。
下图性能指标,详见附录。
一、Fully Convolutional Masked Autoencoder(全卷积掩码自编码器)
基于全卷积,通过以高遮挡率随机对原始输入图像进行遮挡,让模型在给定剩余图像上预测缺失部分,来生成learning signals(学习信号)。Fully convolutional masked autoencoder (FCMAE)如下图所示,其由一个基于稀疏卷积的ConvNeXt编码器和一个轻量级的ConvNeXt解码器组成。总的来说,这个自动编码器的架构是不对称的。编码器只处理可见像素,解码器使用编码像素和mask tokens重建图像。Loss仅在masked patches上计算。
1.Masking
由于卷积模型具有在不同stage对特征图进行下采样的分层设计,故在最后stage生成掩码,后递归地上采样,直到达到最佳分辨率。practice:从原始输入图像中随机移除了60%的32×32图块,数据增强只使用random resized cropping。
2.Encoder design
有效重建遮挡图像的一个挑战,是防止模型学习从遮挡区域复制和粘贴信息的捷径。在基于transformer的模型中相对容易防止,因其可使visible patches成为编码器的唯一输入。在必须保留2D图像结构的ConvNets中难以实现。轻率的解决方案是在输入端引入可学习的masked tokens2,但降低了预训练的效率,并导致训练和测试时间不一致,因为在测试时没有mask tokens,在遮挡率高时尤其严重。
受3D任务中稀疏点云的启发3,从“稀疏数据的角度”来看遮挡图像,其可以表示为2D稀疏像素数组。故引入稀疏卷积,促进对掩码自编码器的预训练。在预训练中,将标准卷积转换为submanifold sparse convolution,使得模型只能在可见数据点上操作4。在微调阶段,稀疏卷积层可以转换回标准卷积,而不需要额外处理。也可以在密集卷积运算之前和之后应用binary masking operation(二进制掩码运算),在数值上与稀疏卷积具有相同的效果,理论上计算更密集,但在TPU等人工智能加速器上效果更好。
3.Decoder design
解码器是轻量级与较复杂、具有层次结构的编码器,形成了非对称的encoder-decoder架构。经实验发现微调精度时,简单的单ConvNeXt解编码器较复杂的解编码器(如hierarchical decoders5、transform-ers6)效果更好,并显著减少了预训练时间(消融实验见论文表1)。解码器的dimension设置为512。
4.Reconstruction target(重建目标)
计算重建图像和目标图像之间的均方误差(MSE)。与MAE类似,目标是原始输入的patch-wise normalized image(逐块归一化图像),Loss仅在masked patches上计算。
总结:
FCMAE在迁移学习中具有实际意义,故实验重点在端到端的微调性能上,以其指标评估学习表现。在ImageNet-1K (IN-1K)数据集上预训练和微调的epoch分别为800和100,以一个224×224中心框在IN-1K validation的top-1 accuracy为指标。 (详见附录)
Next, we compare our self-supervised approach to supervised learning. Specifically, we obtain two baseline experi-mental results: the supervised 100 epoch baseline using the same recipe and the 300 epoch supervised training baseline provided in the original ConvNeXt paper [52]. We find that our FCMAE pre-training provides better initialization than the random baseline (i.e., 82.7→83.7), but it still needsto catch up to the best performance obtained in the original supervised setup
二、Global Response Normalization(全局响应归一化)
提出应用于高维度特征图块的GRN,以使FCMAE预训练与ConvNeXtar体系结构相结合更加有效。
1.Feature collapse(特征崩溃)
为了解学习行为,在特征空间中进行定性分析。可视化FCMAE预训练的ConvNeXt-Base模型的activations,有许多失活或饱和的特征图,主要出现在ConvNeXt block中的dimension-expansion MLP层中。如下图所示,对每个特征通道小方块可视化的activation map(为了清晰起见,显示64个通道)。
2.Feature cosine distance analysis(特征余弦距离分析)
给定activation tensor(激活张量) X ∈ R H × W × C X∈R^{H×W×C} X∈RH×W×C, X i ∈ R H × W X_i∈R^{H×W} Xi∈RH×W是第i通道的特征图。我们将其重塑为HW维向量,并通过 1 C 2 ∑ i C ∑ j C 1 − c o s ( X i , X j ) 2 \frac{1}{C^2} \sum_{i}^{C}\sum_{j}^{C}\frac{1-cos(X_i,X_j)}{2} C21∑iC∑jC21−cos(Xi,Xj)计算通道的平均成对余弦距离。距离值越大表示特征越多样化,相反则表示特征重复。
实验分析。从ImageNet-1K验证集中的不同类别中随机选择1000个图像,并从不同模型的每一层中提取高维特征,包括FCMAE、自监督ConvNeXt7和MAE预训练的ViT8,均为常规层结构。通过计算每个图像每层的距离,并对所有图像的值进行平均,结果如下图所示(论文原图分辨率低)。FCMAE预训练的ConvNeXt模型表现出明显的特征崩溃趋势,与从上面激活可视化中观察到的结果一致。监督模型在最终层中也出现特征多样性减少的现象,可能是由于交叉熵损失使模型更关注类判别特征,抑制了其他特征。这促使作者考虑如何在学习过程中使特征多样化,并防止特征崩溃。
3.Approach
大脑中有许多机制可以促进神经元的多样性,如横向抑制9,可以增强激活神经元的响应,增加单个神经元对刺激的对比度和选择性,同时也可以增加神经元群体的多样化响应。在深度学习中,可以通过response normalization(响应归一化)来实现10。论文提出全局响应归一化(GRN),旨在提高通道的对比度和选择性。给定输入特征 X ∈ R H × W × C X∈R^{H×W×C} X∈RH×W×C,GRN单元由三个步骤组成:1).全局特征聚合;2).特征归一化;3).feature calibration特征校准。
ConvNeXt V2,模型配置详见附录(轻量级Atto11)。如下图所示,将GRN层引入原始ConvNeXt中后,不再需要LayerScale12,但增加了参数和FLOPS。见上方两图,ConvNeXt V2有效地缓解了特征崩溃,各层都具特征多样性。
4.消融实验
setting:使用ConvNeXt-Base在ImageNet-1K上微调,基线为83.7,GRN为84.6。
归一化方法,其他归一化方法13。作者挑选三个广泛使用的归一化层进行比较:局部响应归一化(LRN)14– 83.2、批量归一化(BN)15– 80.5和层归一化(LN)16– 83.8。LRN缺乏global contextas;BN沿batch进行空间归一化,不适用于masked inputs(遮挡输入);LN通过全局均值和方差标准化间接促进特征竞争,但不如GRN有效。
特征门控方法,增强神经元之间竞争的另一种方法是使用动态特征门控方法17。作者挑选两个经典的门控层进行比较:SE18– 84.4和CBAM19– 84.5,参数均为109M,而GRN参数为89M。SE专注于通道门控,CBAM专注于空间门控,二者均可增加单个通道的对比度。但GRN更简单、更高效,因为它不需要额外的参数层(如MLP)。
预训练/微调中的作用。实验显示在预训练和微调的任意过程中去掉GRN,性能都会显著下降。
三. Experiments
1.ImageNet
在FCMAE框架下预训练并在ImageNet-22K上微调的ConvNeXt V2 Huge模型,在ImageNet-1K上达到88.9%的sota top-1准确率。本文说明了模型和学习框架应该一起考虑,尤其是自监督学习。
与以前的基于Transformer设计的掩码自编码器方法20比较,结果如下表所示。可能Huge ViT模型更适合自监督的预训练。如下,与其的差距可以通过额外的中间微调来弥补。
ImageNet-22K中间微调21。训练过程包括三个步骤:1).FCMAE预训练;2).ImageNet-22K微调;3).ImageNet-1K微调。与最先进的架构设计进行比较,包括基于卷积的22、基于变换器的23和混合设计的24。如下表所示,仅使用公开数据(ImageNet-1K和ImageNet-22K)就达到了sota精度。
2.迁移学习(详见附录)
Swins的结果均来自25。
微调Mask R-CNN,在COCO上进行检测(mAPbox)和分割(mAPmask)的任务实验,如下表所示。FLOPs以(1280,800)分辨率计算,COCO微调实验均使用ImageNet-1K预训练模型。
使用UperNet框架[74]对ADE20K[82]语义分割任务进行实验。FLOPS以(2048、512)或(2560、640)分辨率计算的,ADE20K微调实验均使用ImageNet-1K预训练模型,FCMAE,22K ft除外,其在ImageNet-1K预训练后还有ImageNet-22K的监督训练微调。
相关链接:ConvNeXt 论文笔记
ps:下为论文内文献索引,供拓展使用。
paper[31] ↩︎
paper[3,77] ↩︎
paper[15,76] ↩︎
paper[15,27,28] ↩︎
paper[48, 59] ↩︎
paper[21, 31] ↩︎
paper[52] ↩︎
paper[31] ↩︎
paper[6,30] ↩︎
paper[45] ↩︎
paper[70] ↩︎
paper[65] ↩︎
paper[2,41,45,67,73] ↩︎
paper[45] ↩︎
paper[41] ↩︎
paper[2] ↩︎
paper[37,56,69,72,78] ↩︎
paper[37] ↩︎
paper[72] ↩︎
paper[[3,31,77] ↩︎
paper[3] ↩︎
paper[52,64] ↩︎
paper[22] ↩︎
paper[20,66] ↩︎
paper[77] ↩︎