用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

機器之心發表於2019-04-26

2014 年,Bahdanau 等人針對機器翻譯任務提出了注意模型,現在它已成為一種常用的神經網路方法。近日,谷歌大腦在 arXiv 上公佈了一篇新論文,提出使用注意機制增強卷積以加強獲取全域性相關性的能力。在影象分類目標檢測上的實驗結果表明這種方法確實有效。

卷積神經網路(CNN)在大量計算機視覺應用中取得了極大成功,尤其是影象分類。卷積層的設計需要通過受限的感受野來確保區域性性(locality),以及通過權重共享來確保平移等效性(translation equivariance)。研究表明,這兩種屬性是設計影象處理模型時關鍵的歸納偏置。但是,卷積核固有的區域性性使它無法得到影象中的全域性語境;而為了更好地識別影象中的物件,全域性語境必不可少。

自注意力(self-attention)機制是獲取長程互動性方面的一項近期進展,但主要還只是用在序列建模和生成式建模任務上。自注意機制背後的關鍵思路是求取隱藏單元計算出的值的加權平均。不同於池化或卷積運算元,用在加權平均運算中的權重是通過隱藏單元之間的相似度函式動態地得到的。由此,輸入訊號之間的互動就取決於訊號本身,而不是由它們的相對位置預先確定。尤其值得提及的是,這使得自注意機制能在不增多引數的前提下獲取長城互動性。

這篇論文研究了將自注意(用作卷積的替代)用於判別式視覺任務的問題。研究者開發了一種全新的二維相對自注意機制,能夠在納入相對位置資訊的同時維持平移等效性,這使得其非常適用於影象。研究表明,這種自注意方案非常有競爭力,足以完全替代卷積。儘管如此,對照實驗表明,將自注意與卷積兩者結合起來得到的結果最佳。因此,完全擯棄卷積思想是不妥的,而應該使用這種自注意機制來增強卷積。其實現方式是將卷積特徵圖(強制區域性性)連線到自注意特徵圖(能夠建模更長程的依賴)。

圖 1 展示了這種注意增強方法在影象分類任務上的改進效果。

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

圖 1:注意增強能系統性地改善不同規模的不同型別網路的影象分類結果。這裡展示了不同引數量下不同模型的 ImageNet 分類準確度,其中 ResNet 是基準模型、SE-ResNet 使用了通道式注意增強、AA-ResNet 是本論文新提出的架構。

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

圖 2:注意增強型卷積:對於每個空間位置 (h, w),都根據查詢和鍵值在影象上計算出 N_h 個注意圖(attention map)。這些注意圖被用於計算 N_h 個這些值的加權平均 V。然後將所得結果連線起來,再重新調整形狀以匹配原來的體空間維度並與一個逐點卷積混合。多頭注意是以並行的方式應用於標準的卷積運算,輸出再連線到一起。

新方法在 CIFAR-100 和 ImageNet 分類任務以及 COCO 目標檢測任務上進行了測試,涉及到多種不同的架構和不同的計算成本預算,包括一種當前最佳的資源受限型架構。注意增強僅需極少量的計算負擔就能實現系統性的改善,並且在所有實驗中都明顯優於流行的 Squeeze-and-Excitation 通道式注意方法。尤其值得提及的是,注意增強在 ImageNet 上實現的 top-1 準確度優於 ResNet50 基準 1.3%,在 COCO 目標檢測上超過 RetinaNet 基準 1.4 mAP。實驗還有個讓人驚訝的結果:在 ImageNet 上全自注意模型(注意增強的一種特例)的表現僅略遜於對應的全卷積模型,這說明自注意本身就是一種強大的影象分類基本方法。

論文:Attention Augmented Convolutional Networks

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

論文連結:https://arxiv.org/pdf/1904.09925.pdf

在很多計算機視覺應用中,卷積網路都是首選正規化。但是,卷積運算有一個顯著缺陷,即僅在區域性近鄰上工作,也由此會錯失全域性資訊。另一方面,自注意則是獲取長程互動性方面的一項近期進展,但還主要應用於序列建模和生成建模任務上。在這篇論文中,我們研究了將自注意(作為卷積的替代)用於判別式視覺任務的問題。我們提出了一種全新的二維相對自注意機制,研究表明這足以在影象分類任務上替代卷積作為一種單獨的原語。我們在對照實驗中發現,當結合使用卷積與自注意時所得到的結果最好。因此我們提出使用這種自注意機制來增強卷積運算元,具體做法是將卷積特徵圖與通過自注意產生的一組特徵圖連線起來。我們使用不同規模不同型別的模型(其中包括 ResNet 和一種當前最佳的可移動式受限網路)進行了廣泛的實驗,結果表明注意增強能在 ImageNet 影象分類與 COCO 目標檢測任務上實現穩定的提升,同時還能保證引數數量大體接近。尤其值得提及的是,我們的方法在 ImageNet 上實現的 top-1 準確度優於 ResNet50 基準 1.3%,並且也優於 Squeeze-and-Excitation 等其它用於影象的注意機制。我們的方法還在 COCO 目標檢測上超過 RetinaNet 基準 1.4 mAP。

方法

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

圖 2:注意增強型卷積。

我們現在用數學形式描述新提出的注意增強方法。我們使用的符號表示為:H、W、F_in 分別表示一個啟用圖的高度、寬度和輸入過濾器的數量。N_h、d_v 和 d_k 分別是指多頭注意(multihead-attention / MHA)中頭(head)的數量、值的深度、查詢和鍵值的深度。我們進一步假設 N_h 均勻地劃分 d_v 和 d_k,並用用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)分別表示每個注意頭的值和查詢/鍵值的深度。

自注意

給定一個形狀為 (H, W, F_in) 的輸入張量,我們將其展開為一個矩陣用自注意力增強卷積:這是新老兩代神經網路的對話(附實現),並如 Transformer 架構提出的那樣執行多頭注意。則單個頭 h 的自注意機制輸出為

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

其中,用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)是可學習的線性變換,它們分別將輸入 X 對映查詢 Q、鍵值 K 和值 V。

所有頭的輸出可以連線起來: 

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

其中用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)也是一個線性變換。然後再將 MHA(X) 的調整為形狀為 (H, W, d_v) 的張量

注意增強型卷積

不同於之前的方法,我們使用的注意機制可以聯合注意空間子空間和特徵子空間;另外我們是引入額外的特徵圖,而不是對它們進行精細化處理。圖 2 總結了我們提出的增強型卷積。

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

圖 3:注意增強型 2D 卷積的 Python 程式碼

實驗

我們在 CIFAR100、ImageNet 和 COCO 資料集上通過 ResNet 和 MnasNet 等標準計算機視覺架構對注意增強方法進行了實驗測試。結果表明,在不同的架構和計算需求上,注意增強都能在影象分類目標檢測任務上實現系統性的提升。我們也通過消融實驗評估了所提出的二維相對注意機制。在所有的實驗中,我們都用自注意特徵圖替代卷積特徵圖,因為這能與基準模型進行更輕鬆的比較。除非另有說明,所有結果都對應於我們的二維相對自注意機制。

CIFAR-100 影象分類 

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

表 1:使用 Wide-ResNet 28-10 架構在 CIFAR-100 資料集上的影象分類結果。我們比較了基準模型與引數更少的 Gather-Excite (GE)、Squeeze-Excite (SE) 和新提出的注意增強 (AA) 的 top-1 與 top-5 準確度。

使用 ResNet 的 ImageNet 影象分類

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

表 2:不同 ResNet 架構在 ImageNet 資料集上的影象分類結果。

使用 MnasNet 的 ImageNet 影象分類

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

表 3:寬度乘數為 0.75、1.0、1.25 和 1.4 時,基準和注意增強的 MnasNet 的準確度。

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

圖 4:MnasNet(黑)和注意增強型 MnasNet(紅)的 ImageNet top-1 準確度隨引數數量的變化,深度乘數為 0.75、1.0、1.25 和 1.4。

基於 COCO 資料集的目標檢測

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

表 4:使用不同骨幹架構的 ResNet 架構在 COCO 資料集上的目標檢測結果。我們報告了在三個不同 IoU 值上的平均精度均值。

控制變數實驗

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

表 5:使用不同注意通道比例的注意增強型 ResNet-50。

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

圖 5:在我們的注意增強型 ResNet50 上,隨注意通道的比例增加的相對位置嵌入的效果。

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

表 6:在 ImageNet 分類上,注意增強中不同位置編碼的效果

用自注意力增強卷積:這是新老兩代神經網路的對話(附實現)

表 7:在 COCO 目標檢測任務上,使用 RetinaNet AA-ResNet-50 骨幹時注意增強中不同位置編碼的效果。

實現

該論文中展示了這一新方法的 TensorFlow 實現。近日,研究者 Myeongjun Kim 開源了其對該方法的 PyTorch 實現。

PyTorch 實現地址:https://github.com/leaderj1001/Attention-Augmented-Conv2d

其中包括兩個版本的實現:

相關文章