一句话定位
从 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. 核心创新点
-
「现代化路线图」方法论
不是一次性拍脑袋新网络,而是 ResNet →(训练)→ macro → ResNeXt 化 → 倒残差 → 大核 → micro,逐步归因谁在涨点。 -
纯标准卷积模块组成的骨干
无移位窗注意力、无相对位置偏置;全卷积,换分辨率微调更省事。 -
空间/通道分离的块设计
DW(空间)+ 1×11\times11×1(通道)对齐 Transformer「MSA → MLP」分工;默认 7×77\times77×7 DW。 -
规模与下游任务证明
大模型 + 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 |
|---|---|---|
| T | 96,192,384,768 | 3,3,9,3 |
| S | 同上 | 3,3,27,3 |
| B | 128,256,512,1024 | 3,3,27,3 |
| L | 192,384,768,1536 | 3,3,27,3 |
| XL | 256,512,1024,2048 | 3,3,27,3 |
另有 isotropic(无金字塔)变体,与 ViT-S/B/L 同维对照,精度基本打平。
5. 整体框架(Mermaid)
上路:现代化路线(ResNet→ConvNeXt)每步改的是「像 Swin 的哪一项」;下图:单个 ConvNeXt block。
6.1 ImageNet 分类(Table 1 要点)
| 设置 | 结果直觉 |
|---|---|
| IN-1K,ConvNeXt-T vs Swin-T | 82.1% vs 81.3%;吞吐略高(V100) |
| IN-1K,ConvNeXt-B@384 | 85.1% vs Swin-B 84.5%,吞吐更高 |
| IN-22K→1K,ConvNeXt-XL@384 | 87.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-T | 46.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
本文精读ConvNeXt论文,阐述其如何通过系统性‘现代化’ResNet(对齐训练配方、调整stage配比、引入Patchify Stem、Depthwise卷积、倒残差结构、7×7大核、LayerNorm等),构建出高性能纯卷积视觉骨干。在ImageNet-1K达87.8%,COCO与ADE20K上媲美甚至超越Swin Transformer,验证了卷积在现代视觉任务中的竞争力。核心贡献在于设计归因方法论与模块化卷积架构创新。
238

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



