本文首发于极市平台,作者科技猛兽,转载请获得授权并标明出处。
本文目录
7 匹敌 Transformer 的2020年代的卷积网络
(来自 FAIR,UCB)
7.1 ConvNeXt 原理分析
7.2 ConvNeXt 代码解读
7 匹敌 Transformer 的2020年代的卷积网络
论文名称:A ConvNet for the 2020s
论文地址:
https://arxiv.org/pdf/2201.03545.pdf
7.1 ConvNeXt 原理分析
7.1.1 Motivation
回顾2010年代,这十年来以深度学习取得了巨大的进步和影响力。主要的驱动力是神经网络的复兴,尤其是卷积神经网络 (ConvNets)。在过去的十年里,视觉识别领域成功地从设计特征提取器转移到设计神经网络架构。尽管反向传播的发明可以追溯到20世纪80年代,但直到2012年末,我们才看到它真正的潜力。 AlexNet 的发明诞生了 “ImageNet moment”,开启了计算机视觉的新时代。 此后,该领域发展迅速。像 VGGNet,Inceptions,ResNe(X)t,DenseNet,MobileNet,EfficientNet 和 RegNet 这样的代表性 ConvNets 侧重于精度、效率和可扩展性的不同方面,并推广了许多有用的设计原则 (design principles)。ConvNets 本身是计算高效的,因为它以滑动窗口的方式 (sliding-window manner) 进行计算,使得计算是共享的。ConvNets 的默认应用场景包括数字识别,人脸识别,行人识别等等。
与此同时, 自然语言处理 (NLP) 的神经网络设计走了一条非常不同的道路,因为 Transformer 模型取代了 RNN,成为主导的主干架构。
来到2020年代,尽管语言和视觉领域之间的任务存在差异,但这两个领域的主干架构却出人意料地融合在一起,改变了网络设计的面貌。在这些视觉识别模型中,Vision Transformer 是研究热点,在识别任务上首次超过了卷积模型。除了一开始的图片分块操作,原始的 ViT 结构没有引入任何归纳偏置。虽然图像识别任务的这些结果十分令人鼓舞,但是计算机视觉不限于图像分类。原始的 ViT 结构在检测,分割等等通用性视觉任务上收到输入图片分辨率导致的计算复杂度限制,最大的挑战是 ViT 的全局注意力设计 (global attention design),它相对于输入图片的大小 N N N 具有二次复杂度 O ( N 2 ) O(N^2) O(N2) 。这对于 ImageNet 分类任务来讲可能是可以接受的,但是对于更高分辨率的输入来说会很快变得难以处理。
金字塔结构 (Hierarchical Transformers) 这种卷积模型先验 (如 Swin-T, PVT 等) 的引入解决了这一问题,使得 ViT 可以被用做其他视觉任务的骨干网络。Swin Transformer 使得 “滑动窗口” 策略被重新引入 Transformer 模型,使它们的行为更类似于卷积模型。Swin 的成功也揭示了卷积的本质并没有变得无关紧要。相反,它仍然备受期待,从未褪色。然而,这种混合方法的有效性仍然很大程度上归功于 ViT 模型的内在优势,而不是卷积固有的归纳偏置 (inductive bias)。
ConvNets 和 Hierarchical Transformers 都具备相似的归纳偏置,但在训练过程和宏/微观层次的架构设计 (macro/micro-level architecture design) 上有显著的差异。在这项工作中,作者重新检查和审视了卷积模型的设计空间,这项研究旨在弥合 pre-ViT 时代和 post-ViT 时代模型性能上的差距,并想要探索出一个纯的卷积网络所能够达到的性能极限。
为了做到这一点,作者从一个标准的 ResNet (ResNet-50) 开始,用改进的方法进行训练,逐渐将架构 “现代化 (modernize)”。这个研究想回答的问题是: ViT 模型中的设计决策会如何影响 ConvNets 的性能?
作者现了导致性能差异的几个关键因素。因此,提出了一个名为 ConvNeXt 的系列纯卷积模型。作者在各种视觉任务上评估 ConvNeXts,例如 ImageNet 图像识别,COCO 上的物体检测/分割,ADE20K 上的语义分割。作者希望这些新的观察和讨论可以鼓励人们重新思考卷积在计算机视觉中的重要性。
7.1.2 2020年代的卷积网络
在本文中,作者提出了一个从 ResNet 到与 Transformer 类似的 ConvNet 的 trajectory。作者根据计算了提出了两种不同的大小范式:FLOPs 约为 4.5×e9 的 ResNet-50 / Swin-T 和 FLOPs 约为 15.0×e9 的 ResNet-200 / Swin-B。从 ResNet-50 开始,以下所有的模型都在 ImageNet-1k 上进行训练和验证。

7.1.3 训练策略
除了网络架构的设计,训练过程也会影响最终的性能。Vision Transformer 不仅仅带来了一套新的模块和架构设计策略,也引入了不同的训练技术 (例如 AdamW 优化器)。 这主要与优化策略和相关的超参数设置有关。因此,作者探索的第一步是用 Vision Transformer 的训练策略训练一个 ResNet50/200 基线模型。 在研究中,作者使用了一个接近 DeiT 和 Swin Transformer 的训练方法,训练轮数从90 epochs 提升到了 300 epochs。使用了AdamW 优化器,数据增强技术包括 Mixup, Cutmix, RandAugment, Random Erasing。正则化方案包括 Stochastic Depth 和 Label Smoothing,如下图2所示。

这种增强的训练方案将 ResNet-50 模型的性能从76.1% 提高到了78.8% (+2.7%),这意味着传统 ConvNets 和Vision Transformer 之间的性能差异的很大一部分可能是由于训练策略的不同所造成的。
7.1.4 宏观设计
Swin Transformer 遵循 ConvNet 使用多阶段设计,其中每个阶段都有不同的特征分辨率。作者借鉴了Swin-T的两个设计:
- 每阶段的计算量 (the stage compute ratio)
- 对输入图片下采样方法 (the “stem cell” structure)
小的 Swin Transformer 不同 stage 的层数之比是1:1:3:1,大的 Swin Transformer 不同 stage 的层数之比是1:1:9:1。根据这个设计,作者将每个阶段的块数从 ResNet-50 中的 (3,4,6,3) 调整为 (3,3,9,3) ,这也将 FLOPs 与Swin-T 对齐。这将模型精度从78.8%提高到79.4%。
第2点,作者不再使用 k = 7 , s = 2 k=7, s=2 k=7,s=2 的卷积加上 MaxPooling 进行下采样了,而是像 Swin-T 模型那样把图片分成4×4 的 Patches (具体是通过 k = 4 , s = 4 k=4, s=4 k=4,s=4 的一层卷积对输入图片进行下采样),这一步称为 “Changing stem to Patchify”。这样每次卷积操作的感受野不重叠,准确率由79.4%提升至79.5%。
7.1.5

最低0.47元/天 解锁文章
3637

被折叠的 条评论
为什么被折叠?



