【深度學習】超越ConvNeXt!Transformer 風格的卷積網絡視覺基線模型Conv2Former
導讀
本文提出一種卷積調制模塊,利用卷積來建立關系,這比注意力機制在處理高分辨率圖像時更高效,稱為 Conv2Former。作者在 ImageNet 分類、目標檢測和語義分割方面的實驗也表明,Conv2Former 比以前基于 CNN 的模型和大多數(shù)基于 Transformer 的模型表現(xiàn)得更好。
本文目錄
1 Conv2Former:Transformer 風格的卷積網絡視覺基線模型
(來自南開大學,字節(jié)跳動)
1.1 Conv2Former 論文解讀
1.1.1 背景和動機
1.1.2 卷積調制模塊
1.1.3 Conv2Former 整體架構
1.1.4 實驗結果
1 Conv2Former:Transformer 風格的卷積網絡視覺基線模型
論文名稱:Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition
論文地址:https://arxiv.org/pdf/2211.11943.pdf
1.1.1 背景和動機
以 VGGNet、Inception 系列和 ResNet 系列為代表的 2010-2020 年代的卷積神經網絡 (ConvNets) 在多種視覺任務中取得了巨大的進展,它們的共同特點是順序堆疊多個基本模塊 (Basic Building Block),并采用金字塔結構 (pyramid network architecture),但是卻忽略了顯式建模全局上下文信息的重要性。SENet 模塊系列模型突破了傳統(tǒng)的 CNN 設計思路,將注意力機制引入到 CNN 中以捕獲遠程依賴,獲得了更好的性能。
自從 2020 年以來,視覺 Transformer (ViTs) 進一步促進了視覺識別模型的發(fā)展,在 ImageNet 圖像分類和下游任務上表現(xiàn)出比最先進的 ConvNets 更好的結果。這是因為與只進行局部建模的卷積操作相比,Transformer 中的自注意力機制能夠對全局的成對依賴進行建模,提供了一種更有效的空間信息編碼方法。然而,在處理高分辨率圖像時,自注意力機制導致的計算成本是相當大的。
為了解決這個問題,一些 2022 年經典的工作試圖回答:如何借助卷積操作,打造具有 Transformer 風格的卷積網絡視覺基線模型?
比如 ConvNeXt[1]:將標準 ResNet 架構現(xiàn)代化,并使用與 Transformer 相似的設計和訓練策略,ConvNeXt 可以比一些 Transformer 表現(xiàn)得更好。
從原理和代碼詳解FAIR去年的驚艷之作:全新的純卷積模型ConvNeXt
再比如 HorNet[2]:通過建模高階的相互作用,使得純卷積模型可以做到像 Transformer 一樣的二階甚至更高的相互作用。
精度超越ConvNeXt的新CNN!HorNet:通過遞歸門控卷積實現(xiàn)高效高階的空間信息交互
再比如 RepLKNet[3],SLaK[4]:通過 31×31 或者 51×51 的超大 Kernel 的卷積,使得純卷積模型可以建模更遠的距離。
又對ConvNets下手了!詳解SLaK:從稀疏性的角度將卷積核擴展到 51×51
到目前為止,如何更有效地利用卷積來構建強大的 ConvNet 體系結構仍然是一個熱門的研究課題。
1.1.2 卷積調制模塊
本文的關鍵就是本小節(jié)介紹的卷積調制模塊。如下圖1所示, 對于傳統(tǒng)的 Self-attention, 給定一個序列長度為 的輸入 , 自注意力模塊首先通過線性層得到 key , query , 和 value , 其中 是通道數(shù)。 和 是輸入的空間大小。輸出是注意力矩陣 (本質是相似度得分矩陣) :

式中, 度量每一對輸入令牌之間的關系,可以寫成:

為了簡單起見,這里省略了 scale factor,自注意模塊的計算復雜度隨著序列長度N的增加呈二次增長,帶來了更高的計算代價。
在卷積調制模塊中, 不通過2式計算相似度得分矩陣 。具體來說, 給定輸入 , 作者使用一個大小為 的 Depth-wise 卷積 和 Hadamard 積計算輸出:

式中, 是 Hadamard 積, 是兩個線性層的參數(shù)。上述卷積調制操作使每個空間位置 與以 為中心的 平方區(qū)域內的所有像素相關, 通道之間的信息交互可通過線性層實現(xiàn)。每個空間位置的輸出是正方形區(qū)域內所有像素的加權和。
優(yōu)勢: 卷積調制模塊利用卷積來建立關系,這比注意力機制在處理高分辨率圖像時更高效。

ConvNeXt 表明,將 ConvNets 的核大小從3擴大到7可以提高分類性能。然而,進一步增加 Kernel 的大小幾乎不會帶來性能上的提升,反而會在沒有重新參數(shù)化的情況下增加計算負擔。但作者認為,使 ConvNeXt 從大于 7×7的 Kernel Size 中獲益很少的原因是使用空間卷積的方式。對于 Conv2Former,當 Kernel Size 從 5×5 增加到 21×21 時,可以觀察到一致的性能提升。這種現(xiàn)象不僅發(fā)生在 Conv2Former-T (82.8→83.4) 上,也發(fā)生在參數(shù)為80M+ 的 Conv2Former-B (84.1→84.5) 上。考慮到模型效率,默認的 Kernel Size 大小可以設置為 11×11。

權重策略的優(yōu)化: 注意這里作者直接將深度卷積的輸出作為權重,對線性投影后的特征進行調制。Hadamard 積之前既沒有使用激活層,也沒有使用歸一化層 (例如 Sigmoid 或 LN 層),如果像 SE 模塊那樣加一個 Sigmoid 函數(shù),會使性能降低 0.5% 以上。
1.1.3 Conv2Former 整體架構
如下圖3所示,與ConvNeXt 和 Swin Transformer 相似,作者的 Conv2Former 也采用了金字塔架構。總共有4個 Stage,每個 Stage 的特征分辨率依次遞減。根據模型大小尺寸,一共設計了5個變體:Conv2Former-N,Conv2Former-T, Conv2Former-S, Conv2Former-B,Conv2Former-L。

當可學習參數(shù)數(shù)量固定時,如何安排網絡的寬度和深度對模型性能有影響。原始的 ResNet-50 將每個 Stage 的塊數(shù)設置為 (3,4,6,3)。ConvNeXt-T 按照 Swin-T 的模式將 Block 數(shù)之比更改為 (3,3,9,3),并對較大的模型將 Block 數(shù)之比更改為 (1,1,9,1)。Conv2Former 的設置如下圖4所示。可以觀察到,對于一個小模型 (參數(shù)小于30M),更深的網絡表現(xiàn)更好。

1.1.4 實驗結果
ImageNet-1K 實驗分為兩種,一種是直接在 ImageNet-1K 上面訓練和驗證,另一種是先在 ImageNet-22K 上預訓練,再在 ImageNet-1K 上微調和驗證。
ImageNet-1K 實驗設置
數(shù)據集:ImageNet-1K 訓練 300 Epochs,ImageNet-1K 驗證。
優(yōu)化器: AdamW, lr batch_size :1024, , weight decay 為 , 數(shù)據增強: MixUp, CutMix, Stochastic Depth, Random Erasing, Label Smoothing, RandAug。
ImageNet-22K 實驗設置
數(shù)據集:ImageNet-22K 預訓練 90 Epochs,ImageNet-1K 微調 30 Epochs,ImageNet-1K 驗證。
如下圖5所示是 ImageNet-1K 實驗結果。對于小型模型 (< 30M),與 ConvNeXt-T 和 Swin-T 相比,Conv2Former 分別有 1.1% 和 1.7% 的性能提升。即使 Conv2Former-N 只有 15M 參數(shù)和 2.2G FLOPs,其性能也與具有 28M 參數(shù)和 4.5G FLOPs 的 SwinT-T 相同。對于其他流行的模型,Conv2Former 也比類似模型尺寸的模型表現(xiàn)更好。Conv2Former-B 甚至比 EfficientNetB7 表現(xiàn)得更好 (84.4% vs . 84.3%),后者的計算量是 Conv2Former 的兩倍 (37G vs. 15G)。

如下圖6所示是 ImageNet-22K 的實驗結果。作者遵循 ConvNeXt 中使用的設置來訓練和微調模型。與 ConvNeXt 的不同變體相比,當模型尺寸相似時,Conv2Former 都表現(xiàn)得更好。此外,我們可以看到,當在更大的分辨率384×384 上進行微調時,Conv2Former-L 獲得了比混合模型 (如 CoAtNet 和 MOAT) 更好的結果,Conv2Former-L 達到了 87.7% 的最佳結果。

如下圖8所示是關于卷積核大小的消融實驗結果。在 大小增加到 21 × 21 之前,性能增益似乎已經飽和。這個結果與 ConvNeXt 得出的結論截然不同,ConvNeXt 得出的結論是,使用大于 7×7 的 Kernel 不會帶來明顯的性能提升。

消融實驗1:卷積核大小
如下圖8所示是關于卷積核大小的消融實驗結果。在 Kernel Size 增加到 21 × 21 之前,性能增益已經飽和。這個結果與 ConvNeXt 得出的結論截然不同,ConvNeXt 得出的結論是,使用大于 7×7 的 Kernel Size 不會帶來明顯的性能提升。這表明 Conv2Former 的做法能比傳統(tǒng)方式更有效地利用大 Kernel 的優(yōu)勢。

消融實驗2:不同融合策略的影響
如下圖8, 9所示是關于不同融合策略影響的消融實驗結果。除了上述兩種融合策略外, 作者還嘗試使用其他方法來融合特征映射, 包括在 之后添加一個 Sigmoid 函數(shù), 對 進行 歸一化 處理, 將 的值線性歸一化到(0,1]。可以看到, Hardmard 積比其他操作的結果更好。作者發(fā)現(xiàn), 無論是通過 Sigmoid 函數(shù), 還是通過線性的歸一化操作, 將 線性化到 之間, 都會對性能有損害。
直筒架構實驗結果
遵循 ConvNeXt 的做法,作者也訓練了 Conv2Former 的直筒架構 (Isotropic Models) 版本,結果如下圖9所示。作者將 Conv2Former-IS 和 Conv2Former-IB 的塊數(shù)設置為18,并調整通道數(shù)以匹配模型大小。字母 "I" 表示直筒架構,可以看到,對于 22M 參數(shù)左右的小型模型,Conv2Former-IS 比 DeiT-S 的表現(xiàn)要好得多。當將模型尺寸放大到 80M+ 時,Conv2Former-IB 達到了 82.7% 的 Top-1 Accuracy,這也比 ConvNeXt-IB 高 0.7%,比 DeiT-B 高0.9%。

目標檢測實驗結果
如下圖10所示是不同骨干網絡,以 Mask R-CNN 為檢測頭和 Cascade Mask R-CNN 為實例分割頭在 COCO 數(shù)據集的實驗結果。訓練策略遵循 ConvNeXt。對于小模型,使用 Mask R-CNN 框架時,Conv2Former-T 比 SwinT-T 和 ConvNeXt-T 獲得了約 2% AP 的改進。

語義分割實驗結果
如下圖11所示是不同骨干網絡,以 UperNet 為分割頭在 ADE20k 上的實驗結果。對于不同尺度的模型,我們的Conv2Former可以優(yōu)于Swin Transformer和ConvNeXt。

總結
本文試圖回答:如何借助卷積操作,打造具有 Transformer 風格的卷積網絡視覺基線模型。本文提出一種卷積調制模塊,利用卷積來建立關系,這比注意力機制在處理高分辨率圖像時更高效。最終的模型稱為 Conv2Former,它通過只使用卷積和 Hadamard 積,簡化了注意力機制。卷積調制操作是一種利用大核卷積的更有效的方法。作者在 ImageNet 分類、目標檢測和語義分割方面的實驗也表明,Conv2Former 比以前基于 CNN 的模型和大多數(shù)基于 Transformer 的模型表現(xiàn)得更好。
參考
^A ConvNet for the 2020s ^HorNet: Efficient High-Order Spatial Interactions with Recursive Gated Convolutions ^Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs ^More ConvNets in the 2020s: Scaling up Kernels Beyond 51 × 51 using Sparsity
往期精彩回顧
適合初學者入門人工智能的路線及資料下載 (圖文+視頻)機器學習入門系列下載 機器學習及深度學習筆記等資料打印 《統(tǒng)計學習方法》的代碼復現(xiàn)專輯 機器學習交流qq群955171419,加入微信群請掃碼
