ConvNeXt V2:适应Self-Supervised Learning,让CNN 再 “再一次强大”?
前言
Hi!今天给大家分享一篇比较新的计算机视觉论文,题目是“ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders”。这篇论文是由韩国科学技术院(KAIST)、Meta AI和纽约大学的研究者合作发表,链接在这里。这篇论文提出了一种新的卷积神经网络(ConvNet 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论文中认为卷积神经网络具有天然的归纳偏差性质,因此仍然有很大的潜力可以挖掘。作者通过逐步将标准ResNet现代化,测试了一系列的设计决策,发现了几个关键组件,最终提出了一族名为ConvNeXt的纯卷积神经网络,并在多个视觉任务上进行了评估,取得了与转换器相当的准确性和可扩展性,同时保持了标准卷积神经网络的简单和高效性。
ConvNeXt从宏观和微观两个层面对卷积神经网络和层级Transformer进行了比较和分析。作者逐步将标准ResNet模型“现代化”,并发现了一些关键组件,如ResNeXt、反向瓶颈、大卷积核等,这些组件有助于提高性能。此外,在微观层面上,作者还研究了激活函数和归一化层等方面的不同设计选择,例如将BatchNorm替换为LayerNorm。最终,作者提出了一系列纯卷积神经网络模型,具体的尝试如下图所示,即Transformer或者Swin-Transformer怎么做,我也对应的调整:
ConvNeXt V2
ConvNeXt V2是基于现代ConvNets并添加了自监督学习技术的结果。ConvNeXt V2在ConvNeXt的基础上增加了两个新的组件:全卷积掩码自编码器(fully convolutional masked autoencoder, FCMAE)和全局响应归一化(global response normalization, GRN)。这种自监督学习技术和架构改进的协同设计共同创造了一个新的模型系列ConvNeXt V2,它在包括ImageNet分类、COCO检测和ADE20K分割在内的各种识别基准测试中显着提高了纯ConvNets的性能。
同时,还提供了各种大小的预训练ConvNeXt V2模型,范围从高效的3.7M参数Atto模型到650M的Huge模型。
前面提到,ConvNeXt v2主要有两个创新点:一是提出了一种全卷积掩码自编码器(FCMAE)框架,二是提出了一种全局响应归一化(GRN)层。下面让我们分别来简单地看看它们的原理和效果。
全卷积掩码自编码器(FCMAE)
全卷积掩码自编码器(FCMAE)框架是一种基于卷积神经网络的自监督学习方法,它的思想是在输入图像上随机掩盖一些区域,然后让模型尝试恢复被掩盖的部分。这样可以迫使模型学习到图像的全局和局部特征,从而提高其泛化能力。FCMAE框架与传统的掩码自编码器(MAE)框架相比,有两个优势:一是它使用了全卷积结构,而不是使用全连接层来生成掩码和重建图像,这样可以减少参数量和计算量,同时保持空间信息;二是它使用了多尺度掩码策略,而不是使用固定大小的掩码,这样可以增加模型对不同尺度特征的感知能力。
全局响应归一化(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.”
实验结果
在实验中,使用FCMAE框架和GRN层的ConvNeXt V2模型在不同的任务上表现出了显著的性能提升,包括ImageNet分类、COCO检测和ADE20K分割。此外,使用自监督学习的方法,使用Mask R-CNN进行COCO检测,并在COCO val2017集上进行检测和分割,表现出了较好的效果。此外,使用Mask R-CNN进行对COCO数据进行训练,在COCO val2017集上进行检测和分割,表现出了较好的效果。此外,使用Mask R-CNN进行对COCO数据进行训练,在COCO val2017集上进行检测和分割,表现出了较好的效果。
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.
检测和分割任务上的结果:
未来工作
在这篇论文的未来工作中,作者提出了一些可以继续深入的研究方向。首先,作者表示可以进一步探索GRN层的设计和调整,以便更好地适应特定的数据集和模型。其次,作者建议研究如何将FCMAE框架应用于其他任务,例如视频分类或人脸识别。此外,作者认为可以将FCMAE与其他形式的自监督学习技术进行比较,以找出最佳的组合方式。最后,作者建议将FCMAE应用于更大的模型和更具挑战性的数据集,以进一步验证其有效性。
MMpretrain
MMpretrain是OpenMMLab团队推出的一个用于训练预训练模型的工具包。它提供了多种常用的预训练模型,包括分类、检测、分割等常见任务的预训练模型,并且支持在自定义数据集上进行预训练。MMpretrain还提供了数据增强、学习率调整、权重衰减等训练过程中常用的技巧和方法,方便用户进行模型训练和调试。使用MMpretrain可以方便地进行预训练模型的训练和迁移学习,是一个非常实用的工具.
本次介绍的ConvNeXt v2将自监督学习技术和架构改进相结合,显著提高了纯ConvNets在各种识别基准上的性能,包括ImageNet分类、COCO检测和ADE20K分割。OpenMMLab的MMpretrain提供了预训练的ConvNeXt v2模型,可以在这里找到更多信息:链接。我们可以使用MMpretrain来训练自己的模型或使用预训练模型进行微调。
本文参与了SegmentFault 思否写作挑战赛,欢迎正在阅读的你也加入。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net