博客專欄

        EEPW首頁 > 博客 > 首次統一卷積與自注意力,上海交大、華為海思提出X-volution,發力網絡核心基礎架構創新

        首次統一卷積與自注意力,上海交大、華為海思提出X-volution,發力網絡核心基礎架構創新

        發布人:機器之心 時間:2021-06-08 來源:工程師 發布文章

        卷積和自注意力各有優勢,但二者的有效結合一直是一大難題。為了取二者之長,上海交大 - 華為海思聯合團隊提出了一種名為 X-volution 的新型算子。該算子在性能上的顯著提升、計算的通用性與即插即用的特性為深度學習基礎計算單元庫以及 NPU 計算架構的演進提供了一種新的基礎武器。

        眾所周知,卷積操作(convolution)與自注意力操作(self-attention)是深度學習兩大核心的基礎網絡計算單元(或稱為模型算子)。卷積操作通過線性乘子,提取圖像局部特征;自注意力操作通過高階乘子運算,提取圖像全域 / 局部的特征關聯特性。兩種算子成為深度學習兩大重要網絡架構演化——CNN 與 Transformer 的計算基石。兩種算子在圖像特征提取與語義抽象方面的互補性不言而喻:線性 vs. 高階, 局部 vs. 全局。因此,能否設計一種包含這兩種操作的融合算子并使其發揮互補優勢,一直是深度學習架構研究者熱衷的研究方向之一。

        然而,由于卷積運算與自注意力運算在計算模式上的異構性,這項任務存在巨大的挑戰。目前學界中的一些工作也在努力統一兩者,他們主要從拓撲結構組合角度來粗粒度地結合兩種算子,例如,發表在 ICCV 2019 上的 AA-Net 采用了一種將卷積中部分通道替換為由 self-attention 來處理,然后將卷積和 self-attention 分別處理的特征連接來達到聯合兩種算子的目的,這種做法證明了卷積和 self-attention 結合后確實能在分類、檢測、分割等基礎任務上達到比較可觀的性能收益。

        然而,粗粒度的組合(本質上就是兩路計算并聯)會導致其組合后網絡形態可用性下降。具體來說,卷積和 self-attention 運算模式存在較大差異,兩者同時存在會導致網絡結構不規則,進而影響網絡推理效率,并不為目前一些工業界通用的芯片計算架構所友好支持。同時組合后的算子在算力上也存在巨大的挑戰。

        1.png

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

        針對這些挑戰,日前,上海交大 - 華為海思聯合團隊在 arXiv 上發表了「X-volution: On the Unification of Convolution and Self-attention」,首次在計算模式上統一了這兩大基礎算子,并在推理階段歸并成一個簡單的卷積型算子:X-volution。

        X-volution 兼顧卷積與自注意力操作的互補優勢,并且在現有通用網絡計算框架上不需要額外算子支持,也不增加除卷積外的額外算力或影響網絡的規范性 / 可用性(即插即用)。

        該工作的突破主要受以下思路的啟發:對全局的 self-attention 進行理論分析后,研究者發現在一定條件下(例如圖像 / 特征圖的鄰接像素滿足馬爾可夫性質),全局的 self-attention 可以通過局部的 self-attention 配合卷積運算來逼近。

        具體來說,本文作者提出了一種新型的 self-attention 機制——PSSA。這種機制分為兩個步驟:首先將輸入的特征沿指定的多個方向進行循環移位(采用索引來實現)得到移位后的特征,然后將移位后的特征與原特征通過元素點積獲得變換后的特征,再對該特征在局部區域進行加權求和(可采用卷積來替代),至此獲得經過注意力機制處理后的特征。通過層次堆疊,可以持續地將局部的上下文關系傳播到全局從而實現全局的 self-attention。

        值得注意的是,PSSA 實際上將 self-attention 巧妙地轉化為了一個在簡單變換后的特征上的標準的卷積操作,這從形式上實現了 self-attention 向卷積的統一。利用此逼近式的 self-attention 機制,作者建立了一個多分枝的模塊將卷積和 self-attention 整合在一起,這個模塊從功能上實現了兩者的統一。

        更重要的是,這個多分枝的結構可以利用結構重參數化的方法進行有條件的合并。多分枝結構可以合并為單個卷積,合并后可以獲得一個原子級的算子,稱為 X-volution(X-volution 的權重可以看作一個靜態卷積權重,以及一個內容相關動態卷積權重的和)。此算子同時具備了卷積和 self-attention 的特性,且不會影響網絡的規范性 / 可用性。

        作者在分類、檢測、分割等主流 SOTA 實驗上取得了顯著的性能提升。

        2.png

        圖 1,算子詳細結構框圖。受結構重參數化思想啟發,X-volution 被設計為訓練和推理階段結構解耦的形式。它的訓練結構時有兩個主要分支(如中間所示),右分支由級聯的卷積和 BN 構成,可為 X-volution 集成卷積的能力。左邊包括 PSSA,它提供近似的全局自注意力特性。完成訓練后,X-volution 可以有條件地重新參數化為一個卷積操作。在推理階段,X-volution 實際上是一個動態卷積算子,它的權重包括需要在線計算的 attention 動態參數部分和已經訓練和固化的卷積靜態參數部分。

        實驗部分

        作者將 X-volution 接入到經典的 ResNet 模型中用于 ImageNet 分類、MS COCO 物體檢測、實例分割等關鍵基礎任務并都取得了不俗的提升。為了排除其他因素干擾,實驗中作者所使用的 self-attention 和 PSSA 都沒有添加位置編碼,并且沒有對數據集進行額外的增廣,沒有使用額外的訓練技巧(如:余弦退火、標簽平滑等)。

        ImageNet 分類實驗

        對于 ImageNet 圖片分類實驗,作者分別測試了在 ResNet 中三個不同位置接入 X-volution 的結果。將 X-volution 接入到常規的 ResNet 第五階段瓶頸單元的結果如表 1 所示:在 ResNet-34 與 ResNet-50 中均提升不明顯,這是因為在此階段的特征圖尺寸已經接近卷積核大小。實驗發現在第三階段效果最為突出,分別取得了 1.2% 與 0.9% 的顯著提升。值得注意的是,作者對于 ResNet 改動較小,但是性能卻依然能有大幅度的提升,這證實了文中所提出的 X-volution 算子具有良好的性能。

        3.png4.png

        表 1. ImageNet 實驗結果及瓶頸單元詳細結構

        MS COCO 物體檢測及實例分割實驗

        作者進一步在更復雜的目標檢測和實例分割上驗證所提出的算子的有效性。他們的實驗模型是用 X-volution 增強的 ResNet-50,具體是替換了 ResNet-50 最后一個階段的三個瓶頸單元。為了充分的對比,作者展示了兩種形態的 X-volution,如表 2 和表 3 所示:X-volution(SA) 表示的是卷積與 global self-attention 結合,這種形態是為了驗證 X-volution 采用的卷積和 self-attention 結合模式的可行性;X-volution 則表示卷積和 PSSA 直接結合的形式,其為了檢驗所提出的 PSSA 的可行性。

        5.png

        表 2:MS COCO 物體檢測實驗結果

        6.png

        表 3:MS COCO 實例分割實驗結果

        從表 2 與表 3 可以看出,兩種 X-volution 模式都獲得了大幅度的性能提升。其中,X-volution(SA) 更為明顯,這說明卷積和 self-attention 的互補對性能提升具有重大意義。而采用 PSSA 的 X-volution 性能也非常不俗,基本與 self-attention 性能相當,這也驗證了采用 PSSA 逼近 self-attention 是有效且合理的。

        消融實驗

        最后,作者詳細研究了卷積部分和 self-attention 部分對于算子性能的影響。他們改變卷積部分的濾波核的尺寸大小,其性能變化結果如圖 2(a)。可以看到當卷積核設置為 1 時候,單純的卷積算子性能退化非常嚴重,而此時的 X-volution 依然能取得 39.1 的平均準確率。當卷積核逐步增大后,純卷積的網絡性能先升后降,而對應的 X-volution 算子也呈同樣趨勢,但一直保持著對于單純卷積的性能優勢。其中,當卷積核為 7 時候性能最好。從這個結果可以得知,卷積在兩者間起到了較大的作用,這一點也與 AA-Net 結論相同。由于學習參數較多,卷積的作用也比較突出。

        7.png

        圖 2,(a) 研究不同卷積核對于性能的影響;(b) 不同形態算子的優化性能比較。

        在圖 2(b) 中,研究者展示了卷積、PSSA 和 X-volution 三種算子在 MS COCO 目標檢測上的收斂曲線。可以看到,卷積在最開始時性能優于 X-volution 和 PSSA;而經過 3 個周期訓練后,X-volution 開始超越卷積,但是作為self-attention的逼近形式,PSSA在前9個周期收斂性能稍弱于卷積。其后,X-volution 一直保持顯著的領先。PSSA 則在 10 個周期后與卷積相當或略好于卷積。這組曲線證實了卷積的局部歸納偏置對于其訓練是有明顯的幫助,而低偏置的 self-attention 則收斂顯著慢于卷積,但經過較長時間訓練后可以超越卷積。將兩者整合的 X-volution 則兼備了卷積和 self-attention 的特性,同時展現了優秀的優化特性和良好的性能。

        總結

        作者在文中提出了一種新型的算子——X-volution,整合了卷積和 self-attention 的互補特性。同時,他們從 self-attention 的公式中導出了一種巧妙的全局自注意力的逼近形式——PSSA。作者通過在分類、目標檢測、實例分割等任務中的優秀表現證實了所提出的算子的有效性。實驗也揭露了卷積與 self-attention 的配合確實能較為顯著地提升性能,并且兩者達到了實質上的特性互補。該新型算子在性能上的顯著提升、計算的通用性與即插即用性方面的巨大優勢,為深度學習基礎計算單元庫,以及 NPU 計算架構的演進提供了一種新的基礎武器。

        注:該論文作者是上海交通大學海思實習生陳炫宏和王航,由計算機視覺知名專家倪冰冰教授指導。

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



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 上思县| 绵阳市| 金平| 昆明市| 龙口市| 天长市| 永顺县| 台中县| 明水县| 高要市| 临潭县| 延寿县| 陵川县| 西峡县| 贵港市| 谷城县| 万山特区| 兴仁县| 锦屏县| 余江县| 巴林右旗| 东乌珠穆沁旗| 涡阳县| 永年县| 青神县| 广昌县| 尼勒克县| 新化县| 竹北市| 镇平县| 云霄县| 丰宁| 海林市| 泸西县| 鄂托克前旗| 徐州市| 石城县| 普定县| 平南县| 治县。| 瓮安县|