{"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-hant","path":"/content/papers/zh-hant/classic-cnns/convnext-v2.dbf68ab931f9.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-hant","path":"/content/papers/zh-hant/classic-cnns/convnext.667fd92d121a.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-hant","path":"/content/papers/zh-hant/vision-transformers/mae.2210d97a6b91.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}}}
