博客專欄

        EEPW首頁 > 博客 > ECCV 2022 | 清華&Meta提出HorNet,用遞歸門控卷積進行高階空間相互作用

        ECCV 2022 | 清華&Meta提出HorNet,用遞歸門控卷積進行高階空間相互作用

        發布人:計算機視覺工坊 時間:2022-09-17 來源:工程師 發布文章
        來源丨機器之心

        來自清華大學和 Meta AI 的研究者證明了視覺 Transformer 的關鍵,即輸入自適應、長程和高階空間交互,也可以通過基于卷積的框架有效實現。


        視覺 Transformer 的最新進展表明,在基于點積自注意力的新空間建模機制驅動的各種任務中取得了巨大成功。在本文中,來自清華大學和 Meta AI 的研究者證明了視覺 Transformer 背后的關鍵成分,即輸入自適應、長程和高階空間交互,也可以通過基于卷積的框架有效實現。作者提出了遞歸門卷積(圖片),它用門卷積和遞歸設計進行高階空間交互。新操作具有高度靈活性和可定制性,與卷積的各種變體兼容,并將自注意力中的二階交互擴展到任意階,而不引入顯著的額外計算。
        圖片可以作為一個即插即用模塊來改進各種視覺 Transformer 和基于卷積的模型。基于該操作,作者構建了一個新的通用視覺主干族,名為 HorNet。在 ImageNet 分類、COCO 對象檢測和 ADE20K 語義分割方面的大量實驗表明,HorNet 在總體架構和訓練配置相似的情況下,優于 Swin Transformers 和 ConvNeXt。HorNet 還顯示出良好的可擴展性,以獲得更多的訓練數據和更大的模型尺寸。除了在視覺編碼器中的有效性外,作者還表明圖片可以應用于任務特定的****,并以較少的計算量持續提高密集預測性能。本文的結果表明,圖片可以作為一個新的視覺建模基本模塊,有效地結合了視覺 Transformer 和 CNN 的優點。

        圖片


        • 論文地址:https://arxiv.org/abs/2207.14284
        • 代碼地址:https://github.com/raoyongming/HorNet


        1. Motivation
        自 AlexNet 在過去十年中引入以來,卷積神經網絡(CNN)在深度學習和計算視覺方面取得了顯著進展。CNN 有許多優良的特性,使其自然適用于廣泛的視覺應用。平移等變性為主要視覺任務引入了有用的歸納偏差,并實現了不同輸入分辨率之間的可傳遞性。高度優化的實現使其在高性能 GPU 和邊緣設備上都非常有效。架構的演變進一步增加了其在各種視覺任務中的受歡迎程度。
        基于 Transformer 的架構的出現極大地挑戰了 CNN 的主導地位。通過將 CNN 架構中的一些成功設計與新的自注意力機制相結合,視覺 Transformer 在各種視覺任務上表現出領先的性能,如圖像分類、物體檢測、語義分割和視頻理解。是什么讓視覺 Transformer 比 CNN 更強大?通過學習視覺 Transformer 方面的新設計,已經做出了一些努力來改進 CNN 架構。然而,目前工作尚未從高階空間交互的角度分析點積自注意力在視覺任務中的有效性。
        雖然由于非線性,深度模型中的兩個空間位置之間存在復雜且通常高階的交互,但自注意力和其他動態網絡的成功表明,結構設計引入的顯式和高階空間交互有利于提高視覺模型的建模能力。如上圖所示,普通卷積運算沒有明確考慮空間位置(即紅色特征)及其相鄰區域(即淺灰色區域)之間的空間交互。增強卷積運算,如動態卷積,通過生成動態權重引入顯式空間交互。Transformers 中的點積自注意力操作由兩個連續的空間交互組成,通過在查詢、鍵和值之間執行矩陣乘法。視覺建模基本操作的趨勢表明,可以通過增加空間交互的順序來提高網絡容量。
        在本文中,作者總結了視覺 Transformers 成功背后的關鍵因素是通過自注意力操作實現輸入自適應、遠程和高階空間交互的空間建模新方法。雖然之前的工作已經成功地將元架構、輸入自適應權重生成策略和視覺 Transformers 的大范圍建模能力遷移到 CNN 模型,但尚未研究高階空間交互機制。作者表明,使用基于卷積的框架可以有效地實現所有三個關鍵要素。作者提出了遞歸門卷積(g nConv),它與門卷積和遞歸設計進行高階空間交互。與簡單地模仿自注意力中的成功設計不同,g n Conv 有幾個額外的優點:1)效率。基于卷積的實現避免了自注意力的二次復雜度。在執行空間交互期間逐步增加通道寬度的設計也使能夠實現具有有限復雜性的高階交互;2) 可擴展。將自注意力中的二階交互擴展到任意階,以進一步提高建模能力。由于沒有對空間卷積的類型進行假設,圖片與各種核大小和空間混合策略兼容;3) 平移等變性。圖片完全繼承了標準卷積的平移等變性,這為主要視覺引入了有益的歸納偏置。
        基于圖片,作者構建了一個新的通用視覺主干族,名為 HorNet。作者在 ImageNet 分類、COCO 對象檢測和 ADE20K 語義分割上進行了大量實驗,以驗證本文模型的有效性。憑借相同的 7×7 卷積核 / 窗口和類似的整體架構和訓練配置,HorNet 優于 Swin 和 ConvNeXt 在不同復雜度的所有任務上都有很大的優勢。通過使用全局卷積核大小,可以進一步擴大差距。HorNet 還顯示出良好的可擴展性,可以擴展到更多的訓練數據和更大的模型尺寸,在 ImageNet 上達到 87.7% 的 top-1 精度,在 ADE20K val 上達到 54.6% 的 mIoU,在 COCO val 上通過 ImageNet-22K 預訓練達到 55.8% 的邊界框 AP。除了在視覺編碼器中應用圖片外,作者還進一步測試了在任務特定****上設計的通用性。通過將圖片添加到廣泛使用的特征融合模型 FPN,作者開發了 HorFPN 來建模不同層次特征的高階空間關系。作者觀察到,HorFPN 還可以以較低的計算成本持續改進各種密集預測模型。結果表明,圖片是一種很有前景的視覺建模方法,可以有效地結合視覺 Transofrmer 和 CNN 的優點。
        2. 方法
        2.1 gnConv: Recursive Gated Convolutions 在本節中,將介紹 g n Conv,這是一種實現長期和高階空間相互作用的有效操作。g n Conv 由標準卷積、線性投影和元素乘法構建,但具有與自注意力類似的輸入自適應空間混合功能。
        Input-adaptive interactions with gated convolution
        視覺 Transformer 最近的成功主要取決于視覺數據中空間交互的正確建模。與只需使用靜態卷積核來聚合相鄰特征的 CNN 不同,視覺 Transformer 應用多頭自注意力動態生成權重以混合空間 token。然而,二次復雜度在很大程度上阻礙了視覺 Transformer 的應用,尤其是在下游任務中,包括需要更高分辨率特征圖的分割和檢測。在這項工作中,作者沒有像以前的方法那樣降低自注意力的復雜性,而是尋求一種更有效的方法,通過卷積和完全連接層等簡單操作來執行空間交互。
        本文方法的基本操作是門卷積(gConv)。圖片是輸入特征,門卷積的輸出圖片可以寫成:

        圖片


        圖片


        其中圖片圖片是執行通道混合的線性投影層,f 是深度卷積。圖片,其中圖片是以 i 為中心的局部窗口,w 表示 f 的卷積權重。因此,上述公式通過元素乘法明確引入了相鄰特征圖片圖片之間的相互作用。作者將 gConv 中的相互作用視為一階相互作用,因為每個圖片僅與其相鄰特征圖片相互作用一次。
        High-order interactions with recursive gating
        在與 gConv 實現有效的 1 階空間相互作用后,作者設計了圖片,這是一種遞歸門卷積,通過引入高階相互作用來進一步增強模型容量。形式上,首先使用圖片獲得一組投影特征圖片圖片

        圖片


        然后,作者通過以下方式遞歸執行 gating 卷積:


        圖片


        其中,將輸出縮放 1/α 以穩定訓練。圖片是一組深度卷積層,圖片用于按不同階匹配維數。

        圖片


        最后,作者將最后一個遞歸步驟圖片的輸出饋送到投影層圖片,以獲得圖片的結果。從遞歸公式方程可以很容易地看出,圖片的交互階在每一步后將增加 1。因此,可以看到,圖片實現了 n 階空間相互作用。還值得注意的是,只需要一個 f 來執行深度卷積,以串聯特征圖片,而不是像上面等式中那樣計算每個遞歸步驟中的卷積,這可以進一步簡化實現并提高 GPU 的效率。為了確保高階交互不會引入太多計算開銷,作者將每個階中的通道維度設置為:


        圖片


        該設計表明,以從粗到細的方式執行交互,其中較低的階數是用較少的通道計算的。此外,圖片的通道維數正好為 2C,即使 n 增加,總的浮點也可以嚴格有界。

        圖片


        其中 K 是深度卷積的核大小。因此,圖片以與卷積層類似的計算成本實現高階交互。
        Long-term interactions with large kernel convolutions
        視覺 Transformer 和傳統 CNN 的另一個區別是感受野。傳統的 CNN 通常在整個網絡中使用 3×3 卷積,而視覺 Transformer 在整個特征圖上或在相對較大的局部窗口(例如 7×7)內計算自注意力。視覺 Transformer 中的感受野可以更容易地捕捉長期依賴關系,這也是公認的視覺 Transformer 的關鍵優勢之一。受這種設計的啟發,最近有一些努力將大型內核卷積引入 CNN。為了使圖片能夠捕捉長期交互,作者采用了兩種深度卷積 f 實現:
        1)7×7 卷積。7×7 是 Swin Transformers 和 ConvNext 的默認窗口 / 內核大小。[研究表明,內核大小在 ImageNet 分類和各種下游任務上具有良好的性能。作者遵循此配置,與視覺 Transformers 和現代 CNN 的代表性工作進行了公平比較。
        2)全局濾波器(GF)。GF 層將頻域特征與可學習的全局濾波器相乘,這相當于具有全局核大小和圓形填充的空域卷積。通過使用全局濾波器處理一半通道和使用 3×3 深度卷積處理另一半通道來使用 GF 層的修改版本,并且僅在后期使用 GF 層來保留更多的局部細節。
        Spatial interactions in vision models
        作者從空間交互的角度回顧了一些有代表性的視覺模型設計。具體地說,作者對特征 x_i 與其相鄰特征圖片之間的相互作用感興趣。視覺 Transformer 和以前架構之間的關鍵區別,即視覺 Transformer 在每個基本塊中具有高階空間交互。這一結果啟發作者探索一種能夠以兩個以上階數實現更高效和有效空間交互的架構。如上所述,作者提出的圖片可以實現復雜度有界的任意階交互。還值得注意的是,與深度模型(如寬度和深度)中的其他比例因子類似,在不考慮整體模型容量的情況下簡單地增加空間交互的順序將不會導致良好的權衡。在本文中,作者致力于在分析精心設計的模型的空間交互階數的基礎上,開發一種更強大的視覺建模架構。對高階空間相互作用進行更深入和正式的討論可能是未來的一個重要方向。


        Relation to dot-product self-attention
        盡管本文的圖片的計算與點積自注意有很大差異,但作者將證明圖片也實現了輸入自適應空間混合的目標。假設 M 是通過多頭自注意力(MHSA)獲得的注意力矩陣,將 M 寫為(圖片),因為混合權重可能在通道中變化。位置 i 處第 c 個通道的空間混合結果(在最終通道混合投影之前)為:

        圖片


        其中,w_V 是 V 投影層的權重。注意,通過點積運算獲得的m_ij包含一階相互作用。另一方面,圖片的輸出(在圖片之前)可以寫成:


        下圖總結了圖片的細節實現:

        圖片


        2.2 Model Architectures
        HorNet
        圖片可以替代視覺 Transformer 或現代 CNN 中的空間混合層。作者遵循與以前的元架構來構建 HorNet,其中基本塊包含空間混合層和前饋網絡(FFN)。根據模型大小和深度卷積 f_k 的實現,有兩個模型變體系列,分別命名為 HorNet-T/S/B/L 7×7 和 HorNet-T/S/B/L GF。作者將流行的 Swin Transformer 和 ConvNeXt 視為視覺 Transformer 和 CNN 基線,因為本文的模型是基于卷積框架實現的,同時具有像視覺 Transformer 一樣的高階交互。為了與基線進行公平比較,作者直接遵循 Swin Transformers-S/B/L 的塊數,但在第 2 階段插入一個額外的塊,以使整體復雜度接近,從而在所有模型變體的每個階段中產生 [2、3、18、2] 個塊。只需調整通道 C 的基本數量,以構建不同大小的模型,并按照慣例將 4 個階段的通道數量設置為[C、2C、4C、8C]。對于 HorNet-T/S/B/L,分別使用 C=64、96、128、192。默認情況下,將每個階段的交互順序(即圖片中的 n)設置為 2,3,4,5,這樣最粗階C_0的通道在不同階段中是相同的。
        HorFPN
        除了在視覺編碼器中使用圖片之外,作者發現本文的圖片可以是標準卷積的增強替代方案,該方案考慮了基于卷積的各種模型中的高階空間相互作用。因此,圖片替換 FPN 中用于特征融合的空間卷積,以改善下游任務的空間交互。具體來說,作者在融合不同金字塔級別的特征后添加了圖片。對于目標檢測,作者在每個級別用 替換自頂向下路徑后的 3×3 卷積。對于語義分割,作者簡單地將多階特征映射串聯后的 3×3 卷積替換為圖片,因為最終結果直接從該串聯特征預測。作者同樣提供了兩個實現,稱為 HorFPN 7×7 和 HorFPN GF,由f_k的選擇決定。
        3. 實驗

        圖片


        ImageNet 分類實驗結果總結在上表中。本文的模型通過最先進的視覺 Transformer 和 CNNs 實現了非常有競爭力的性能。值得注意的是,HorNet 超越了 Swin Transformers 和 ConvNeXt,它們在各種模型尺寸和設置上都具有相似的整體架構和訓練配置。

        圖片


        作者使用常用的 UperNet 框架評估了 ADE20K 數據集上的 HorNet 語義分割任務。所有模型都使用 AdamW 優化器訓練 160k 次迭代,全局 batch 處理大小為 16。訓練期間的圖像大小對于 ImagNet-1k (HorNet-T/S/B) 預訓練模型為 512 × 512,對于 ImageNet-22K 預訓練模型 (HorNet-L) 為 640 × 640。結果總結在上表的左側部分,其中報告了驗證集上的單尺度 (SS) 和多尺度 (MS) mIoU。作者還在 COCO 數據集上評估了本文的模型。作者采用級聯 Mask R-CNN 框架使用 HorNet-T/S/B/L 主干進行對象檢測和實例分割。繼 Swin 和 ConvNeXt 之后,作者使用了具有多尺度訓練的 3× schedule。上表的右側部分比較了本文的 HorNet 模型和 Swin/ConvNeXt 模型的 box AP 和 mask AP。

        圖片


        作者現在展示了所提出的圖片的另一個應用,即作為更好的融合模塊,可以更好地捕獲密集預測任務中不同級別特征之間的高階交互。具體而言,作者直接修改了分別用于語義分割和對象檢測的 FPN,如 SuperNet 和 Mask R-CNN。在上表中顯示了結果,其中作者比較了本文的 HorFPN 和標準 FPN 在不同主干上的性能,包括 ResNet-50/101、Swin-S 和 HorNet-S 7×7。對于語義分割,作者發現 HorFPN 可以顯著減少 FLOPs(~50%),同時實現更好的 mIoU。

        圖片


        上表展示了本文方法的消融實驗結果。

        圖片


        上圖展示了 Swin、ConvNeXt 和 HorNet 的權衡比較。
        4. 總結
        作者提出了遞歸門卷積(圖片),它與門卷積和遞歸設計進行有效、可擴展和平移等變的高階空間交互。在各種視覺 Transformer 和基于卷積的模型中,圖片可以作為空間混合層的替代品。在此基礎上,作者構建了一個新的通用視覺骨干 HorNet 家族。大量實驗證明了圖片和 HorNet 在常用視覺識別基準上的有效性。
        最后筆者已經將 HorNet 網絡代碼 匯總整理在以下 Github 庫中,地址為:https://github.com/xmu-xiaoma666/External-Attention-pytorch
        該庫是一個面向小白的頂會論文核心代碼庫。里面匯總諸多頂會論文核心代碼,包括 Attention、Self-Attention、Backbone、MLP、Conv 等。
        5. 將 HorNet 結合 YOLOv5 模型應用
        YOLOAir 庫中 已經將 HorNet 網絡應用在 YOLO 模型中,分別以下三種方式與 YOLOv5 模型 結合:

        1. 在 YOLOv5 中 使用 gnconv 模塊示例2. 在 YOLOv5 中 使用 HorBlock 模塊示例3. 在 YOLOv5 中 使用 HorNet 主干網絡示例
        由于篇幅有限,具體改進代碼及方式可以在以下 GitHub 庫中獲取:面向科研小白的 YOLO 目標檢測庫:https://github.com/iscyy/yoloair
        參考鏈接:https://arxiv.org/abs/2207.14284https://github.com/raoyongming/HorNethttps://github.com/xmu-xiaoma666/External-Attention-pytorchhttps://github.com/iscyy/yoloair


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 永平县| 洛浦县| 镇赉县| 巨野县| 晋城| 祁东县| 沙湾县| 肇东市| 武鸣县| 蒙山县| 民勤县| 江达县| 文山县| 临潭县| 景东| 通州区| 兰坪| 水富县| 綦江县| 钦州市| 武义县| 家居| 江北区| 东至县| 龙胜| 花垣县| 灵丘县| 阳西县| 车险| 扶绥县| 乐亭县| 南乐县| 泾源县| 余姚市| 永胜县| 略阳县| 阜城县| 黎城县| 喀喇沁旗| 临海市| 嵊泗县|