ConvNeXt V2:适应Self-Supervised Learning,让CNN <u>再</u> “再一次强大”?
[TOC]
前言
Hi!今天给大家分享一篇比较新的计算机视觉论文,题目是“ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders”。这篇论文是由韩国科学技术院(KAIST)、Meta AI和纽约大学的研究者合作发表,论文和代码的链接放在下方。简单来说,这篇论文改进出了一种新的卷积神经网络(ConvNeXt V2)模型,通过结合自监督学习(self-supervised learning)框架并进一步加入新的架构改进(architectural improvement),在各种视觉识别任务上取得了不错的性能提升。下面让我们一起探索一下这篇论文的主要内容和创新点吧~
论文地址:[2301.00808] ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders (arxiv.org)
GitHub代码地址:facebookresearch/ConvNeXt-V2: Code release for ConvNeXt V2 model (github.com)
回顾ConvNeXt
在介绍ConvNeXt V2之前,让我们对ConvNeXt做一下简单的回顾:
ConvNeXt同样是Meta AI的工作,它的motivation是重新审视设计空间,测试纯卷积神经网络(ConvNet)的极限,探索纯卷积神经网络在计算机视觉任务中所能达到的性能。虽然在计算机视觉领域中,Transformers已经在多个任务中超越了卷积神经网络,但是ConvNeXt论文中认为卷积神经网络具有天然的归纳偏置(inductive bias)性质,因此仍然有很大的潜力可以挖掘。作者通过逐步将标准ResNet现代化,测试了一系列的设计决策,发掘其中有用的关键组件,最终提出了一族名为ConvNeXt的纯卷积神经网络,并在多个视觉任务上进行了评估,取得了与Vision Transformer相当的准确性和可扩展性,同时保持了标准卷积神经网络的简单和高效性。
ConvNeXt从宏观和微观两个层面对卷积神经网络和层级Transformer进行了比较和分析。作者逐步将标准ResNet模型“现代化”,并发现了一些work的技术与方法,如ResNeXt、反向瓶颈、大卷积核等,这些组件有助于提高卷积网络的性能。此外,在微观层面上,作者还研究了激活函数和归一化层等方面的不同设计选择,例如将BatchNorm替换为LayerNorm等。最终,作者提出了一系列纯卷积神经网络模型,具体的尝试如下图所示,一句话来说,即Transformer或者Swin-Transformer怎么做,我也试着做对应的调整:
ConvNeXt V2
ConvNeXt V2是基于现代ConvNets并添加了自监督学习技术的结果。ConvNeXt V2在ConvNeXt的基础上增加了两个新的组件:全卷积掩码自编码器(fully convolutional masked autoencoder, FCMAE)和全局响应归一化(global response normalization, GRN)。这种自监督学习技术和架构改进的协同设计(Co-design)共同创造了一个新的模型系列ConvNeXt V2,它在包括ImageNet分类、COCO检测和ADE20K分割在内的各种识别基准测试中显着提高了纯ConvNets的性能。
同时,作者还在GitHub上提供了各种大小的预训练ConvNeXt V2模型,范围从高效的3.7M参数Atto模型到650M的Huge模型。
前面提到,ConvNeXt V2主要有两个创新点:一是提出了一种全卷积掩码自编码器(FCMAE)框架,二是提出了一种全局响应归一化(GRN)层。下面让我们分别来简单地看看它们的原理和效果,并看看新的训练框架(learning framework)与结构改进(architectural improvement)同时考虑并结合(Co-design)后的进一步提升。
全卷积掩码自编码器(FCMAE)
全卷积掩码自编码器(FCMAE)框架是一种基于卷积神经网络的自监督学习方法,它的思想是在输入图像上随机掩盖一些区域,然后让模型尝试恢复被掩盖的部分。这样可以迫使模型学习到图像的全局和局部特征,从而提高其泛化能力。FCMAE框架与传统的掩码自编码器(MAE)框架相比,有两个优势:一是它使用了全卷积结构,而不是使用全连接层来生成掩码和重建图像,这样可以减少参数量和计算量,同时保持空间信息;二是它使用了多尺度掩码策略,而不是使用固定大小的掩码,这样可以增加模型对不同尺度特征的感知能力。
文中也在表1中展示了在实验中一步步寻找FCMAE中最优解码器的过程:
在这些实验中,研究人员对不同的解码器进行了比较,在最终的微调阶段的准确率作为评估标准。表格中展示了使用 ConvNeXt-Base 进行实验的结果,其中包括使用不同类型解码器的精度。最终,作者选择了最优的解码器用于结合FCMAE来训练最终的 ConvNeXt V2模型。
全局响应归一化(GRN)
全局响应归一化(GRN)层是一种新的卷积神经网络层,它的作用是在每个通道上对特征图进行归一化处理,从而增强通道间的特征竞争。GRN层与传统的批量归一化(BN)层相比,有两个优势:一是它不需要额外的参数,因为它仅仅是对特征图进行归一化处理;二是它可以处理任意大小的batch,而BN层则需要根据batch大小动态调整参数,计算量较大。GRN层的实现非常简单,只需要三行代码,并且没有可学习的参数。具体来说,GRN层可以分为三个步骤:全局特征聚合、特征归一化和特征校准。在全局特征聚合步骤中,我们使用L2范数对每个通道上的特征图进行聚合,得到一个聚合后的向量。在特征归一化步骤中,我们使用标准除法归一化函数对聚合后的向量进行归一化。在特征校准步骤中,我们使用归一化后的向量对原始的特征图进行校准。整个GRN层的计算量非常小,因此可以很容易地添加到卷积神经网络中,从而增强特征竞争,提高模型性能。
论文也展示了每个特征通道的激活图。为了更清晰地展示,每个可视化图中显示了64个通道。作者发现ConvNeXt V1模型存在特征崩溃问题,即在通道之间存在冗余激活(死亡或饱和神经元)。为了解决这个问题,作者引入了一种新的训练方法:全局响应归一化(GRN)层,用于每个块中的高维特征。这种方法促进了特征的多样性,导致ConvNeXt V2架构的开发。
"We visualize the activation map for each feature channel in small squares. For clarity, we display 64 channels in each visualization. The ConvNeXt V1 model suffers from a feature collapse issue, which is characterized by the presence of redundant activations (dead or saturated neurons) across channels. To fix this problem, we introduce a new method to promote feature diversity during training: the global response normalization (GRN) layer. This technique is applied to high-dimensional features in every block, leading to the development of the ConvNeXt V2 architecture."
同时,为了进一步验证GRN的效果,论文在表2中展示了使用ConvNeXt-Base模型进行的一系列实验,来研究如何利用全局响应归一化(GRN)技术来增加特征的多样性,从而提高模型的性能。
Table 2. GRN ablations with ConvNeXt-Base. We report fine-tuning accuracy on ImageNet-1K. Our final proposal is marked in gray .
表格中展示了不同的实验情况,包括不同的特征归一化方法、特征加权方法以及在预训练和微调阶段中使用GRN的效果。实验结果表明,GRN可以有效地提高模型的性能,特别是在预训练阶段。同时,GRN与其他常见的特征归一化方法相比,也具有更好的效果。
Co-design Matters
既然FCMAE与GRN都能带来一定程度的提升,那么它们一起使用会带来什么样的结果呢?这就是论文中关于“co-designing”相关实验要展示的内容。
具体来说,如下表所示:作者在实验中发现,在不修改模型结构的情况下,使用FCMAE框架对表征学习质量的影响有限。同样,新的GRN层对监督设置下的性能影响也相当小。然而,两者的结合使微调性能得到了明显的改善。这支持了前面提到的模型和学习框架应该一起考虑(both the model and learning framework should be considered together)的想法,特别是在涉及到自监督学习时。
Co-design matters. When the architecture and the learning framework are co-designed and used together, masked image pre-training becomes effective for ConvNeXt. We report the finetuning performance from 800 epoch FCMAE pre-trained models. The relative improvement is bigger with a larger model.
实验结果
在实验中,使用FCMAE框架和GRN层的ConvNeXt V2模型在不同的任务上表现出了显著的性能提升,包括ImageNet分类、COCO检测和ADE20K分割。
首先是必须要有的ImageNet-1k上的结果:
如表4所示:ConvNeXt V2 + FCMAE 在所有的模型规模上都优于用SimMIM预训练的Swin Transformer。同时,与用MAE预训练的ViT相比,ConvNeXt V2在大模型体系中的表现相似,并且使用的参数少得多(198M vs 307M)。然而,更大的模型体系中,ConvNeXt V2是略微落后于其他方法的。作者认为这可能是因为一个巨大的ViT模型可以从自监督的预训练中获益更多。
同时,预训练好的ConvNeXt V2作为backbone连接Mask R-CNN做head在COCO上目标检测和实例分割;与结合Uper-Net在ADE20k上进行语义分割,ConvNeXt V2同样表现出了优秀的效果。
论文总结
总的来说,ConvNeXt V2向我们介绍了一种适配卷积网络的自监督学习框架FCMAE,以此提高ConvNets的表示学习能力和可扩展性。同时,文中还提出了一种全局响应归一化(GRN)技术,以解决遮蔽输入直接训练ConvNeXt模型时可能出现的特征折叠问题。进一步,论文向我们展示了FCMAE和GRN的联合设计(Co-design)带来的更大提升,验证了模型和学习框架应该一起考虑(both the model and learning framework should be considered together)的思想。最后,ConvNeXt V2作为在一众Vision Transformer中的ConvNet,我也很期待它在后面的应用与表现,能否真的让CNN <u>再</u> “再一次强大”?
未来工作
在这篇论文的未来工作中,作者提出了一些可以继续深入的研究方向。首先,作者表示可以进一步探索GRN层的设计和调整,以便更好地适应特定的数据集和模型。其次,作者建议研究如何将FCMAE框架应用于其他任务,例如视频分类或人脸识别。此外,作者认为可以将FCMAE与其他形式的自监督学习技术进行比较,以找出最佳的组合方式。最后,作者建议将FCMAE应用于更大的模型和更具挑战性的数据集,以进一步验证其有效性。
MMpretrain
MMpretrain是OpenMMLab团队推出的一个用于训练预训练模型的工具包。它提供了多种常用的预训练模型,包括分类、检测、分割等常见任务的预训练模型,并且支持在自定义数据集上进行预训练。MMpretrain还提供了数据增强、学习率调整、权重衰减等训练过程中常用的技巧和方法,方便用户进行模型训练和调试。使用MMpretrain可以方便地进行预训练模型的训练和迁移学习,是一个非常实用的工具.
本次介绍的ConvNeXt V2将自监督学习技术和架构改进相结合,显著提高了纯ConvNets在各种识别基准上的性能,包括ImageNet分类、COCO检测和ADE20K分割。OpenMMLab的MMpretrain提供了预训练的ConvNeXt V2模型,可以在这里找到更多信息:链接。我们可以使用MMpretrain来训练自己的模型或使用预训练模型进行微调。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。