清華大學(xué)提出DAT | DCN+Swin Transformer會(huì)碰撞出怎樣的火花???


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

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

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

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

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

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

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

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

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

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

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

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

請(qǐng)注意,對(duì)于DAT的前兩個(gè)階段,還有其他的設(shè)計(jì)選擇,例如,PVT中的SRA模塊。比較結(jié)果見表7。
4實(shí)驗(yàn)
4.1 ImageNet-1K 圖像分類

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

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

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

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

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

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

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

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

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

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

