【SLAM】ConvNeXt论文精读

本文精读ConvNeXt论文,阐述其如何通过系统性‘现代化’ResNet(对齐训练配方、调整stage配比、引入Patchify Stem、Depthwise卷积、倒残差结构、7×7大核、LayerNorm等),构建出高性能纯卷积视觉骨干。在ImageNet-1K达87.8%,COCO与ADE20K上媲美甚至超越Swin Transformer,验证了卷积在现代视觉任务中的竞争力。核心贡献在于设计归因方法论与模块化卷积架构创新。

一句话定位
从 ResNet 出发,一步步抄作业式「现代化」成接近 Swin 的设计(但不加注意力),得到纯卷积骨干 ConvNeXt:ImageNet 可到 87.8%,COCO / ADE20K 上与 Swin 持平或更好,实现更简单。

本页概念卡

  • 骨干:ConvNeXt · 对照 Swin · ViT
  • 模块:Patchify Stem · Depthwise Conv · 倒残差 · 大核 DW

1. 背景概念(给新人)

站在 计算机视觉骨干网络(backbone) 线上:给分类 / 检测 / 分割抽特征。刚读过的 Swin 是「分层 Transformer」;本文问:同样这些设计习惯,换成纯卷积行不行?

术语白话
ConvNet / CNN用卷积滑窗提特征;天生有平移等变性,高分辨率时算力共享
ViT图切 patch 当词,全局注意力;分类强,密集任务贵
Swin窗口注意力 + 移位 + 金字塔,通用检测/分割骨干
Inductive bias(归纳偏置)模型「先验假设」;卷积假设局部、平移等变
Backbone特征提取器;后面再接检测头、分割头
FLOPs / throughput理论算量 vs 真机每秒能跑几张图

当时流行说法:Swin 等涨点,多半因为 Transformer「更强」。作者反驳:很多差距可能来自训练更久更花,以及 stage 配比、stem、Norm、激活等细节——这些都可以搬进 CNN。

2. 论文在干什么

  • 问题:纯 ConvNet 在 2020s 是否还能当通用视觉骨干,并与分层 Transformer 公平竞争?
  • 设定:
    • 分类:ImageNet-1K / 22K→1K
    • 检测:COCO + Mask / Cascade Mask R-CNN
    • 分割:ADE20K + UperNet
  • 做法:固定现代训练配方,把 ResNet 逐步改成像 Swin,每步看精度变化,最后定型为 ConvNeXt 族(T/S/B/L/XL)

3. 核心创新点

  1. 「现代化路线图」方法论
    不是一次性拍脑袋新网络,而是 ResNet →(训练)→ macro → ResNeXt 化 → 倒残差 → 大核 → micro,逐步归因谁在涨点。

  2. 纯标准卷积模块组成的骨干
    无移位窗注意力、无相对位置偏置;全卷积,换分辨率微调更省事。

  3. 空间/通道分离的块设计
    DW(空间)+ 1×11\times11×1(通道)对齐 Transformer「MSA → MLP」分工;默认 7×77\times77×7 DW。

  4. 规模与下游任务证明
    大模型 + ImageNet-22K 下 CNN 不输「少归纳偏置」叙事;检测/分割可对标或超过 Swin。

4.1 训练配方先对齐(很大一截差距)

把 ResNet-50 用接近 DeiT/Swin 的配方(300 epoch、AdamW、Mixup/CutMix/RandAugment、Stochastic Depth、Label Smoothing 等)从约 76.1% → 78.8%(+2.7)。说明:很多「Transformer 赢了」其实是训练赢了。

4.2 Macro:stage 配比 + Patchify Stem

  • 块数从 ResNet-50 的 (3,4,6,3)(3,4,6,3)(3,4,6,3) 改为贴近 Swin-T 的 (3,3,9,3)(3,3,9,3)(3,3,9,3) → 79.4%
  • Stem:7×77\times77×7+MaxPool → 4×44\times44×4 stride 4 非重叠卷积 → 79.5%

4.3 ResNeXt 化:深度卷积 + 加宽

  • 3×33\times33×3 换成 depthwise,通道拉到与 Swin-T 同宽(64→96)→ 80.5%(FLOPs 略升)
  • 直觉:DW 只混空间,1×11\times11×1 只混通道,像注意力与 MLP 的分工

4.4 倒残差

  • 中间扩到约 4×4\times4× 宽(对齐 Transformer MLP)→ 80.6%,且整体 FLOPs 常下降(下采样捷径上的 1×11\times11×1 更省)

4.5 大核:先挪 DW 位置,再加大核

  • 把 DW 移到块前部(像注意力在 MLP 前)→ 暂降到 79.9%
  • 核 3→73\to73→7 → 80.6%;9/11 基本饱和 → 锁定 7×77\times77×7

4.6 Micro:更像 Transformer 的层习惯

改动效果(ResNet-50 算力档,文中叙述)
ReLU → GELU持平 ~80.6%
每块只留 一个 GELU(两 1×11\times11×1 之间)→ 81.3%(几乎追平 Swin-T)
更少 Norm + BN→LayerNorm→ 81.5%
独立下采样层 + 分辨率变化处加 LN→ 82.0%(超过 Swin-T 的 81.3%)

最终块结构(对照 Fig.4):DW $7\times7$ → LN → $1\times1$ 扩维 → GELU → $1\times1$ 压维(+ 残差;实现里常含 Layer Scale)。

4.7 规格族

变体通道 CCC每 stage 块数 BBB
T96,192,384,7683,3,9,3
S同上3,3,27,3
B128,256,512,10243,3,27,3
L192,384,768,15363,3,27,3
XL256,512,1024,20483,3,27,3

另有 isotropic(无金字塔)变体,与 ViT-S/B/L 同维对照,精度基本打平。

5. 整体框架(Mermaid)

RGB 图像

Patchify Stem 4x4 s4

Stage1 分辨率 H/4

Stage2 H/8

Stage3 H/16

Stage4 H/32

分类 / 检测 / 分割头

输入特征

7x7 Depthwise

LayerNorm

1x1 扩到 4C

GELU

1x1 压回 C

残差相加

输出

上路:现代化路线(ResNet→ConvNeXt)每步改的是「像 Swin 的哪一项」;下图:单个 ConvNeXt block。

6.1 ImageNet 分类(Table 1 要点)

设置结果直觉
IN-1K,ConvNeXt-T vs Swin-T82.1% vs 81.3%;吞吐略高(V100)
IN-1K,ConvNeXt-B@38485.1% vs Swin-B 84.5%,吞吐更高
IN-22K→1K,ConvNeXt-XL@38487.8% top-1
大分辨率全卷积,微调不必改 patch / 插值位置偏置

6.2 COCO(Table 3)

  • Cascade Mask R-CNN:小模型与 Swin 持平(如 T 的 box AP 50.4)
  • IN-22K 大模型拉开:如 ConvNeXt-B‡ box AP 54.0 vs Swin-B‡ 53.0;XL‡ 到 55.2

6.3 ADE20K(Table 4,UperNet,多尺度 mIoU)

骨干mIoU
ConvNeXt-T vs Swin-T46.7 vs 45.8
ConvNeXt-B‡ vs Swin-B‡53.1 vs 51.7
ConvNeXt-L‡ / XL‡53.7 / 54.0(Swin-L‡ 53.5)

6.4 局限与诚实边界

  • DW 在同等 FLOPs 下访存可能不如稠密卷积「理论好看」;文中用实测吞吐说明仍可对标 Swin
  • 设计灵感大量来自 Transformer / 既有 CNN 模块——新在组合与归因实验,不是发明某种全新算子
  • 与带 SE / NAS 的 EfficientNetV2 等对比时,小数据上后者仍可能更强;大数据预训练后 ConvNeXt 叙事更有力

7. 要点总结

  • ConvNeXt =「用卷积复刻分层 Transformer 的设计习惯」
  • 先对齐训练,再改结构;很多差距不是「注意力魔法」
  • 块公式:大核 DW(空间)+ 倒残差 1×11\times11×1(通道)+ LN + 少激活
  • 分类/检测/分割全能当 backbone;实现比 Swin 简单
  • 和 Swin 精读对照看,一对「2020s 骨干」双璧

8. 开放问题

  • 实验环境部署时 ConvNeXt-T vs Swin-T 在目标 GPU 上的真实延迟(文中 V100/A100)
  • CLIP / DINOv3 / Drive-WM 用的具体是哪一档 ConvNeXt、是否冻结
  • 相对后续 RepLKNet 等「更大核」工作,7×77\times77×7 是否仍够用

相关

  • https://github.com/facebookresearch/ConvNeXt
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值