[PaperReading]ConvNeXt

A ConvNet for the 2020s

CVPR 2022,纯卷积模型

Motivate

在现在的视觉识别模型中,Vision Transfomer是研究重点,在识别任务上首次超过了卷积模型。除了一开始的图片分块操作,原始的 ViT 结构没有引入任何归纳偏置。虽然图像识别任务的结果令人鼓舞,但是原始的ViT结构在检测、分割等等通用性视觉任务上受到输入图片分辨率导致的计算复杂度限制,最大的挑战是 ViT 的全局注意力设计 (global attention design),它相对于输入图片的大小N具有二次复杂度O(N2)。这对于 ImageNet 分类任务来讲可能是可以接受的,但是对于更高分辨率的输入来说会很快变得难以处理。

金字塔结构 (Hierarchical Transformers) 这种卷积模型先验 (如 Swin-T, PVT 等) 的引入解决了这一问题,使得 ViT 可以被用做其他视觉任务的骨干网络。

训练策略

除了网络架构的设计,训练过程也会影响最终的性能。
作者探索的第一步是用 Vision Transformer 的训练策略训练一个 ResNet50/200 基线模型。作者使用了一个接近 DeiT 和 Swin Transformer 的训练方法,训练轮数从90 epochs 提升到了 300 epochs。使用了AdamW 优化器,数据增强技术包括 Mixup, Cutmix, RandAugment, Random Erasing。正则化方案包括 Stochastic Depth 和 Label Smoothing

宏观设计

Swin Transformer 遵循 ConvNet 使用多阶段设计,其中每个阶段都有不同的特征分辨率。作者借鉴了Swin-T的两个设计:

  1. 每阶段的计算量 (the stage compute ratio)
  2. 对输入图片下采样方法 (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 的卷积加上 MaxPooling 进行下采样了,而是像 Swin-T 模型那样把图片分成4×4 的 Patches (具体是通过k=4,s=4 的一层卷积对输入图片进行下采样),这一步称为 “Changing stem to Patchify”。这样每次卷积操作的感受野不重叠,准确率由79.4%提升至79.5%。

微观设计

  • 将 ReLU 替换为 GELU
  • 更少的激活函数和归一化层 (仅在1×1卷积之间使用激活函数,仅在7×7卷积和1×1卷积之间使用归一化层)
  • BN 替换为 LN
  • 将下采样层单独分离出来:将下采样层单独分离出来,单独使用2×2卷积层进行下采样。为保证收敛,在下采样后加上 Layer Norm 归一化。

结构差别

总体结构

网络总体结构

你可能感兴趣的:(论文阅读,计算机视觉,目标检测,图像处理,神经网络,深度学习)