清華大學提出DAT | DCN+Swin Transformer會碰撞出怎樣的火花???


最近,Transformer在各種視覺任務上都表現(xiàn)出了卓越的表現(xiàn)。有時Transformer模型比CNN模型具有更高的表現(xiàn)能力。然而,單純擴大感受野也會引起一些問題。一方面,在ViT中使用密集的注意力會導致內(nèi)存和計算成本過高,特征會受到超出興趣區(qū)域的不相關部分的影響。另一方面,在PVT或Swin Transformer 中采用的稀疏注意里力是數(shù)據(jù)不可知的,可能會限制建模長期關系的能力。
為了緩解這些問題,本文提出了一種新的可變形的自注意力模塊,該模塊以數(shù)據(jù)依賴的方式選擇了自注意力中的key和value對的位置。這種靈活的方案使自注意力模塊能夠聚焦于相關區(qū)域并捕獲更多信息。在此基礎上,提出了一種可變形注意力Transformer(Deformable Attention Transformer)模型,該模型具有可變形注意力,適用于圖像分類和密集預測任務。大量的實驗表明,本文的模型在綜合基準上取得了持續(xù)改進的結果。
1簡介
Transformer最初是用來解決自然語言處理任務的。它最近在計算機視覺領域顯示出巨大的潛力。先鋒工作Vision Transformer(ViT)將多個Transformer塊堆疊在一起,以處理非重疊的圖像patch(即視覺Token)序列,從而產(chǎn)生了一種無卷積的圖像分類模型。與CNN模型相比,基于Transformer的模型具有更大的感受野,擅長于建模長期依賴關系,在大量訓練數(shù)據(jù)和模型參數(shù)的情況下取得了優(yōu)異的性能。然而,視覺識別中的過度關注是一把雙刃劍,存在多重弊端。具體來說,每個query patch中參與的key數(shù)過多會導致較高的計算成本和較慢的收斂速度,并增加過擬合的風險。
為了避免過度的注意力計算,已有的研究利用精心設計的有效注意力模式來降低計算復雜度。其中有兩種具有代表性的方法:
Swin Transformer采用基于Window的局部注意力來限制Local Window中的注意力;
Pyramid Vision Transformer(PVT)則通過對key和value特征映射進行采樣來節(jié)省計算量。
手工設計的注意力模式雖然有效,但不受數(shù)據(jù)影響,可能不是最佳的。相關的key/value很可能被刪除,而不太重要的key/value仍然保留。
理想情況下,給定query的候選key/value集應該是靈活的,并且能夠適應每個單獨的輸入,這樣就可以緩解手工制作的稀疏注意力模式中的問題。事實上,在cnn的文獻中,學習卷積濾波器的可變形感受野已被證明在依賴于數(shù)據(jù)的基礎上有選擇性地關注更多信息區(qū)域時是有效的。
最值得注意的工作,Deformable Convolution Networks(DCN),已經(jīng)在許多具有挑戰(zhàn)性的視覺任務上產(chǎn)生了令人印象深刻的結果。這促使想在Vision ?Transformer中探索一種可變形的注意力模式。然而,這種想法的簡單實現(xiàn)會導致不合理的高內(nèi)存/計算復雜度:
由Deformable offsets引入的開銷是patch數(shù)量的平方。因此,盡管最近的一些工作研究了變形機制的思想,但由于計算成本高,沒有人將其作為構建強大的Backbone(如DCN)的基本構件。相反,它們的可變形機制要么在檢測頭中采用,要么作為預處理層對后續(xù)Backbone的patch進行采樣。

本文提出了一種簡單有效的可變形的自注意力模塊,并在此模塊上構造了一個強大的Pyramid Backbone,即可變形的注意力Transformer(Deformable Attention Transformer, DAT),用于圖像分類和各種密集的預測任務。
不同于DCN,在整個特征圖上針對不同像素學習不同的offset,作者建議學習幾組query無關的offset,將key和value移到重要區(qū)域(如圖1(d)所示),這是針對不同query的全局注意力通常會導致幾乎相同的注意力模式的觀察結果。這種設計既保留了線性空間的復雜性,又為Transformer的主干引入了可變形的注意力模式。
具體來說:
對于每個注意力模塊,首先將參考點生成為統(tǒng)一的網(wǎng)格,這些網(wǎng)格在輸入數(shù)據(jù)中是相同的; 然后,offset網(wǎng)絡將query特征作為輸入,并為所有參考點生成相應的offset。這樣一來,候選的key /value被轉(zhuǎn)移到重要的區(qū)域,從而增強了原有的自注意力模塊的靈活性和效率,從而捕獲更多的信息特征。
2相關工作
2.1 ViT Backbone
自引入ViT以來,改進的重點是密集預測任務的多尺度特征學習和高效的注意力機制。這些注意力機制包括Window Attention、Global Token、Focal Attention和動態(tài)Token Size。
最近,基于卷積的方法被引入到Vision Transformer模型中。其中,已有的研究集中在用卷積運算來補充變壓器模型,以引入額外的電感偏差。CvT在標記化過程中采用卷積,利用步幅卷積來降低自注意的計算復雜度。帶卷積莖的ViT建議在早期添加卷積,以實現(xiàn)更穩(wěn)定的訓練。CSwin Transformer采用了基于卷積的位置編碼技術,并顯示了對下游任務的改進。這些基于卷積的技術中有許多可以應用于DAT之上,以進一步提高性能。
2.2 DCN和Attention
可變形卷積是一種強大的機制,可以處理基于輸入數(shù)據(jù)的靈活空間位置。最近,它已被應用于Vision Transformer。Deformable ?DETR通過在CNN Backbone的頂部為每個query選擇少量的key來提高DETR的收斂性。由于缺少key限制了其表示能力,其Deformable ?Attention不適合用于特征提取的視覺Backbone。
此外,Deformable ?DETR中的注意力來自簡單的線性投影,query token之間不共享key。DPT和PS-ViT構建Deformable ?Block來細化視覺token。具體來說,DPT提出了一種Deformable ?Patch Embedding方法來細化跨階段的Patch,PS-ViT在ViT Backbone前引入了空間采樣模塊來改善視覺Token。它們都沒有把Deformable Attention納入視覺中樞。相比之下,本文的Deformable Attention采用了一種強大而簡單的設計,來學習一組在視覺token之間共享的全局key,并可以作為各種視覺任務的一般Backbone。本文方法也可以看作是一種空間適應機制,它在各種工作中被證明是有效的。
3Deformable Attention Transformer

3.1 Preliminaries
首先在最近的Vision Transformer中回顧了注意力機制。以Flatten特征圖為輸入,M頭自注意力(MHSA)塊表示為:

其中,表示softmax函數(shù),d=C/M為每個Head的尺寸。z(m)表示第m個注意力頭的嵌入輸出,分別表示query、key和value嵌入。是投影矩陣。為了建立一個Transformer Block,通常采用一個具有2個線性變換和一個GELU激活的MLP塊來提供非線性。
通過歸一化層和shortcuts,第1個Transformer Block被表示為:

其中LN表示層歸一化。
3.2 Deformable Attention
現(xiàn)有的分層Vision Transformer,特別是PVT和Swin Transformer試圖解決過度關注的問題。前者的降采樣技術會導致嚴重的信息丟失,而后者的注意力轉(zhuǎn)移會導致感受野的增長要慢得多,這限制了建模大物體的潛力。因此,需要依賴數(shù)據(jù)的稀疏注意力來靈活地建模相關特征,這也孕育了在DCN中提出的可變形的機制。
然而,簡單地在Transformer模型中實現(xiàn) DCN 是一個重要的問題。在DCN中,特征圖上的每個元素分別學習其offset,其中H×W×C特征圖上的3×3可變形卷積的空間復雜度為9HWC。如果直接在自注意力模塊應用相同的機制,空間復雜度將急劇上升到,、為query和key的數(shù)量,通常有相同的尺度特征圖大小HW,帶來近似雙二次復雜度。
雖然Deformable DETR通過在每個檢測頭設置更少的key()來減少這個計算開銷,但是,在Backbone中,這樣少的key是次要的,因為這樣的信息丟失是不可接受的(見附錄中的詳細比較)。
同時,在先前的工作中的觀察顯示,不同的query在視覺注意力模型中具有相似的注意力圖。因此,選擇了一個更簡單的解決方案,為每個query共享移動的key和value以實現(xiàn)有效的權衡。
具體來說,本文提出了Deformable Attention,在特征映射中重要區(qū)域的引導下,有效地建模Token之間的關系。這些集中的regions由offset網(wǎng)絡從query中學習到的多組Deformable sampling點確定。采用雙線性插值對特征映射中的特征進行采樣,然后將采樣后的特征輸入key投影得到Deformable Key。
1、Deformable注意力模塊

如圖2(a)所示,給定輸入特征圖,生成一個點的統(tǒng)一網(wǎng)格作為參考。具體來說,網(wǎng)格大小從輸入的特征圖大小降采樣一個系數(shù),,。參考點的值為線性間隔的2D坐標,然后根據(jù)網(wǎng)格形狀將其歸一化為范圍,其中表示左上角,表示右下角。
為了獲得每個參考點的offset,將特征映射線性投影到query token ,然后輸入一個輕量子網(wǎng)絡,生成偏移量。為了穩(wěn)定訓練過程,這里用一些預定義的因子來衡量的振幅,以防止太大的offset,即。然后在變形點的位置進行特征采樣,作為key和value,然后是投影矩陣:

和分別表示deformed ?key嵌入和value嵌入。具體來說,將采樣函數(shù)設置為雙線性插值,使其可微:

其中和索引了的所有位置。由于只在最接近的4個積分點上不為零,因此它簡化了Eq(8)到4個地點的加權平均值。與現(xiàn)有的方法類似,對進行多頭注意力,并采用相對位置偏移。注意力頭的輸出被表述為:

其中對應于位置嵌入,同時有一些適應。詳細信息將在本節(jié)的后面進行解釋。每個頭部的特征連接在一起,通過投影得到最終輸出z。
2、Offset生成
如前面所述,采用一個子網(wǎng)絡進行Offset的生成,它分別消耗query特征和輸出參考點的offset值??紤]到每個參考點覆蓋一個局部的s×s區(qū)域(×是偏移的最大值),生成網(wǎng)絡也應該有對局部特征的感知,以學習合理的offset。

因此,將子網(wǎng)絡實現(xiàn)為2個具有非線性激活的卷積模塊,如圖2(b)。所示輸入特征首先通過一個5×5的深度卷積來捕獲局部特征。然后,采用GELU激活和1×1卷積得到二維偏移量。同樣值得注意的是,1×1卷積中的偏差被降低,以緩解所有位置的強迫性偏移。
3、Offset groups
為了促進變形點的多樣性,在MHSA中遵循類似的范式,并將特征通道劃分為G組。每個組的特征分別使用共享的子網(wǎng)絡來生成相應的偏移量。在實際應用中,注意力模塊的Head數(shù)M被設置為偏移組G大小的倍數(shù),確保多個注意力頭被分配給一組deformed keys 和 values 。
4、Deformable相對位置偏差
相對位置偏差對每對query和key之間的相對位置進行編碼,通過空間信息增強了普通的注意力。考慮到一個形狀為H×W的特征圖,其相對坐標位移分別位于二維空間的[?H,H]和[?W,W]的范圍內(nèi)。在Swin Transformer中,構造了相對位置偏置表,通過對表的相對位移進行索引,得到相對位置偏置B。由于可變形注意力具有連續(xù)的key位置,計算在歸一化范圍內(nèi)的相對位移[?1,+1],然后在連續(xù)的相對偏置表中插值,以覆蓋所有可能的偏移值。
5、 計算的復雜度
可變形多頭注意力(DMHA)的計算成本與PVT或Swin Transformer中對應的計算成本相似。唯一的額外開銷來自于用于生成偏移量的子網(wǎng)絡。整個模塊的復雜性可以概括為:

其中,為采樣點的數(shù)量??梢钥闯?,offset網(wǎng)絡的計算代價具有線性復雜度w.r.t.通道的大小,這與注意力計算的成本相對較小。通常,考慮用于圖像分類的Swin-T模型的第三階段,其中,單個塊模塊中注意力模塊的計算成本為79.63MFLOPs。如果插入可變形模塊(k = 5),額外的開銷是5.08M Flops,這僅是整個模塊的6.0%。此外,通過選擇一個較大的下采樣因子,復雜性將進一步降低,這使得它有利于具有更高分辨率輸入的任務,如目標檢測和實例分割。
3.3 模型架構

在網(wǎng)絡架構方面,模型“可變形注意變換器”與PVT等具有相似的金字塔結構,廣泛適用于需要多尺度特征圖的各種視覺任務。如圖3所示,首先對形狀為H×W×3的輸入圖像進行4×4不重疊的卷積嵌入,然后進行歸一化層,得到H4×W4×C 的patch嵌入。為了構建一個層次特征金字塔,Backbone包括4個階段,stride逐漸增加。在2個連續(xù)的階段之間,有一個不重疊的2×2卷積與stride=2來向下采樣特征圖,使空間尺寸減半,并使特征尺寸翻倍。
在分類任務中,首先對最后一階段輸出的特征圖進行歸一化處理,然后采用具有合并特征的線性分類器來預測logits。
在目標檢測、實例分割和語義分割任務中,DAT扮演著Backbone的作用,以提取多尺度特征。
這里為每個階段的特征添加一個歸一化層,然后將它們輸入以下模塊,如目標檢測中的FPN或語義分割中的解碼器。
在DAT的第三和第四階段引入了連續(xù)的Local Attention和Deformable Attention Block。特征圖首先通過基于Window的Local Attention進行處理,以局部聚合信息,然后通過Deformable Attention Block對局部增強token之間的全局關系進行建模。這種帶有局部和全局感受野的注意力塊的替代設計有助于模型學習強表征,在GLiT、TNT和Point-Former。
由于前兩個階段主要是學習局部特征,因此在這些早期階段的Deformable Attention不太適合。
此外,前兩個階段的key和value具有較大的空間大小,大大增加了Deformable Attention的點積和雙線性插值的計算開銷。因此,為了實現(xiàn)模型容量和計算負擔之間的權衡,這里只在第三和第四階段放置Deformable Attention,并在Swin Transformer中采用Shift Window Attention,以便在早期階段有更好的表示。建立了不同參數(shù)和FLOPs的3個變體,以便與其他Vision Transformer模型進行公平的比較。通過在第三階段疊加更多的塊和增加隱藏的維度來改變模型的大小。詳細的體系結構見表1。

請注意,對于DAT的前兩個階段,還有其他的設計選擇,例如,PVT中的SRA模塊。比較結果見表7。
4實驗
4.1 ImageNet-1K 圖像分類

在表2中報告了的結果,有300個訓練周期。與其他最先進的ViT相比,DAT在類似的計算復雜性上實現(xiàn)了Top-1精度的顯著改進。我們的DAT方法在所有三個尺度上都優(yōu)于Swin Transformer、PVT、DPT和DeiT。在沒有在Transformer Block中插入卷積,或在Patch嵌入中使用重疊卷積的情況下,比Swin Transformer對應的數(shù)據(jù)獲得了+0.7、+0.7和+0.5的提升。當在384×384分辨率下進行微調(diào)時,比Swin Transformer表現(xiàn)好0.3%。
4.2 COCO目標檢測

如表3所示,DAT在小型模型中的性能分別超過Swin變壓器1.1和1.2mAP。

當在兩階段檢測器中實現(xiàn)時,如Mask R-CNN和Cascade Mask R-CNN,模型比不同尺寸的Swin Transformer模型實現(xiàn)了一致的改進,如表4所示??梢钥吹?,由于建模隨機依賴關系的靈活性,DAT在大型目標上實現(xiàn)了對其(高達+2.1)的改進。小目標檢測和實例分割的差距也很明顯(高達+2.1),這表明DATs也具有在局部區(qū)域建模關系的能力。
4.3 ADE20K語義分割

在表5中,所有方法中mIoU得分最高的驗證集上的結果。與PVT相比,小模型在參數(shù)更少的情況下也超過PVT-S 0.5 mIoU,并且在+3.1和+2.5中實現(xiàn)了顯著的提升。DAT在3個模型尺度上都比Swin Transformer有顯著的改進,在mIoU中的分別提升了+1.0、+0.7和+1.2,顯示了方法的有效性。
4.4 消融實驗
1、幾何信息開發(fā)

首先評估了提出的可變形偏移量和可變形相對位置嵌入的有效性,如表6所示。無論是在特征采樣中采用偏移量,還是使用可變形的相對位置嵌入,都提供了+0.3的提升。作者還嘗試了其他類型的位置嵌入,包括固定的可學習位置偏差中的深度卷積。但在沒有位置嵌入的情況下,只提升了0.1,這表明變形相對位置偏差更符合Deformable attention。從表6中的第6行和第7行也可以看出,模型可以在前兩個階段適應不同的注意力模塊,并取得有競爭的結果。SRA在前兩個階段的模型在65%的FLOPs上比PVT-M高出0.5倍。
2、不同Stage使用Deformable attention

用不同階段的Deformable attention取代了Swin Transformer shift window attention。如表7所示,只有替換最后一個階段的注意力才能提高0.1,替換最后兩個階段的性能才能提高0.7(總體精度達到82.0)。然而,在早期階段用更多Deformable attention代替,會略微降低精度。
4.5 可視化結果

如圖所示,采樣點被描述在目標檢測框和實例分割Mask的頂部,從中可以看到這些點被移到了目標上。
在左邊一列中,變形的點被收縮成兩個目標長頸鹿,而其他的點則是保持一個幾乎均勻的網(wǎng)格和較小的偏移量。
在中間的一列中,變形點密集地分布在人的身體和沖浪板中。
右邊的一列顯示了變形點對六個甜甜圈的每個焦點,這表明本文的模型有能力更好地建模幾何形狀,即使有多個目標。
上述可視化表明,DAT可以學習到有意義的偏移量,以采樣更好的注意力key,以提高各種視覺任務的表現(xiàn)。
5參考
[1].Vision Transformer with Deformable Attention.
6推薦閱讀

全新Backbone | Pale Transformer完美超越Swin Transformer

AI部署篇 | CUDA學習筆記1:向量相加與GPU優(yōu)化(附CUDA C代碼)

激活函數(shù) | Squareplus性能比肩Softplus激活函數(shù)速度快6倍(附Pytorch實現(xiàn))
長按掃描下方二維碼添加小助手。
可以一起討論遇到的問題
聲明:轉(zhuǎn)載請說明出處
掃描下方二維碼關注【集智書童】公眾號,獲取更多實踐項目源碼和論文解讀,非常期待你我的相遇,讓我們以夢為馬,砥礪前行!

