ConvNeXt V2来了,仅用最简单的卷积架构,性能不输Transformer
机器之心报道
ConvNeXt 模型更新了!
经过几十年的基础研究,视觉识别领域已经迎来了大规模视觉表征学习的新时代。预训练的大规模视觉模型已经成为特征学习(feature learning)和视觉应用的基本工具。视觉表征学习系统的性能在很大程度上受到三个主要因素的影响:模型的神经网络架构、训练网络的方法以及训练数据。每个因素的改进都有助于模型整体性能的提高。
神经网络架构设计的创新在表征学习领域一直发挥着重要作用。卷积神经网络架构(ConvNet)对计算机视觉研究产生了重大影响,使得各种视觉识别任务中能够使用通用的特征学习方法,无需依赖人工实现的特征工程。近年来,最初为自然语言处理而开发的 transformer 架构因其适用于不同规模的模型和数据集,在其他深度学习领域中也开始被广泛使用。
ConvNeXt 架构的出现使传统的 ConvNet 更加现代化,证明了纯卷积模型也可以适应模型和数据集的规模变化。然而,要想对神经网络架构的设计空间进行探索,最常见方法仍然是在 ImageNet 上进行监督学习的性能基准测试。
另一种思路是将视觉表征学习的重点从有标签的监督学习转向自监督预训练。自监督算法将掩码语言建模引入视觉领域,并迅速成为视觉表征学习的一种流行方法。然而,自监督学习通常会使用为监督学习设计的架构,并假定该架构是固定的。例如,掩码自编码器(MAE)使用了视觉 transformer 架构。
有一种方法是将这些架构和自监督学习框架结合起来,但会面临一些具体问题。例如,将 ConvNeXt 与 MAE 结合起来时就会出现如下问题:MAE 有一个特定的编码 - 解码器设计,该设计针对 transformer 的序列处理能力进行了优化,这使得计算量大的编码器专注于那些可见的 patch,从而降低了预训练成本。但是这种设计可能与标准的 ConvNet 不兼容,因为后者使用了密集的滑动窗口。此外,如果不考虑架构和训练目标之间的关系,那么也就不清楚是否能达到最佳性能。事实上,已有研究表明用基于掩码的自监督学习来训练 ConvNet 是很困难的,而且实验证据表明,transformer 和 ConvNet 可能在特征学习方面存在分歧,会影响到最终表征的质量。
为此,来自 KAIST、Meta、纽约大学的研究者(包括ConvNeXt一作刘壮、ResNeXt 一作谢赛宁)提出在同一框架下共同设计网络架构和掩码自编码器,这样做的目的是使基于掩码的自监督学习能够适用于 ConvNeXt 模型,并获得可与 transformer 媲美的结果。
论文地址:https://arxiv.org/pdf/2301.00808v1.pdf
在设计掩码自编码器时,该研究将带有掩码的输入视为一组稀疏 patch,并使用稀疏卷积处理可见的部分。这个想法的灵感来自于在处理大规模 3D 点云时使用稀疏卷积。具体来说,该研究提出用稀疏卷积实现 ConvNeXt,然后在微调时,权重不需要特殊处理就能被转换回标准的密集网络层。为了进一步提高预训练效率,该研究用单个 ConvNeXt 替换 transformer 解码器,使整个设计完全卷积网络化。研究者观察到加入这些变化后:学习到的特征是有用的并且改进了基线结果,但微调后的性能仍然不如基于 transformer 的模型。
然后,该研究对不同训练配置的 ConvNeXt 的特征空间进行了分析。当直接在掩码输入上训练 ConvNeXt 时,研究者发现 MLP 层存在潜在的特征崩溃(feature collapse)问题。为了解决这个问题,该研究提出添加一个全局响应归一化层(Global Response Normalization layer)来增强通道间的特征竞争。当使用掩码自编码器对模型进行预训练时,这种改进最为有效,这表明监督学习中重复使用监督学习中的固定架构设计可能不是最佳方法。
基于以上改进,该研究提出了 ConvNeXt V2,该模型在与掩码自编码器结合使用时表现出了更好的性能。同时研究者发现 ConvNeXt V2 在各种下游任务上比纯 ConvNet 有明显的性能提升,包括在 ImageNet 上的分类任务、COCO 上的目标检测和 ADE20K 上的语义分割。
方法介绍
全卷积掩码自编码器
该研究提出的方法在概念上很简单,是以完全卷积的方式运行的。学习信号通过对原始的视觉输入随机掩码来生成,同时掩码的比率需要较高,然后再让模型根据剩余的 context 预测缺失的部分。整体框架如下图所示。
框架由一个基于稀疏卷积的 ConvNeXt 编码器和一个轻量级的 ConvNeXt 解码器组成,其中自编码器的结构是不对称的。编码器只处理可见的像素,而解码器则使用已编码的像素和掩码 token 来重建图像。同时只在被掩码的区域计算损失。
全局响应归一化
大脑中有许多促进神经元多样性的机制。例如,侧向抑制可以帮助增强激活神经元的反应,增加单个神经元对刺激的对比度和选择性,同时还可以增加整个神经元群的反应多样性。在深度学习中,这种形式的侧向抑制可以通过响应归一化(response normalization)来实现。该研究引入了一个新的响应归一化层,称为全局响应归一化 (GRN),旨在增加通道间的对比度和选择性。GRN 单元包括三个步骤:1) 全局特征聚合,2) 特征归一化,3) 特征校准。如下图所示,可以将 GRN 层合并到原始 ConvNeXt 块中。
研究者根据实验发现,当应用 GRN 时,LayerScale 不是必要的并且可以被删除。利用这种新的块设计,该研究创建了具有不同效率和容量的多种模型,并将其称为 ConvNeXt V2 模型族,模型范围从轻量级(Atto)到计算密集型(Huge)。
为了评估 GRN 的作用,该研究使用 FCMAE 框架对 ConvNeXt V2 进行预训练。从下图 3 中的可视化展示和图 4 中的余弦距离分析,可以观察到 ConvNeXt V2 有效地缓解了特征崩溃问题。余弦距离值一直很高,表明在网络层传递的过程中可以保持特征的多样性。这类似于使用 MAE 预训练的 ViT 模型。这表明在类似的掩码图像预训练框架下,ConvNeXt V2 的学习行为类似于 ViT。
该研究进一步评估了微调性能,结果如下表所示。
当配备 GRN 时,FCMAE 预训练模型可以显著优于使用 300 个 epoch 训练得到的监督模型。GRN 通过增强特征多样性来提高表征质量,这对于基于掩码的预训练是至关重要的,并且在 ConvNeXt V1 模型中是不存在的。值得注意的是,这种改进是在不增加额外参数开销,且不增加 FLOPS 的情况下实现的。
最后,该研究还检查了 GRN 在预训练和微调中的重要性。如下表 2 (f) 所示,无论是从微调中删除 GRN,还是在微调时添加新初始化的 GRN,性能都会显著下降,这表明在预训练和微调中 GRN 很重要。
感兴趣的读者可以阅读论文原文,了解更多研究细节。
© THE END
转载请联系本公众号获得授权
投稿或寻求报道:[email protected]
微信扫码关注该文公众号作者