{"notes":[{"id":"classic-cnns/convnext-v2","category":"classic-cnns","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"ConvNeXt V2","subtitle":"卷积也会填空","author":"Z. Yuan","paperDate":"2023-01-02","publishedOn":"2025-09-27","world":"external/convnext-v2","paperTitle":"ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders","paperUrl":"https://arxiv.org/abs/2301.00808","bibliography":{"title":"ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders","authors":["Sanghyun Woo","Shoubhik Debnath","Ronghang Hu","Xinlei Chen","Zhuang Liu","In So Kweon","Saining Xie"],"url":"https://arxiv.org/abs/2301.00808","pdfUrl":"https://arxiv.org/pdf/2301.00808v1","codeUrl":null,"preprint":{"id":"2301.00808","submittedOn":"2023-01-02","url":"https://arxiv.org/abs/2301.00808"},"publication":{"venue":"CVPR","year":2023,"kind":"conference","url":"https://openaccess.thecvf.com/content/CVPR2023/html/Woo_ConvNeXt_V2_Co-Designing_and_Scaling_ConvNets_With_Masked_Autoencoders_CVPR_2023_paper.html"},"citation":"@misc{classiccnnsconvnextv22023,\n  title = {{ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders}},\n  author = {Sanghyun Woo and Shoubhik Debnath and Ronghang Hu and Xinlei Chen and Zhuang Liu and In So Kweon and Saining Xie},\n  year = {2023},\n  eprint = {2301.00808},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2301.00808}\n}\n","citationPath":"/content/papers/citations/classic-cnns/convnext-v2.065fc6e2e545.bib"},"thumbnail":{"src":"/content/papers/assets/0af11b7bcef637ee0205fe47b31901b1b775a0336ccab0042e73e8d9643589c0.png","width":1640,"height":600},"locale":"zh-hans","path":"/content/papers/zh-hans/classic-cnns/convnext-v2.e960e9de238c.md","headings":[{"id":"定义问题","text":"定义问题","depth":2},{"id":"mae-为什么不好套","text":"MAE 为什么不好套","depth":3},{"id":"解决问题","text":"解决问题","depth":2},{"id":"fcmae全卷积的-mae","text":"FCMAE：全卷积的 MAE","depth":3},{"id":"只换预训练不够","text":"只换预训练，不够","depth":3},{"id":"特征坍塌","text":"特征坍塌","depth":3},{"id":"grn让通道互相竞争","text":"GRN：让通道互相竞争","depth":3},{"id":"convnext-v2-块","text":"ConvNeXt V2 块","depth":3},{"id":"讨论","text":"讨论","depth":2},{"id":"架构和预训练要一起改","text":"架构和预训练要一起改","depth":3},{"id":"和-transformer-的-mae-比","text":"和 Transformer 的 MAE 比","depth":3},{"id":"检测与分割","text":"检测与分割","depth":3},{"id":"结论","text":"结论","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"classic-cnns/convnext","relation":"referenced","topic":""},{"id":"vision-transformers/mae","relation":"referenced","topic":""}]},{"id":"classic-cnns/convnext","category":"classic-cnns","legacyPath":"classic-cnns/2201-convnext","legacySlug":"2201-convnext","legacyPaths":[],"title":"ConvNeXt","subtitle":"让卷积再次伟大","author":"Z. Yuan","paperDate":"2022-01-10","publishedOn":"2024-06-30","paperTitle":"A ConvNet for the 2020s","paperUrl":"https://arxiv.org/abs/2201.03545","bibliography":{"title":"A ConvNet for the 2020s","authors":["Zhuang Liu","Hanzi Mao","Chao-Yuan Wu","Christoph Feichtenhofer","Trevor Darrell","Saining Xie"],"url":"https://arxiv.org/abs/2201.03545","pdfUrl":"https://arxiv.org/pdf/2201.03545","codeUrl":"https://github.com/facebookresearch/ConvNeXt","preprint":{"id":"2201.03545","submittedOn":"2022-01-10","url":"https://arxiv.org/abs/2201.03545"},"publication":{"venue":"CVPR","year":2022,"kind":"conference","url":"https://arxiv.org/abs/2201.03545"},"citation":"@misc{classiccnnsconvnext2022,\n  title = {{A ConvNet for the 2020s}},\n  author = {Zhuang Liu and Hanzi Mao and Chao-Yuan Wu and Christoph Feichtenhofer and Trevor Darrell and Saining Xie},\n  year = {2022},\n  eprint = {2201.03545},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2201.03545}\n}\n","citationPath":"/content/papers/citations/classic-cnns/convnext.801b4060b807.bib"},"thumbnail":{"src":"/content/papers/assets/37882616c5c72df33699003256d14bf7c58c8ea5d1e9e4fb5b1c33268c9a6923.jpg","width":1224,"height":432},"locale":"zh-hans","path":"/content/papers/zh-hans/classic-cnns/convnext.db5ced84300e.md","headings":[{"id":"定义问题","text":"定义问题","depth":2},{"id":"解决问题","text":"解决问题","depth":2},{"id":"重新设计网络架构","text":"重新设计网络架构","depth":3},{"id":"引入现代训练技术","text":"引入现代训练技术","depth":3},{"id":"宏观设计","text":"宏观设计","depth":3},{"id":"resnext-ify","text":"ResNeXt-ify","depth":3},{"id":"inverted-bottleneck","text":"Inverted Bottleneck","depth":3},{"id":"大核卷积","text":"大核卷积","depth":3},{"id":"微观设计","text":"微观设计","depth":3},{"id":"讨论","text":"讨论","depth":2},{"id":"总结模型配置","text":"总结模型配置","depth":3},{"id":"imagenet-上的性能","text":"ImageNet 上的性能","depth":3},{"id":"结论","text":"结论","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"vision-transformers/convmixer","relation":"comparison","topic":"用卷积混合图像分块"},{"id":"vision-transformers/caformer","relation":"comparison","topic":"用卷积混合图像分块"},{"id":"reparameterization/replknet","relation":"comparison","topic":"大卷积核与简化骨架"}]},{"id":"vision-transformers/mae","category":"vision-transformers","legacyPath":"vision-transformers/2111-mae","legacySlug":"2111-mae","legacyPaths":[],"title":"MAE","subtitle":"四分之一的线索","author":"Z. Yuan","paperDate":"2021-11-11","publishedOn":"2024-08-27","paperTitle":"Masked Autoencoders Are Scalable Vision Learners","paperUrl":"https://arxiv.org/abs/2111.06377","bibliography":{"title":"Masked Autoencoders Are Scalable Vision Learners","authors":["Kaiming He","Xinlei Chen","Saining Xie","Yanghao Li","Piotr Dollár","Ross Girshick"],"url":"https://arxiv.org/abs/2111.06377","pdfUrl":"https://arxiv.org/pdf/2111.06377","codeUrl":"https://github.com/facebookresearch/mae","preprint":{"id":"2111.06377","submittedOn":"2021-11-11","url":"https://arxiv.org/abs/2111.06377"},"publication":{"venue":"CVPR","year":2022,"kind":"conference","url":"https://openaccess.thecvf.com/content/CVPR2022/html/He_Masked_Autoencoders_Are_Scalable_Vision_Learners_CVPR_2022_paper.html"},"citation":"@misc{visiontransformersmae2021,\n  title = {{Masked Autoencoders Are Scalable Vision Learners}},\n  author = {Kaiming He and Xinlei Chen and Saining Xie and Yanghao Li and Piotr Dollár and Ross Girshick},\n  year = {2021},\n  eprint = {2111.06377},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2111.06377}\n}\n","citationPath":"/content/papers/citations/vision-transformers/mae.762f979b1c32.bib"},"thumbnail":{"src":"/content/papers/assets/f6a24c00fab9f102a2680899072c0e9de2ff2ae0cd7197666455a34c566f6542.jpg","width":1224,"height":716},"locale":"zh-hans","path":"/content/papers/zh-hans/vision-transformers/mae.995ce0b51abc.md","headings":[{"id":"定义问题","text":"定义问题","depth":2},{"id":"解决问题","text":"解决问题","depth":2},{"id":"模型架构","text":"模型架构","depth":3},{"id":"训练方式","text":"训练方式","depth":3},{"id":"讨论","text":"讨论","depth":2},{"id":"要遮盖多少才好","text":"要遮盖多少才好？","depth":3},{"id":"decoder-参数","text":"Decoder 参数","depth":3},{"id":"学习目标","text":"学习目标","depth":3},{"id":"图像增强","text":"图像增强","depth":3},{"id":"掩码方式","text":"掩码方式","depth":3},{"id":"在-imagenet-上的效果","text":"在 ImageNet 上的效果","depth":3},{"id":"结论","text":"结论","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"vision-transformers/beit","relation":"comparison","topic":"重建像素还是视觉 Token"},{"id":"image-generation/mar","relation":"comparison","topic":"重建像素还是视觉 Token"}]}],"text":"ConvNeXt 证明了纯卷积网络在监督式学习下可以和 Swin Transformer 打平。差不多同一时间，视觉的自监督学习被 MAE 带起一波热潮，把图像遮掉一大半，让模型去把它补回来，ViT 用这种方式预训练，微调后的成绩明显比监督式训练好。\n\n\n> [!TIP]\n> \n> 这两篇可以先看我们的笔记：\n> \n> - **[[22.01] ConvNeXt：让卷积再次伟大](/blog/papers/classic-cnns/convnext)**\n> - **[[21.11] MAE：四分之一的线索](/blog/papers/vision-transformers/mae)**\n\n\n把两者接起来，看起来是很自然的下一步。这篇的作者团队里，Zhuang Liu 是 ConvNeXt 的第一作者，Saining Xie 同时是 ConvNeXt 和 MAE 的作者，Xinlei Chen 也是 MAE 的作者；第一作者是 KAIST 的 Sanghyun Woo，这篇是他在 FAIR 实习时的工作，他和同样署名的 In So Kweon 也都是 CBAM 的作者。\n\n他们发现直接把 MAE 套在 ConvNeXt 上，效果并不好。\n\n## 定义问题\n\n### MAE 为什么不好套\n\nMAE 的编码器和解码器是不对称的。图像切成 patch 之后遮掉 75%，ViT 编码器只吃剩下那 25% 的 patch，被遮住的部分根本不会进到编码器里，所以预训练又快又省。这个设计靠的是 Transformer 处理序列的能力，少几个 token 照样能算。\n\n卷积网络就没这么方便了。卷积在一张完整的 2D 特征图上滑动，要保留图像的空间结构，没办法直接把被遮住的区块拿掉。常见的权宜做法是在输入端塞可学习的 mask token，可是这样预训练省不了计算；推理时又没有 mask token，训练和测试不一致，掩码比例越高问题越大。\n\n就算把这些工程问题解决了，作者还观察到第二个问题，ConvNeXt 在掩码预训练下学到的特征本身就有毛病。这个等一下再说。\n\n## 解决问题\n\n### FCMAE：全卷积的 MAE\n\n[![流程示意图，从左到右四个部分。最左边是一张 224×224 的输入，画成 7×7 个方格，红色是看得见的区块，灰色是被遮住的区块，约六成是灰色。箭头接到 ConvNeXt 编码器，方框里写着稀疏卷积、只计算看得见的区块，在 TPU 上改用一般卷积加二值掩码。再接到解码器，方框里写着一个 ConvNeXt 块、维度 512、加上 mask token。最右边是重建结果，同样是 7×7 方格，只有原本被遮住的那些格子标成浅红色，表示只在这些位置计算 MSE 损失](/content/papers/assets/0af11b7bcef637ee0205fe47b31901b1b775a0336ccab0042e73e8d9643589c0.png)](/content/papers/assets/0af11b7bcef637ee0205fe47b31901b1b775a0336ccab0042e73e8d9643589c0.png)\n\n*图：本文整理。依据原论文第 3 节与官方代码绘制；原论文采用 CC BY-NC-ND 4.0 许可，这里不转载原图。*\n\n作者的解法是把掩码后的图像看成稀疏数据。这个想法来自 3D 点云，点云本来就是稀疏的，处理点云的稀疏卷积只在有数据的位置上计算。被遮掉的图像也一样，看得见的区块就是那些有数据的点。\n\n预训练时，编码器里的卷积换成子流形稀疏卷积，只在看得见的位置计算，输出也只留在那些位置上；微调时再换回一般卷积，权重直接沿用。在 TPU 这类加速器上，作者改用一般卷积，在每次卷积前后各乘一次二值掩码，数值上完全等价，只是计算比较浪费。论文主要的实验都是在 TPU v3 上用这种做法跑的。\n\n用一般卷积会发生什么事，我们用一个 7×7 的 depthwise 卷积叠三层看看：\n\n```python\nimport torch\nimport torch.nn.functional as F\n\ntorch.manual_seed(0)\nkeep = torch.zeros(49)\nkeep[torch.randperm(49)[:19]] = 1                       # 7×7 个区块留 19 个，遮掉六成\nmask = F.interpolate(keep.view(1, 1, 7, 7), size=56)    # 放大到第一阶段的 56×56，每块 8×8\nx = torch.randn(1, 1, 56, 56) * mask                    # 被遮住的地方是 0\nhole = mask == 0\n\nw = torch.randn(1, 1, 7, 7) / 7                         # 一个 7×7 的 depthwise 卷积\ndense, sparse = x, x\nfor layer in range(1, 4):\n    dense = F.conv2d(dense, w, padding=3)\n    sparse = F.conv2d(sparse, w, padding=3) * mask      # 每层算完，把遮住的地方清回 0\n    print(f\"第 {layer} 层：遮住的位置里有值的比例，一般卷积 {(dense[hole] != 0).float().mean():.0%}，\"\n          f\"加上掩码 {(sparse[hole] != 0).float().mean():.0%}\")\n```\n\n```\n第 1 层：遮住的位置里有值的比例，一般卷积 50%，加上掩码 0%\n第 2 层：遮住的位置里有值的比例，一般卷积 84%，加上掩码 0%\n第 3 层：遮住的位置里有值的比例，一般卷积 100%，加上掩码 0%\n```\n\n一般卷积把遮住的区块当成一片值为 0 的像素照算，旁边的值一层层扩散进去，三层之后洞就全被填满了，编码器在被遮住的位置上也算出了特征。加上掩码之后，洞一直是洞，编码器只在看得见的位置上工作，和 MAE 里的 ViT 只吃看得见的 patch 是同一个意思。在 ConvNeXt-B 上，有没有稀疏卷积的差距是 79.3% 对 83.7%。\n\n剩下的部分都很简单。掩码以 32×32 为单位遮掉 60%，在最后一个阶段的 7×7 分辨率上生成，再逐级放大到每个阶段；数据增强只用随机缩放裁剪。解码器只用一个 ConvNeXt 块，维度 512，作者也试过 UNet 和 Transformer 解码器，准确率差不多，一个 ConvNeXt 块的预训练时间最短，7.7 小时对 UNet 的 12.9 小时。损失和 MAE 一样，只在被遮住的区块上算 MSE，目标是每个 patch 各自标准化后的像素。\n\n### 只换预训练，不够\n\nFCMAE 搭好之后，作者用 ConvNeXt-B 预训练 800 个 epoch、微调 100 个 epoch，结果是 83.7%。这比从头监督式训练 100 个 epoch 的 82.7% 好，可是原本 ConvNeXt 论文里监督式训练 300 个 epoch 是 83.8%，自监督预训练绕了一大圈，还是没赢过监督式学习。ViT 用 MAE 预训练可是明显赢过监督式的。\n\n### 特征坍塌\n\n作者把预训练好的 ConvNeXt 每个通道的激活图画出来，发现很多通道不是整片没有反应，就是整片饱和，不同通道之间的激活又很像，作者称之为特征坍塌。这个现象主要出现在每个块里把维度放大 4 倍的那个 MLP 层。\n\n为了量化，作者对每一层的特征计算通道之间的平均 cosine 距离，距离越大代表特征越多样。从 ImageNet 验证集随机取 1,000 张图像比较几个模型：用 FCMAE 预训练的 ConvNeXt 一路往下都很低，坍塌得很明显；监督式的 ConvNeXt 只有最后几层下降，作者推测是交叉熵损失让模型专注在分类需要的特征上；MAE 预训练的 ViT 则一直维持在高位。\n\n### GRN：让通道互相竞争\n\n作者从生物学的侧抑制得到灵感。神经元之间互相抑制，让反应强的更突出，整体的反应也更多样。他们设计了一个新的归一化层，叫做全局响应归一化（Global Response Normalization，GRN），分三步：\n\n1. **全局聚合**。每个通道在整张特征图上算 L2 范数，得到 $\\|X_i\\|$。\n2. **归一化**。每个通道的范数除以所有通道范数的平均，得到相对重要性 $N_i$，大于 1 的通道比一般强，小于 1 的比一般弱。\n3. **校准**。把原本的特征乘上这个相对重要性。\n\n为了好训练，作者再加上可学习的 $\\gamma$、$\\beta$ 和一条残差连接：\n\n$$\nX_i \\leftarrow \\gamma\\, X_i\\, N_i + \\beta + X_i ,\n$$\n\n$\\gamma$ 和 $\\beta$ 初始化为 0，所以 GRN 一开始什么事都不做，训练过程中才慢慢起作用。官方实现就是三行，我们照抄一份，拿五个强弱不同的通道试试看：\n\n```python\nimport torch\n\ndef grn(x, gamma, beta, eps=1e-6):\n    # x: (N, H, W, C)，和官方实现一样把通道放在最后\n    gx = torch.norm(x, p=2, dim=(1, 2), keepdim=True)   # 每个通道在整张特征图上的 L2 范数\n    nx = gx / (gx.mean(dim=-1, keepdim=True) + eps)     # 除以所有通道的平均\n    return gamma * (x * nx) + beta + x\n\ntorch.manual_seed(0)\nstrength = torch.tensor([4.0, 2.0, 1.0, 0.5, 0.1])      # 5 个强弱不同的通道\nx = torch.randn(1, 14, 14, 5) * strength\n\nzero = torch.zeros(5)\nprint(\"γ、β 都是 0 时，输出和输入相同：\", torch.equal(grn(x, zero, zero), x))\n\ny = grn(x, torch.ones(5), zero)                         # 假设训练后 γ = 1\ngx = torch.norm(x, p=2, dim=(1, 2)).flatten()\ngy = torch.norm(y, p=2, dim=(1, 2)).flatten()\nprint(\"相对重要性 N：\", [round(v, 2) for v in (gx / gx.mean()).tolist()])\nprint(\"处理前的范数：\", [round(v, 1) for v in gx.tolist()])\nprint(\"处理后的范数：\", [round(v, 1) for v in gy.tolist()])\nprint(f\"最强和最弱通道的范数比：{gx.max() / gx.min():.0f} 倍 → {gy.max() / gy.min():.0f} 倍\")\n```\n\n```\nγ、β 都是 0 时，输出和输入相同： True\n相对重要性 N： [2.64, 1.3, 0.66, 0.33, 0.07]\n处理前的范数： [57.3, 28.1, 14.4, 7.2, 1.5]\n处理后的范数： [208.6, 64.6, 23.9, 9.6, 1.6]\n最强和最弱通道的范数比：39 倍 → 132 倍\n```\n\n最强的通道被放大到 3.6 倍，最弱的几乎没变，强弱的差距从 39 倍拉开到 132 倍。每个通道被放大多少，取决于它和其他通道比起来强不强，这就是通道之间的竞争。\n\n这三步，作者每一步都换过别的做法比较，结果都是现在这个版本最好：\n\n| 比较项目 | 换成 | ImageNet 微调准确率 |\n| --- | --- | ---: |\n| 全局聚合 | 全局平均池化 | 83.7% |\n| | L1 范数 | 84.3% |\n| | **L2 范数** | **84.6%** |\n| 归一化层 | LRN | 83.2% |\n| | BatchNorm | 80.5% |\n| | LayerNorm | 83.8% |\n| | **GRN** | **84.6%** |\n| 特征加权 | SE（109M 参数） | 84.4% |\n| | CBAM（109M 参数） | 84.5% |\n| | **GRN（89M 参数）** | **84.6%** |\n| GRN 放在哪个阶段 | 只在预训练用，微调时拿掉 | 78.8% |\n| | 只在微调时加上 | 80.6% |\n| | **两个阶段都用** | **84.6%** |\n\n*表：整理自原论文 Table 2，ConvNeXt-B 以 FCMAE 预训练 800 个 epoch 后微调。没有 GRN 的基准是 83.7%。*\n\nSE 和 CBAM 也能做到类似的特征加权，可是要多 20M 参数，GRN 一个参数都不用多（$\\gamma$、$\\beta$ 小到可以忽略）。最后一组也值得注意，GRN 必须在预训练和微调时都在，少了任何一边都掉很多。\n\n### ConvNeXt V2 块\n\nGRN 放在 ConvNeXt 块里维度放大之后，也就是坍塌最严重的那一层。加了 GRN 之后，作者发现 LayerScale 变得多余，就把它拿掉了。\n\n[![左右两栏的块结构图。左栏是 ConvNeXt V1 块，从上到下是 7×7 depthwise 卷积、LayerNorm、把通道从 C 放大到 4C 的 1×1 卷积、GELU、把通道从 4C 缩回 C 的 1×1 卷积、LayerScale，最后和输入相加；LayerScale 画成虚线框，下方注明 V2 已移除。右栏是 ConvNeXt V2 块，顺序相同，但在 GELU 和第二个 1×1 卷积之间多了一个红色的 GRN 方框，没有 LayerScale；下方注明 GRN 对每个通道算全局 L2 范数，再除以所有通道的平均](/content/papers/assets/149efd3dc24d22851f33f2ac0eb44a73e3dd77789df3b9f7e3427f4e09da8489.png)](/content/papers/assets/149efd3dc24d22851f33f2ac0eb44a73e3dd77789df3b9f7e3427f4e09da8489.png)\n\n*图：本文整理。依据原论文第 4 节与官方代码绘制。*\n\n除了这一处，ConvNeXt V2 的架构和 V1 完全相同。作者把它做成八个大小：最小的 Atto 只有 3.7M 参数，接着是 Femto、Pico、Nano、Tiny、Base、Large，最大的 Huge 约 660M，是这篇新加的。\n\n## 讨论\n\n### 架构和预训练要一起改\n\n这篇最核心的结果是这张表：\n\n| 模型 | 监督式 | FCMAE |\n| --- | ---: | ---: |\n| ConvNeXt V1-B | 83.8% | 83.7% |\n| ConvNeXt V2-B | 84.3% | **84.6%** |\n| ConvNeXt V1-L | 84.3% | 84.4% |\n| ConvNeXt V2-L | 84.5% | **85.6%** |\n\n*表：摘自原论文 Table 3，ImageNet-1K 微调准确率；FCMAE 预训练 800 个 epoch。*\n\nV1 换成 FCMAE 预训练，几乎没有进步；V2 用监督式训练，进步也不多，L 只多 0.2。两个一起用，B 多了 0.8，L 多了 1.3。只改架构或只换预训练都不够，作者把这叫做协同设计。\n\n放到八个大小上，结果也一样：\n\n| 大小 | 参数量 | V1 监督式 | V2 监督式 | V2 + FCMAE |\n| --- | ---: | ---: | ---: | ---: |\n| Atto | 3.7M | 75.7% | 76.2% | **76.7%** |\n| Femto | 5.2M | 77.5% | 78.0% | **78.5%** |\n| Pico | 9.1M | 79.5% | 79.7% | **80.3%** |\n| Nano | 15.6M | 80.8% | 81.2% | **81.9%** |\n| Tiny | 28.6M | 82.1% | 82.5% | **83.0%** |\n| Base | 89M | 83.8% | 84.3% | **84.9%** |\n| Large | 198M | 84.3% | 84.5% | **85.8%** |\n| Huge | 660M | — | — | **86.3%** |\n\n*表：摘自原论文 Table 14，224×224 输入；这里的 FCMAE 预训练是 1600 个 epoch。*\n\n每个大小都提升了 0.8 到 1.5 个百分点，Large 提升最多。\n\n不过要说清楚，这些数字比的是微调后的准确率，训练成本不在比较范围内。FCMAE 先预训练 1600 个 epoch，Base 和 Large 再微调 100 个 epoch；Atto 到 Nano 这些小模型，光是微调就要跑 600 个 epoch。\n\n### 和 Transformer 的 MAE 比\n\n只用 ImageNet-1K 预训练，和其他掩码预训练方法比：\n\n| 大小 | ViT + MAE | Swin + SimMIM | ConvNeXt V2 + FCMAE |\n| --- | ---: | ---: | ---: |\n| B | 83.6% | 84.0% | **84.9%** |\n| L | **85.9%** | 85.4% | 85.8% |\n| H | **86.9%** | 85.7%（SwinV2） | 86.3% |\n\n*表：摘自原论文 Table 4。Swin 一列是预训练 800 个 epoch 的结果，其余取各自最好的设置。*\n\n和 Swin + SimMIM 比，ConvNeXt V2 每个大小都赢。和 ViT + MAE 比，L 差不多打平，而 ViT-L 的参数多了五成多（307M 对 198M）；到了 H，ConvNeXt V2 落后 0.6。作者的解释是大型 ViT 从自监督预训练中得到的好处比较多。\n\n再加一步 ImageNet-22K 的监督式中间微调，ConvNeXt V2-H 在 512×512 输入下做到 88.9%，是当时只用公开数据的最佳成绩。V2 的 Base 和 Large 也分别赢过 V1 大一号的 Large 和 XLarge。\n\n附录里还和对比学习比了一下。同样用 ConvNeXt V2-B，MoCo v3 预训练后微调是 83.7%，比监督式的 84.3% 还低；FCMAE 是 84.9%。\n\n### 检测与分割\n\nCOCO 用 Mask R-CNN，从 V1 监督式、V2 监督式到 V2 + FCMAE，box AP 一步步往上，Base 是 50.3、51.0、52.9，Large 是 50.6、51.5、54.4，Huge 做到 55.7。和用 SimMIM 预训练的 Swin 比，每个大小都赢。\n\nADE20K 用 UperNet，V2 + FCMAE 也比 V1 监督式好很多，Base 从 49.9 到 52.1，Large 从 50.5 到 53.7。不过 Swin-B + SimMIM 是 52.8，Base 这一级其实输了 0.7；论文的说法是在 Base 和 Large 上和 Swin「表现相当」，到 Huge 才赢。\n\n## 结论\n\nConvNeXt 学会填空了，条件是架构要跟着改。预训练时用稀疏卷积，让它像 ViT 一样只看那些看得见的区块；块里加上 GRN，让通道彼此竞争，不再塌成一团。两样一起上，掩码预训练才第一次对卷积网络真正有用。\n\nGRN 只有三行，又不多占参数，是这篇最容易带走的东西。FCMAE 就没那么亲民了，论文在 TPU v3-256 上预训练 800 到 1600 个 epoch，换来每个尺寸大约 1 个百分点。\n\n所以比较实际的做法，是直接拿[官方权重](https://github.com/facebookresearch/ConvNeXt-V2)来微调，timm 里从 Atto 到 Huge 都有。\n\n填空题就让 TPU 去写，我们抄答案就好。\n","imageSizes":{"/content/papers/assets/0af11b7bcef637ee0205fe47b31901b1b775a0336ccab0042e73e8d9643589c0.png":{"width":1640,"height":600},"/content/papers/assets/149efd3dc24d22851f33f2ac0eb44a73e3dd77789df3b9f7e3427f4e09da8489.png":{"width":1640,"height":1000}}}
