<cite id="9vvnb"></cite>
<cite id="9vvnb"></cite>
<var id="9vvnb"><strike id="9vvnb"></strike></var>
<menuitem id="9vvnb"><strike id="9vvnb"><listing id="9vvnb"></listing></strike></menuitem>
<cite id="9vvnb"><video id="9vvnb"></video></cite>
<cite id="9vvnb"></cite>
<cite id="9vvnb"><video id="9vvnb"></video></cite>
<var id="9vvnb"></var>
<cite id="9vvnb"></cite><cite id="9vvnb"><span id="9vvnb"></span></cite>
<cite id="9vvnb"><span id="9vvnb"><menuitem id="9vvnb"></menuitem></span></cite>

ICCV2021 | Vision Transformer中相對位置編碼的反思與改進

?前言  

在計算機視覺中,相對位置編碼的有效性還沒有得到很好的研究,甚至仍然存在爭議,本文分析了相對位置編碼中的幾個關鍵因素,提出了一種新的針對2D圖像的相對位置編碼方法,稱為圖像RPE(IRPE)。

本文來自公眾號CV技術指南的論文分享系列

關注公眾號CV技術指南 ,專注于計算機視覺的技術總結、最新技術跟蹤、經典論文解讀。

圖片?

代碼:https://github.com/microsoft/Cream/tree/main/iRPE

 

Background


Transformer的核心是self-attention,它能夠按順序對tokens之間的關系進行建模。然而,self-attention有一個固有的缺陷-它不能捕獲輸入tokens的順序。因此,合并位置信息的顯式表示對于Transformer特別重要,因為模型在其他方面完全不受序列排序的影響,這對于對結構化數據進行建模是不可取的。

transformer位置表示的編碼方法主要有兩類。一個是絕對的,另一個是相對的。

絕對方法將輸入tokens的絕對位置從1編碼到最大序列長度。也就是說,每個位置都有單獨的編碼向量。然后將編碼向量與輸入Tokens組合,以將位置信息輸入給模型。

相對位置方法對輸入tokens之間的相對距離進行編碼,并學習tokens之間的成對關系。相對位置編碼(relative position encoding, RPE)通常通過具有與self-attention模塊中的 query 和 key 交互的可學習參數的查詢表來計算。這樣的方案允許模塊捕獲Tokens之間非常長的依賴關系。

相對位置編碼在自然語言處理中被證明是有效的。然而,在計算機視覺中,這種效果仍然不清楚。最近很少有文獻對其進行闡述,但在Vision Transformer方面卻得出了有爭議的結論。

例如,Dosovitski等人觀察到相對位置編碼與絕對位置編碼相比沒有帶來任何增益。相反,Srinivaset等人發現相對位置編碼可以誘導明顯的增益,優于絕對位置編碼。此外,最近的工作聲稱相對位置編碼不能和絕對位置編碼一樣好用。這些工作對相對位置編碼在模型中的有效性得出了不同的結論,這促使我們重新審視和反思相對位置編碼在Vision Transformer中的應用。

另一方面,語言建模采用原始相對位置編碼,輸入數據為一維單詞序列。但對于視覺任務,輸入通常是2D圖像或視頻序列,其中像素具有高度空間結構。目前尚不清楚:從一維到二維的擴展是否適用于視覺模型;方向信息在視覺任務中是否重要?

 

Contributions


本文首先回顧了現有的相對位置編碼方法,然后針對二維圖像提出了新的編碼方法。做了以下貢獻。

1.分析了相對位置編碼中的幾個關鍵因素,包括相對方向、上下文的重要性、query、key、value和相對位置嵌入之間的交互以及計算代價。該分析對相對位置編碼有了全面的理解,并為新方法的設計提供了經驗指導。

2.提出了一種高效的相對編碼實現方法,計算成本從原始O()降低到O(nkd)(其中k<<n),適用于高分辨率輸入圖像,如目標檢測、語義分割等Tokens數可能非常大的場合。

3.綜合考慮效率和通用性,提出了四種新的vision transformer的相對位置編碼方法,稱為image RPE(IRPE)。這些方法很簡單,可以很容易地插入self-attention層。實驗表明,在不調整任何超參數和設置的情況下,該方法在ImageNet和COCO上分別比其原始模型DeiTS和DETR-ResNet50提高了1.5%(top-1ACC)和1.3%(MAP)。

4.實驗證明,在圖像分類任務中,相對位置編碼可以代替絕對編碼。同時,絕對編碼對于目標檢測是必要的,其中像素位置對于目標定位是重要的。

 

Methods


首先,為了研究編碼是否可以獨立于輸入嵌入,論文引入了兩種相對位置模式:偏置模式(Bias Mode)和上下文模式(Contextual Mode)。與傳統的裁剪函數(Clip function)不同,論文提出了一種分段函數(Piecewise function)來將相對位置映射到編碼。之后,為了研究方向性的重要性,論文設計了兩種非定向方法和兩種定向方法。

 

Bias Mode和Contextual Mode

以前的相對位置編碼方法都依賴于輸入嵌入。它帶來了一個問題,即編碼是否可以獨立于輸入?論文引入了相對位置編碼的偏置模式和上下文模式來研究這一問題。前者與輸入嵌入無關,后者考慮與query、key或value的交互。

用一個統一的公式來表示,即

圖片?

其中b_ij是2D相對位置編碼,用來定義偏置或上下文模式。

對于偏置模式,b_ij = r_ij,其中r_ij是可學習標量,并且表示位置i和j之間的相對位置權重。

對于上下文模式,

圖片?

其中r_ij是與query嵌入交互的可訓練向量。上下文模式有多個變體,這里不一一例舉,有需要者請看論文。

 

Piece Index Function

在描述二維相對位置權值之前,首先引入一個多對一函數,將一個相對距離映射為有限集合中的一個整數,然后以該整數為索引,在不同的關系位置之間共享編碼。這樣的索引函數可以極大地減少長序列(例如高分辨率圖像)的計算成本和參數數量。

盡管在[18]中使用的裁剪函數h(X)=max(?β,min(β,x))也降低了成本,但是將相對距離大于β的位置分配給相同的編碼。這種方法不可避免地遺漏了遠程相對位置的上下文信息。

論文引入了一個分段函數g(x):R→{y∈Z|?β≤y≤β},用于索引到相應編碼的相對距離。該函數基于一個假設,即較近的鄰居比較遠的鄰居更重要,并通過相對距離來分配注意力。它表示為

圖片?

其中[·]是舍入運算,Sign()確定數字的符號,即正輸入返回1,負輸入返回-1,反之返回0。α確定分段點,β控制輸出在[?β,β]范圍內,γ調整對數部分的曲率。

圖片?

將分段函數h(X)與剪裁函數h(X)=min(?β,max(β,x))進行比較。在圖2中,裁剪函數h(X)分布均勻的注意力,省略遠距離的位置,但分段函數g(x)根據相對距離分布不同的注意力水平。作者認為應該保留遠程位置的潛在信息,特別是對于高分辨率圖像或需要遠程特征依賴的任務,因此選擇g(X)來構造映射方法。

 

2D相對位置計算

1.歐氏距離方法(Euclidean Method):計算兩個相對位置的歐氏距離,將距離通過一個可學習的偏置標量或上下文向量映射到相應的編碼。

 

2.量化方法(Quantization Method ):在上述歐氏距離方法中,較近的兩個相對距離不同的鄰居可以映射到同一個索引中,例如二維相對位置(1,0)和(1,1)都映射到索引1中,而應該將最近的鄰居分開。因此,需要將歐式距離量化,即不同的實數映射成不同的整數。

圖片?

quant(·)將一組實數{0,1,1.41,2,2.24,...}映射為一組整數{0,1,2,3,4,...}。此方法也是非定向的。

 

3.交叉法(Cross Method)。像素的位置方向對圖像也很重要,因此提出了有向映射方法。這種方法被稱為Cross方法,它分別在水平和垂直方向上計算編碼,然后對它們進行匯總。該方法如下給出,

圖片?

其中p?xi(i,j)和p?yi(i,j)在偏置模式下都是可學習標量,或者在上下文模式下都是可學習向量。與SASA中的編碼類似,相同的偏移量在x軸或y軸上共享相同的編碼,但主要區別在于我們使用分段函數根據相對距離來分配注意力。

 

4.乘積法(Product Method)。如果一個方向上的距離相同,無論是水平距離還是垂直距離,交叉方法都會將不同的相對位置編碼到同一嵌入中。此外,交叉法帶來額外的計算開銷。為了提高效率和包含更多的方向性信息,論文設計了乘積方法,其公式如下

圖片?

 

一個高效的實現方法

在上下文模式中,以上所有的方法都有一個共同的部分:。

計算這個部分需要時間復雜度O(),其中n和d分別表示輸入序列的長度和特征通道的數目。由于I(i,j)的多對一特性,集合I(i,j)的大小K通常小于vision transformer。因此,論文提供如下高效實現:

圖片?

它花費O(nkd)的時間復雜度預計算所有的z_i,t,然后通過映射t=i(i,j)將zi_,t賦給那個共同表達式。賦值運算的時間復雜度為O(N^2),其代價比預計算過程小得多。因此,相對位置編碼的計算成本也從原來的 O() 降低到 O(nkd)。

 

Conclusion


1. 四種方法的兩種模式之間的比較。

圖片?

在vision transformer中,有向方法(交叉和乘積)通常比無向方法(歐式距離和量化)表現得更好。這一現象說明了方向性對于vision transformer是很重要的,因為圖像像素具有高度的結構化和語義相關性。

無論使用哪種方法,上下文模式都實現了優于偏置模式的性能。潛在的原因可能是上下文模式改變了帶有輸入特征的編碼,而偏置模式保持靜態。

 

2.相對位置編碼可以在不同頭部之間共享或不共享的結果比較。

圖片?

對于偏置模式,當在頭部之間共享編碼時,準確度會顯著下降。相比之下,在上下文模式下,兩個方案之間的性能差距可以忽略不計。這兩種方法的平均TOP-1準確率都達到了80.9%。

論文推測,不同的頭部需要不同的相對位置編碼(RPE)來捕捉不同的信息。在上下文模式下,每個頭部可以通過公式計算自己的RPE。當處于偏置模式時,共享RPE強制所有頭部對patches給予相同的關注。

 

3.分段函數和裁剪函數的比較

圖片?

在圖像分類任務中,這兩個函數之間的性能差距非常小,甚至可以忽略不計。然而,在目標檢測任務中,裁剪函數比分段函數差。其根本原因在于,當序列長度較短時,這兩個函數非常相似。分段函數是有效的,特別是當序列大小遠遠大于buckets的數量時。(注:作者把P_I(i,j)作為一個bucket(桶),用于存儲相對位置權重)

與分類相比,目標檢測使用分辨率高得多的輸入,導致輸入序列長得多。因此,推測當輸入序列較長時,應該使用分段函數,因為它能夠將不同的注意力分配到距離相對較大的位置,而當相對距離大于β時,裁剪函數分配相同的編碼。

 

4.在ImageNet上與其它SOTA模型的比較

圖片?

 歡迎關注公眾號 CV技術指南 ,專注于計算機視覺的技術總結、最新技術跟蹤、經典論文解讀。

在公眾號中回復關鍵字 “入門指南“可獲取計算機視覺入門所有必備資料

??

 

其它文章

ICCV2021 | TransFER:使用Transformer學習關系感知的面部表情表征

2021-視頻監控中的多目標跟蹤綜述

統一視角理解目標檢測算法:最新進展分析與總結

圖像修復必讀的 10 篇論文  |    HOG和SIFT圖像特征提取簡述

全面理解目標檢測中的anchor    |    實例分割綜述總結綜合整理版
單階段實例分割綜述    |    小目標檢測的一些問題,思路和方案

目標檢測中回歸損失函數總結    |    小目標檢測常用方法總結

視覺Transformer綜述    |    2021年小目標檢測最新研究綜述

Siamese network綜述    |    姿態估計綜述    |    語義分割綜述

CVPR2021 | SETR: 使用 Transformer 從序列到序列的角度重新思考語義分割

深度學習模型大小與模型推理速度的探討

視頻目標檢測與圖像目標檢測的區別

CV算法工程師的一年工作經驗與感悟

視頻理解綜述:動作識別、時序動作定位、視頻Embedding

從CVPR 2021的論文看計算機視覺的現狀

ICCV2021 | MicroNet:以極低的 FLOPs 改進圖像識別

ICCV2021 | 深度理解CNN

ICCV2021 | 重新思考視覺transformers的空間維度

CVPR2021 | TransCenter: transformer用于多目標跟蹤算法

CVPR2021 | 開放世界的目標檢測

CVPR2021 | TimeSformer-視頻理解的時空注意模型

CVPR2021 | 一個高效的金字塔切分注意力模塊PSA

CVPR2021 | 特征金字塔的新方式YOLOF

經典論文系列 | 膠囊網絡:新的深度學習網絡

經典論文系列 | 重新思考在ImageNet上的預訓練

經典論文系列 | Group Normalization & BN的缺陷

經典論文系列 | 目標檢測--CornerNet  & 又名 anchor boxes的缺陷

經典論文系列 | 縮小Anchor-based和Anchor-free檢測之間差距的方法:自適應訓練樣本選擇

?

posted @ 2021-11-20 16:29  CV技術指南(公眾號)  閱讀(0)  評論(0編輯  收藏  舉報
黄色网站在现免费看_黄色网站在线18P_黄色网站在线播放