實戰級Stand-Alone Self-Attention in CV,快加入到你的trick包吧 | NeurIPS 2019

論文提出stand-alone self-attention layer,並且構建了full attention model,驗證了content-based的相互關係能夠作為視覺模型特徵提取的主要基底。在圖像分類和目標檢測實驗中,相對於傳統的卷積模型,在準確率差不多的情況下,能夠大幅減少參數量和計算量,論文的工作有很大的參考意義

來源:【曉飛的算法工程筆記】 公眾號

論文: Stand-Alone Self-Attention in Vision Models

Introduction


  目前卷積網絡的設計是提高圖像任務性能的關鍵,而卷積操作由於平移不變性使其成為了圖像分析的主力。受限於感受域的大小設定,卷積很難獲取長距離的像素關係,而在序列模型中,已經能很好地用attention來解決這個問題。目前,attention模塊已經開始應用於傳統卷積網絡中,比如channel-based的attention機制 Squeeze-Excite和spatially-aware的attention機制Non-local Network等。這些工作都是將global attention layers作為插件加入到目前的卷積模塊中,這種全局形式考慮輸入的所有空間位置,當輸入很小時,由於網絡需要進行大幅下採樣,通常特徵加強效果不好
  因此,論文提出簡單的local self-attention layer,將內容之間的關係(content-based interactions)作為主要特徵提取工具而不是卷積的增強工具,能夠同時處理大小輸入,另外也使用這個stand-alone attention layer來構建全attention的視覺模型,在圖像分類和目標定位上的性能比全卷積的baseline要好

Background


Convolution

  卷積神經網絡(CNN)通常學習小範圍(kernel sizes)的局部特徵,對於輸入$xin mathbb{R}^{htimes wtimes d_{in}}$,定義局部像素集$mathcal{N}k$為像素$x{i,j}$周圍$k$區域的像素,大小為$ktimes ktimes d_{in}$,如圖1

  對於學習到的權重$Win mathbb{R}^{ktimes ktimes d_{out}times k_{in}}$,位置$ij$的輸出$y_{ij}in mathbb{R}^{d_{out}}$通過公式1計算所得,其中$mathcal{N}_k(i,j)={a,b| |a-i|le k/2,|b-j|le k/2}$,CNN使用權重共享,$W$用於所有像素位置$ij$的輸出,權重共享使得特徵具有平移不變性以及降低卷積的參數量。目前有一些卷積的變種用以提高預測的表現,比如深度分離卷積

Self-Attention

  與傳統的attention不同,self-attention應用於單個context而不是多個context間,能夠直接建模context內長距離的交互信息,論文提出stand-alone self-attention layer用來替代卷積操作,並且構建full attention模型,這個attention layer主要是對之前的工作的一個簡化

  與卷積類似,對於像素$x_{ij}in mathbb{R}^{d_{in}}$,首先會取$x_{ij}$的$k$範圍內的局部區域像素$abin mathcal{N}_k(i,j)$,稱為memory block。與之前的all-to-all attention不同,這個attention只在局部區域進行attention操作,全局attention只有在特徵大小大幅減少後才能使用,不然會帶來很大的計算開銷

  single-headed attention計算如公式2,輸出像素$y_{ij}in mathbb{R}{d_{out}}$,首先對輸入向量進行三種變化得到3個值,查詢像素*queries*$q_{ij}=W_Qx_{ij}$,關鍵詞像素*keys*$k_{ab}=W_Kx_{ab}$以及值*values*$v_ab=W_Vx_{ab}$為像素$ij$和其附近像素的線性變化,$softmax_{ab}$應用於所有$q_{ij}top k_{ab}$,$W_Q,W_K,W_Vin mathbb{R}^{d_{out}times d_{in}}$為學習到的變化。與公式1的卷積類似,local self-attention通過結合混合權重($softmax_{ab}(cdot)$)與值向量進行輸出,每個位置$ij$都重複上述步驟
  在實際中,使用multiple attention heads來學習輸入的多個獨立表達,將像素特徵$x_{ij}$分為$N$組$x_{ij}^nin mathbb{R}{d_{in}/N}$,每個head用不同的變化$W_Qn,W_Kn,W_Vnin R^{d_{out}/Ntimes d_{in}/N}$進行single-headed attention計算,最後將結果concatenate成最終的輸出$y_{ij}in mathbb{R}^{d_{out}}$

  公式2中沒有使用位置信息,而之前的研究指出相對位置編碼能提升self-attention帶來明顯的提升。因此,使用二維相對位置編碼(relative attention),將行偏移$a-i$和列偏移$b-j$的編碼進行concatenate成$r_{a-i,b-j}$,如圖4,最後將公式2變成公式3的spatial-relative attention,同時考慮query和key的內容間的相似性以及相對位置。由於考慮了相對位置,self-attention也擁有了類似卷積的平移不變性。另外,參數量的計算跟空間區域的大小無關,只稍微$d_{in}$和$d_{out}$有關,而且增長很慢

Fully Attentional Vision Model


Replacing Spatial Convolution

  空間卷積為區域$k>1$的卷積,論文將所有的空間卷積替換成attention layer,若需要下採樣,則在層後接一個stride為2的$2times 2$平均池化。整體模型基於ResNet系列,將bottleneck block中的$3times 3$卷積替換成公式3的self-attention layer,其餘不變

Replacing the Convolutional Stem

  卷積神經網絡的初始幾層稱為stem,主要用於學習例如邊(edge)的局部特徵,後面的層用來分辨整體目標。stem與核心block結構不一樣,一般主要為輕量級的下採樣操作。在ResNet中,stem由stride為2的$7times 7$卷積接stride為2的$3times 3$的max pooling組成。而stem中的內容包含RGB像素,這些像素是高度空間相關的,獨立起來則失去了意義,沒有豐富的content信息,使用content-based的公式3(會基於內容softmax weight)來替換stem中的卷積層會十分困難

  卷積的卷積核不同位置有不同的權重,有利於學習特定的邊特徵,為了減少這個偏差,在pointwise的$1times 1$卷積($W_V$)中加入距離相關的信息進行空間的線性變化,得到$tilde{v}_{ab}=(sum_m p(a,b,m)W_Vm)x_{ab}$,為多值矩陣$W_Vm$是與鄰近像素的$p(a,b,m)$的凸組合,$p(a,b,m)$可以認為是多值矩陣的權重。由於不同相對位置的emb不同,所以同一個像素點在不同的相對距離下就有不同的值,類似與卷積的屬性,有利於邊特徵學習

Experiments


ImageNet Classification

  multi-head self-attention的區域範圍$k=7$,8個attention head,stem在原圖的$4times 4$區域進行self-attention,後接一個batch normalization和$4times 4$的max pool。從結果來看,對比ResNet-50,full attention準確率高0.7%,參數量和計算量分別少12%和29%

COCO Object Detection

  基於RetinaNet進行主幹網絡和FPN的替換進行實驗,使用attention-based主幹準確率差不多,且能夠直接減少22%參數,而對主幹網絡和FPN同時替換成attention layer則能進一步下降34%參數和39%計算量

Where is stand-alone attention most useful

  • Stem

  從表1、表2和圖5可以看出,對於分類,convolution stem表現較好,對於目標檢測,在FPN為卷積時,convolution stem表現較好,而當其它部分都為full attention時,則表現差不多

  • Full network

  論文比較有意思,基於convolution stem,將替換的粒度精確到某一個group,將convolution用在前面的group能夠提升性能,相反則會造成下降,論文解釋為卷積能更好地提取低維特徵,但是這裡應該是同一維度的,所以這裡值得商榷

Which components are important in attention?

  • Effect of spatial extent of self-attention

  • Importance of positional information

  論文對比公式3中$r_{a-i,b-i}$的位置編碼,相對位置編碼準確率最高

  表6結果表明,content-relative的交互信息$(qcdot r)$是比較重要的

  • Importance of spatially-aware attention stem

CONCLUSION


  論文提出stand-alone self-attention laer,並且構建了full attention model,驗證了content-based的相互關係能夠作為視覺模型特徵提取的主要基底。在圖像分類和目標檢測實驗中,相對於傳統的卷積模型,在準確率差不多的情況下,能夠大幅減少參數量和計算量,論文的工作有很大的參考意義



寫作不易,未經允許不得轉載~
更多內容請關注 微信公眾號【曉飛的算法工程筆記】

work-life balance.