还在魔改Transformer结构吗?微软中山大学开源超强的视觉位置编码,涨点显著
作者丨小馬
編輯丨極市平臺
寫在前面
由于Transformer對于序列數據進行并行操作,所以序列的位置信息就被忽略了。因此,相對位置編碼(Relative position encoding, RPE)是Transformer獲取輸入序列位置信息的重要方法,RPE在自然語言處理任務中已被廣泛使用。
但是,在計算機視覺任務中,相對位置編碼的有效性還沒有得到很好的研究,甚至還存在爭議。因此,作者在本文中先回顧了現有的相對位置編碼方法,并分析了它們在視覺Transformer中應用的優缺點。接著,作者提出了新的用于二維圖像的相對位置編碼方法(iRPE)。iRPE考慮了方向,相對距離,Query的相互作用,以及Self-Attention機制中相對位置embedding。作為一個即插即用的模塊,本文提出的iREP是簡單并且輕量級的。
實驗表明,通過使用iRPE,DeiT和DETR在ImageNet和COCO上,與原始版本相比,分別獲得了1.5%(top-1 Acc)和1.3%(mAP)的性能提升(無需任何調參)。
論文和代碼地址
論文地址:
https://arxiv.org/abs/2107.14222
代碼地址:
https://github.com/microsoft/AutoML/tree/main/iRPE
研究動機
Transformer最近在計算機視覺領域引起了極大的關注,因為它具有強大的性能和捕獲Long-range關系的能力。然而,Transformer中的Self-Attention有一個固有的缺陷——它不能捕獲輸入token的順序。因此,Transformer在計算的時候就需要顯式的引入位置信息。
為Transformer編碼位置表示的方法主要有兩類。一個是絕對位置編碼,另一個是相對位置編碼。絕對位置編碼 將輸入token的絕對位置從1編碼到最大序列長度。也就是說,每個位置都有一個單獨的編碼向量。然后將編碼向量與輸入token組合,使得模型能夠知道每個token的位置信息。相對位置編碼 對輸入token之間的相對距離進行編碼,從而來學習token的相對關系。
這兩種編碼方式在NLP任務中都被廣泛應用,并且證明是非常有效的。但是在CV任務中,他們的有效性還沒被很好的探索。因此,在本文中,作者重新思考并改進相對位置編碼在視覺Transformer中的使用。
在本文中,作者首先回顧了現有的相對位置編碼方法,然后提出了專門用于二維圖像的方法iRPE。
方法
方法背景
絕對位置編碼
由于Transformer不包含遞歸和卷積,為了使模型知道序列的順序,需要注入一些關于token位置的信息。原始Self-Attention采用了絕對位置,并添加絕對位置編碼p=(p1,...,pn)p=(p_1,... ,p_n)p=(p1?,...,pn?)到輸入token,用公式表示如下:
相對位置編碼
除了每個輸入token的絕對位置之外,一些研究人員還考慮了token之間的相對關系。相對位置編碼使得Transformer能夠學習token之間的相對位置關系,用公式表示如下:
3.2. 回顧相對位置編碼
Shaw’s RPE
[1]提出一種Self-Attention的相對位置編碼方法。輸入token被建模為一個有向全連通圖。每條邊都代表兩個位置之間的相對位置信息。此外,作者認為精確的相對位置信息在一定距離之外是無用的,因此引入了clip函數來減少參數量,公式表示如下:
RPE in Transformer-XL
[2]為query引入額外的bias項,并使用正弦公式進行相對位置編碼,用公式表示如下:
Huang’s RPE
[3]提出了一種同時考慮query、key和相對位置交互的方法,用公式表示如下:
RPE in SASA
上面的相對位置編碼都是針對一維的序列,[4]提出了一種對二維特征進行相對位置編碼的方法,用公式表示如下:
相對位置編碼的確定
接下來,作者引入了多種相對位置編碼方式,并進行了詳細的分析。首先,為了研究編碼是否可以獨立于輸入token,作者引入了兩種相對位置模式:Bias模式和Contextual模式 。然后,為了研究方向性的重要性,作者設計了兩種無向方法和兩種有向方法 。
Bias Mode and Contextual Mode
以前的相對位置編碼方法都依賴于輸入token,因此,作者就思考了,相對位置的編碼信息能否獨立于輸入token來學習。基于此,作者引入相對位置編碼的Bias模式和Contextual模式來研究這個問題。前者獨立于輸入token,而后者考慮了與query、key或value的交互。無論是哪種模式,相對位置編碼都可以用下面的公式表示:
對于Bias模式,編碼獨立于輸入token,可以表示成:
對于Contextual 模式,編碼考慮了與輸入token之間的交互,可以表示成:
A Piecewise Index Function
由于實際距離到計算距離的關系是多對一的關系,所以首先需要定義一個實際距離到計算距離的映射函數。
先前有工作提出了采用clip函數來進行映射,如下所示:
在這種方法中,相對距離大于β\betaβ的位置分配給相同的編碼,因此丟失了遠距離相對位置的上下文信息。
在本文中,作者采用了一種分段函數將相對距離映射到相應的編碼。這個函數基于一個假設:越近鄰的信息越重要,并通過相對距離來分配注意力。函數如下:
如下圖所示,相比于先前的方法,本文提出的方法感知距離更長,并且對不同的距離分布施加了不同程度的注意力。
2D Relative Position Calculation
為了衡量二維圖像上兩個點的相對距離,作者提出了兩種無向方法 (Euclidean method,Quantization method)和兩種有向方法 (Cross method,Product method),如上圖所示。
- Euclidean method
在Euclidean method中,作者采用了歐氏距離來衡量兩個點之間的距離,如上圖a所示:
- Quantization method
在上述的Euclidean method中,具有不同相對距離的兩個距離可能映射到同一距離下標(比如二維相對位置(1,0)和(1,1)都映射到距離下標1中)。因此,作者提出Quantization method,如上圖b所示,公式如下所示:
quant(?)quant(·)quant(?)函數可以映射一組實數0,1,1.41,2,2.24,…{0,1,1.41,2,2.24,…}0,1,1.41,2,2.24,…到一組整數0,1,2,3,4,…{0,1,2,3,4,…}0,1,2,3,4,…。
- Cross method
像素的位置方向對圖像理解也很重要,因此作者又提出了有向映射方法。Cross method分別計算水平方向和垂直方向上的編碼,然后對它們進行匯總。編碼信息如上圖c所示,公式如下:
- Product method
如果一個方向上的距離相同(水平或垂直),Cross method將會把不同的相對位置編碼到相同的embedding中。因此,作者又提出了Product method,如上圖d所示,公式如下所示:
有效實現
對于Contextual模式的相對位置編碼,編碼信息可以通過下面的方式得到:
但是這么做的計算復雜度是O(n2d)O(n^2d)O(n2d),所以作者在實現的時候就只計算了不同映射位置的位置編碼,如下所示:
這樣做就可以將計算復雜度降低到O(nkd)O(nkd)O(nkd),對于圖像分割這種任務,k是遠小于n的,就可以大大降低計算量。
4.實驗
相關位置編碼分析
- Directed-Bias v.s. Undirected-Contextual
上表的結果表明了:
1)無論使用哪種方法,Contextual模式都比Bias模式具有更好的性能。
2)在視覺Transformer中,有向方法通常比無向方法表現更好。
- Shared v.s. Unshared
對于bias模式,在head上共享編碼時,準確度會顯著下降。相比之下,在contextual模式中,兩種方案之間的性能差距可以忽略不計。
- Piecewise v.s. Clip.
上表比較了clip函數和分段函數的影響,在圖像分類任務中,這兩個函數之間的性能差距非常小,甚至可以忽略不計。但是從下表中可以看出,在檢測任務中,兩個函數性能還是有明顯差距的。
- Number of buckets
bucket數量影響了模型的參數,上圖展示了不同bucket數量下,模型準確率的變化。
- Component-wise analysis
從上表可以看出,相對位置編碼和絕對位置編碼對DeiT模型的精度都有很大幫助。
- Complexity Analysis
上圖表明,本文方法在高效實現的情況下最多需要1%的額外計算成本。
在圖像分類任務上的表現
通過僅在key上添加相對位置編碼,將DeiT-Ti/DeiT-S/DeiT-B模型分別提升了1.5%/1.0%/0.6%的性能。
在目標檢測任務上的表現
在DETR中絕對位置嵌入優于相對位置嵌入,這與分類中的結果相反。作者推測DETR需要絕對位置編碼的先驗知識來定位目標。
可視化
上圖展示了Contextual模式下相對位置編碼(RPE)的可視化。
5. 總結
本文作者回顧了現有的相對位置編碼方法,并提出了四種專門用于視覺Transformer的方法。作者通過實驗證明了通過加入相對位置編碼,與baseline模型相比,在檢測和分類任務上都有比較大的性能提升。此外,作者通過對不同位置編碼方式的比較和分析,得出了下面幾個結論:
1)相對位置編碼可以在不同的head之間參數共享,能夠在contextual模式下實現與非共享相當的性能。
2)在圖像分類任務中,相對位置編碼可以代替絕對位置編碼。然而,絕對位置編碼對于目標檢測任務是必須的,它需要用絕對位置編碼來預測目標的位置。
3)相對位置編碼應考慮位置方向性,這對于二維圖像是非常重要的。
4)相對位置編碼迫使淺層的layer更加關注局部的patch。
參考文獻
[1]. Peter Shaw, Jakob Uszkoreit, and Ashish Vaswani. Self-attention with relative position representations. ACL, 2018.
[2]. Zihang Dai, Zhilin Yang, Yiming Yang, Jaime G Carbonell,Quoc Le, and Ruslan Salakhutdinov. Transformer-xl: Attentive language models beyond a fixed-length context. In ACL,2019.
[3]. Zhiheng Huang, Davis Liang, Peng Xu, and Bing Xiang. Improve transformer models with better relative position embeddings. In EMNLP, 2020
[4]. Prajit Ramachandran, Niki Parmar, Ashish Vaswani, Irwan Bello, Anselm Levskaya, and Jonathon Shlens. Standalone self-attention in vision models. arXiv preprint arXiv:1906.05909, 2019.
總結
以上是生活随笔為你收集整理的还在魔改Transformer结构吗?微软中山大学开源超强的视觉位置编码,涨点显著的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ICML2021|超越SE、CBAM,中
- 下一篇: 25+AI技术主题演讲及项目展示!英特尔