Shift-ConvNets:稀疏-移位操作讓小卷積核也能達到大卷積核效果

2024年2月6日 24点热度 0人点赞

作者丨集智書童

來源丨集智書童

編輯丨極市平臺

論文鏈接:
https://arxiv.org/pdf/2401.12736.pdf

代碼鏈接:
https://github.com/lidc54/shift-wiseConv

最近的研究表明,視覺 Transformer (ViTs)出色的性能得益於大的感受野。因此,大的卷積核設計成為使卷積神經網絡(CNNs)再次強大的理想解決方案。然而,典型的大的卷積核實際上是硬件不友好的運算符,導致各種硬件平臺的兼容性降低。因此,簡單地擴大卷積核大小是不明智的。

在本文中,作者揭示了小卷積核和卷積操作可以達到大的卷積核的近似效果。然後,作者提出了一種移位操作符,通過稀疏機制幫助卷積神經網絡捕捉長程依賴關系,同時保持對硬件的友好性。

實驗結果顯示,作者的移位操作符顯著提高了常規CNN的準確性,同時顯著降低了計算需求。在ImageNet-1k上,作者的移位增強的CNN模型超過了最先進的模型。

代碼和模型:
https://github.com/lidc54/shift-wiseConv

1 Introduction

神經網絡的發展在機器學習領域取得了顯著的突破,尤其是在計算機視覺和自然語言處理等領域。卷積神經網絡作為當前主導架構之一,在自然語言處理、計算機視覺等領域得到了廣泛應用。盡管如此, Transformer 的發展推動了視覺識別在2020年代實現了爆炸性增長。它迅速取代了CNN,成為計算機視覺的最先進模型。

ConvNeXts是一項突破性工作,使CNN能夠與 Transformer 競爭。它根據 Transformer 重新設計了ResNet,並重新點燃了對大卷積核作用的關註。Ding等人[7]使用特征重參化將卷積核大小增加到31x31,提高了模型在RepLK-net中的能力。Liu等人[8]通過特征分解和權重矩陣訓練的稀疏性將核大小增加到51x51,在SLAK-net中保持了連續的優勢,並維持了對所提出架構的連續益處。

事實上,使用大的卷積核並不是最近才出現的現象。在Alexnet中,11x11和5x5卷積被廣泛使用,為後續研究奠定了良好的基礎。隨後,許多經典 Backbone 架構在CNN中出現,如廣泛應用並不斷優化的ResNet。在其Stem層早期版本中,ResNet采用了大的卷積核。同樣,GoogleNet Inception V1使用多個不同大小的並行卷積核結構進行信息融合,如圖1(a)所示。

在後續研究中,包括Alexnet、Resnet和GoogleNet在內的基本架構中的大卷積核部分被逐漸替換為較小的核。VGG-net引入了感受野的概念,認為堆疊小核理論上可以達到與大核相同的效果,但參數和計算成本較少。另一個好處是增加了更多的非線性層以增強網絡的表達能力。後來,Limu的研究團隊在論文[12]中總結了ResNet訓練的技巧,並提出了一個新的ResNet結構,該結構在ResNet的Stem層中移除了使用大核的方式。

然而,在某些領域中,使用大的卷積核並未完全消失:

  1. 類似於Inception V1的層次結構的多尺度特征融合技術被反復引用和增強。例如:在SPPnet中,多尺度池化層與普通卷積有效形成了金字塔池化模塊結構中的大卷積核,如圖1(d)所示。為了進一步增強這種特征融合方法,DeepLab中的ASPP(空洞時空金字塔池化)模塊和Trident Networks中的Trident結構使用逐步增加的空洞卷積來實現類似的功能,如圖1(c)所示。
  2. 此外,利用大的感受野進行遠程特征融合的實踐也是一種長期的技術。FCN中引入的空洞卷積是一種廣泛用於分割的技術。SegNeXt利用大小為1x7、1x11和1x21的並行卷積進行目標分割。Global Convolutional Network(GCN)采用堆疊1xk和kx1卷積來實現同樣的目的。此外,一些細粒度特征提取研究方法,如[18, 19, 20],在卷積層後使用矩陣乘法建立長程特征依賴關系。廣泛使用的非局部結構也采用了類似的操作。
  3. Deformable Convolutional Networks(DCN)通過使用較少的參數實現了一個大的感受野。這個想法導致了許多研究。Dynamic Snake Convolution(DSConv)在DCN的基礎上增加了額外的約束,以適應血管分割場景。Linear kernel將DCN的思想應用於3D稀疏點雲,以實現更強的感知和更高的效率。在[25]中,使用DCN思想精細調整實例分割的邊緣。

上述涉及大卷積核概念的應用,無論是全部還是部分,都揭示了特征聚合對遠程特征依賴的重要性。這一點得到了ConvNeXts、RepLK-net和SLAK實驗的證實。Ding等人[3]引用了一個論點,即卷積核大小的平方根。堆疊深度與實際感受野成正比。實驗證明,大卷積核是必要的。然而,考慮到核大小的不可避免的演變,作者可以預期可以僅通過小卷積核實現的大核效果。實際上,ParCNetV2將核大小擴展到輸入特征圖大小的兩倍。繼續增加卷積核大小似乎已經達到了邊際收益遞減的點。另一方面,特征依賴不需要太密集,正如Transformer所證明的那樣。因此,一個直觀的問題出現了:CNNs能否使用標準卷積構建稀疏的長程依賴關系?

為了應對這個問題,作者提出了一種方法:通過移位標準卷積來實現大卷積核的效果,然後通過剪枝獲得稀疏組卷積,作者稱這種運算符為移位運算符。該運算符與采用的參數重定義結構相結合,以增強模型的性能能力。它將大卷積核的效果與標準CNN的進步無縫地集成在一起。

2 Proposed Method

Decomposition and Combination of Convolution

基於大卷積核的持續演變,作者提出了Shift-wise運算符。改進的模塊結構如圖4(a)所示。具體來說,作者將大卷積核轉換為一系列正常的較小卷積核,然後對每個卷積結果應用一個移位操作。

在這裡,一個15x3的卷積可以等價於5x3x3的卷積。對於這種情況,需要使用移位操作。與之前的情況不同,移位需要在一維上移動得更遠,並使它與大小的網格對齊。為了更詳細地表示這種移位差異,作者使用圖5(c)中的示意圖。

Sparse Dependencies of Large Convolution Kernels

大卷積核可以在特征空間中建立長程依賴關系。然而,生物視覺理解往往忽略一些信息。Transformer 也建立稀疏依賴關系。盡管SLaK也使用了細粒度的稀疏權重矩陣。但由於局部信息感受野,很難說SLaK中確實建立了稀疏註意力關系。這個問題在高層語義水平上帶來了計算冗餘,這不僅僅是低層語義水平上減少計算量的覆蓋。在低層語義水平上減少計算量更不理想。

作者改進的方法也非常簡單。在訓練過程中,剪枝一些連接。圖5(c)和圖6(b)中的虛線彩色塊表示通道被剪枝,如圖5(c)和圖6(b)所示。通過這種粗粒度剪枝,可以得到稀疏組卷積。通過後續的add操作,可以確保模塊的總通道輸出保持不變。

對於這種方法,可以從訓練過程中的數據流形角度不斷優化依賴關系,同時保持整體網絡結構不變。作者稱之為組移位操作。整體結構如圖4(b)所示。

  • 首先,將組移位操作應用於相同的輸入,以模擬多個卷積核大小,創建多個輸出分支
  • 然後,從每個組中選擇一個通道形成Identity分支
  • 最後,將所有輸出分支組合成一條單獨的分支

與SLaK相比,作者提出的移位運算符是一種更通用的形式,可以進一步放寬限制。這包括卷積核的大小、形狀和信息融合的方法。由於移位和稀疏性,作者引入了新的概念:關註長度和關註寬度,對應於SLaK中 Kernel 大小的m和n。

在這裡,作者正式定義移位運算符為一種方法,首先指定一個具有關註長度和關註寬度的矩形區域,然後選擇大小小於或等於關註寬度的卷積核,並調整這些卷積組的分佈進行信息融合。關註長度不需要小於當前特征圖大小。對於這種情況,作者稍微調整公式2得到公式3:

Intermodule Feature Manipulation

為了在推理過程中減少計算量,作者試圖在模塊內管理特征。具體而言,作者將'ghost'和重參化(rep)技術結合到一個模塊中,如圖7所示。

Theoretical Computational Complexity Changes

4 Experimental Setup and Result Analysis

Experimental Configuration

Shift-wise網絡(記作SW)保留ConvNeXt中優化的ResNet結構。在每個網絡階段中,作者使用不同的塊數。具體來說,SW-T結構使用[3, 3, 9, 3]塊,而SW-S/B使用[3, 3, 27, 3]塊。核的短邊為5,長邊在每個階段中變化為[51, 49, 47, 13]。Stem模塊使用一個卷積,步長為4。

關於shift操作的實現,Lart等人[50]總結了五種可行的操作:切片索引,torch.roll,變形卷積,深度卷積和網格采樣F.grid_sample。這些操作在計算上是昂貴的。因此,作者使用taichi[51]重新編寫相應的運算符。

Evaluation on Imagenet-1k

Imagenet-1k是一個大規模的視覺數據庫,用於視覺目標識別軟件研究。它提供了超過1000種不同的類別圖像,用於訓練和測試各種圖像識別算法。

這些幾種設置的準確性詳細地顯示在表 1 中。作者可以觀察到, 在參數數量幾乎減半的情況下, shift-wise操作的準確性幾乎等於在 120 個周期內訓練的SLaK-T。作者發現, padding kernelsize -1 比padding kernelsize//2更好。作者將padding kernelsize -1 設置為默認值。

為了進一步分析稀疏的shift-wise網絡結構,作者在表2中呈現了每個階段第一層稀疏性。顯然,在較早的階段,稀疏度比更高,需要更少的組來實現大卷積核的效果。在較晚的階段,稀疏度逐漸降低。這些剩餘的有效組完全由數據驅動獲得,顯示了在提高推理效率方面具有巨大的潛力。

為了保持計算效率並提高準確性,作者使用了shift-wise模塊中引入的多個分支。多個分支共享一個公共稀疏掩碼,以確保在稀疏訓練中參數重參化的可行性。結果如表3所示。shift-wise模塊方法保持了表2中顯示的稀疏性,並實現了比SLaK更高的準確性。

表4顯示,與SLaK相比,shift-wise模塊在卷積操作方面的計算復雜性顯著降低。減少它們的用法可以提高整體計算吞吐量。

同時,作者在單個分支上測試了shift-wise模塊的運行時間,如表5所示。結果表明,在特定稀疏度下,提出的運算符降低了時間成本。考慮到SLaK使用雙分支網絡,而shift-wise模塊僅采用一半的卷積次數,推理時間的減少更加顯著。

5 Conclusions

近年來,大規模視覺 Transformer (ViT)取得了顯著的進展。同時,改善卷積神經網絡(CNNs)的研究也取得了快速的進步。在本文中,提出的運算符通過常規卷積實現大規模核效果,這更具有硬件友好性和軟件效率。

對於各種設備,作者的研究使得CNN的最新進展能夠以更少的成本應用。作者不僅在優化效率方面取得了進步,而且還開始探索如何提高CNN性能的方法。創建空間稀疏相關性是一種有效的方法。已建立的長期稀疏依賴關系由數據驅動,可以緩解由手動設計可能引起的下遊任務的遷移問題。提出的運算符需要基本的讀取數據過程,而且在多步融合方面有進一步優化的潛力。同時,關於稀疏依賴性構建的新設計空間需要進一步的研究。

參考

[1].Shift-ConvNets: Small Convolutional Kernel.