阿里提出QuadTree Transformer | 最輕、最強的Vision Transformer Backbone


Transformers在許多視覺任務(wù)中都很成功,因為它們具有捕捉長期依賴性的能力。然而,它們的二次計算復(fù)雜度阻礙了將它們應(yīng)用于需要密集預(yù)測的視覺任務(wù)之中,如目標(biāo)檢測、特征匹配、立體視覺等。
本文引入QuadTree Attention,將計算復(fù)雜度從二次降低到線性。QuadTree Transformer構(gòu)建token pyramid,并以一種從粗到細(xì)的方式計算Attention。在每個level上,選擇注意力得分最高的top-K個patches,這樣在下一level上,只在這top-K個patches對應(yīng)的相關(guān)區(qū)域內(nèi)進(jìn)行注意力評估。
作者證明了QuadTree Attention在各種視覺任務(wù)中達(dá)到了最先進(jìn)的性能,例如ScanNet的特征匹配性能提高了2.7%,F(xiàn)LOPs減少了約50%,ImageNet分類的Top-1準(zhǔn)確率提高了0.6-1.4%,COCO目標(biāo)檢測FLOPs降低了30%,精度提高了1.3-1.6%。
1簡介
Transformer可以通過注意力模塊捕獲長期依賴關(guān)系,并在自然語言處理任務(wù)中顯示出巨大的成功。近年來,Transformer也被用于計算機視覺任務(wù),用于圖像分類、目標(biāo)檢測、語義分割、特征匹配等。通常情況下,圖像被分成幾個小的patches,這些小patches被Flatten并作為單詞符號輸入Transformer,以評估注意力得分。而在Token數(shù)量上,即圖像patch的數(shù)量上,Transformer的計算復(fù)雜度是二次的。因此,將Transformer應(yīng)用于計算機視覺應(yīng)簡化所涉及的計算。
為了在視覺任務(wù)中利用標(biāo)準(zhǔn)Transformer,許多工作選擇在低分辨率或稀疏Token上應(yīng)用它。ViT使用16×16像素的粗圖像塊來限制Token的數(shù)量。DPT將ViT的低分辨率結(jié)果提升到高分辨率特征圖,以實現(xiàn)密集任務(wù)的預(yù)測。SuperGlue將Transformer應(yīng)用于稀疏圖像關(guān)鍵點。Germain和Li等人專注于通信和立體匹配應(yīng)用,也將Transformer應(yīng)用于低分辨率特征圖。
然而,正如在若干工作中所展示的,高分辨率Transformer的應(yīng)用有利于各種任務(wù)。因此,設(shè)計高效的Transformer以降低計算復(fù)雜度已成為許多研究的重點。線性近似Transformer使用線性方法近似標(biāo)準(zhǔn)的注意力計算。然而,實證研究表明,線性Transformer在視覺任務(wù)方面較差。為了降低計算成本,PVT使用下采樣的key和value,這對捕獲像素級細(xì)節(jié)是有害的。相比之下,Swin Transformer將局部窗口中的注意力限制在一個注意力塊中,這可能會損害長期依賴關(guān)系(這是Transformer最重要的優(yōu)點)。
與之前的所有工作不同,本文設(shè)計了一個高效的視覺Transformer,它可以捕捉精細(xì)的圖像細(xì)節(jié)和長期依賴關(guān)系。在觀察到大多數(shù)圖像區(qū)域是不相關(guān)的啟發(fā)下,構(gòu)建了Token pyramids,并以從粗到細(xì)的方式計算注意力。這樣,當(dāng)對應(yīng)的粗粒度區(qū)域沒有前景時,可以快速跳過細(xì)粒度的不相關(guān)區(qū)域。

如圖1所示,在level-1,用B中的所有patch計算A中的藍(lán)色patch的注意力,并選擇top-K個patch(這里K=2),這也是用藍(lán)色高亮顯示的;在level-2中,對于A圖中4個Patches內(nèi)的sub-patch(即level-1的藍(lán)色patch對應(yīng)的sub-patch),這里只使用level-1 B圖中top-K個patch對應(yīng)的sub-patch來計算它們的注意力。所有其他的陰影sub-patch被跳過以減少計算。這里用黃色和綠色標(biāo)出A圖中的2個sub-patch。B圖中對應(yīng)的top-K個patch也用同樣的顏色高亮顯示。這個過程在level-3進(jìn)行迭代,在level-3中,只顯示與level-1的綠色sub-patch相對應(yīng)的sub-sub-patch。
通過這種方式,該方法既能獲得精細(xì)的規(guī)模注意力,又能保持長期的聯(lián)系。最重要的是,在整個過程中只有稀疏的注意力被評估。因此,本文方法具有較低的內(nèi)存和計算成本。
在實驗中,證明了QuadTree Transformer在需要cross attention的任務(wù)(如特征匹配和立體視覺)和只使用Self-Attention的任務(wù)(如圖像分類和目標(biāo)檢測)中的有效性。
與相關(guān)的Efficient Transformer相比,QuadTree Transformer實現(xiàn)了最先進(jìn)的性能,顯著減少了計算量。
在特征匹配方面,在ScanNet中實現(xiàn)了60.3 AUC@20,比線性Transformer高2.7,但FLOPs類似。
在立體匹配中,實現(xiàn)了與標(biāo)準(zhǔn)Transformer相似的端點誤差,但減少了約50%的FLOPs和40%的內(nèi)存。
在圖像分類方面,在ImageNet中獲得了82.6%的top-1準(zhǔn)確率,比ResNet高6.2%,比Swin Transformer-T高1.3%,且參數(shù)更少,F(xiàn)LOPs數(shù)更少。
在目標(biāo)檢測方面,QuadTree Attention+RetinaNet在COCO中獲得了46.2 AP,比PVTv2 Backbone高1.6,但FLOPs降低了約35%。
2相關(guān)工作
2.1 Efficient Transformers
變形金剛在自然語言處理和計算機視覺方面都取得了巨大的成功。由于二次型計算的復(fù)雜性,在處理長序列令牌時無法進(jìn)行充分注意的計算。因此,許多工作都在設(shè)計高效的變壓器,以降低計算復(fù)雜度。Efficient Transformers可分為3類:
Linear approximate attention:通過對softmax注意力進(jìn)行線性化來近似全注意矩陣,通過先計算key和value的乘積來加速計算;
Point-Based Linear Transformers:使用學(xué)習(xí)過的固定大小的誘導(dǎo)點對輸入符號進(jìn)行關(guān)注,從而將計算量降低到線性復(fù)雜度。然而,在不同的工作條件下,這些線性Transformer的性能都不如標(biāo)準(zhǔn)Transformer。
Sparse attention:包括Longformer、Big Bird等,每個query token都是針對key和value token的一部分,而不是整個序列。
與這些研究不同的是,QuadTree Attention可以根據(jù)粗糙水平上的注意力分?jǐn)?shù)快速跳過無關(guān)token。因此,在保持較高效率的同時,實現(xiàn)了較少的信息損失。
2.2 Vision Transformers
Transformers在許多視覺任務(wù)中都表現(xiàn)出了非凡的表現(xiàn)。ViT將Transformers應(yīng)用于圖像識別,證明了Transformers在大規(guī)模圖像分類方面的優(yōu)越性。然而,由于Softmax注意力的計算復(fù)雜度,在密集的預(yù)測任務(wù)中,如目標(biāo)檢測、語義分割等,很難應(yīng)用Transformers。
為了解決這個問題,Swin Transformer限制了局部窗口中的注意力計算。Focal Transformers使用2層窗口來提高捕獲遠(yuǎn)程連接的能力,以實現(xiàn)局部注意力方法。金字塔視覺Transformers(PVT)通過下采樣key和value token來減少全局注意力方法的計算量。盡管這些方法在各種任務(wù)中都顯示出了改進(jìn),但它們在捕獲長期依賴或精細(xì)水平注意力方面都存在缺陷。與這些方法不同的是,QuadTree Attention通過在單個塊中計算出從全圖像級別到最優(yōu)token級別的注意力,同時捕獲局部和全局注意力。此外,K-NN Transformers從與最相似的top-K個token中聚合消息,但KNN計算所有對query token和key token之間的注意力得分,因此仍然具有二次復(fù)雜度。
除了Self-Attention,許多任務(wù)在很大程度上都能從Cross Attention中受益。Superglue過程檢測具有Self-Attention和Cross Attention的局部描述符,并在特征匹配方面顯示出顯著的改進(jìn)。標(biāo)準(zhǔn)Transformer可以應(yīng)用于SuperGlue,因為只考慮稀疏的關(guān)鍵點。SGMNet通過seeded matches進(jìn)一步減少了計算量。LoFTR在低分辨率特征圖上利用線性Transformer生成密集匹配。對于立體匹配,STTR沿著極線應(yīng)用Self-Attention和Cross Attention,并通過梯度檢查點減少了內(nèi)存消耗。然而,由于需要處理大量的點,這些工作要么使用有損性能的線性Transformer,要么使用有損效率的標(biāo)準(zhǔn)Transformer。
相比之下,QuadTree Transformer與線性Transformer相比具有顯著的性能提升,或與標(biāo)準(zhǔn)Transformer相比效率提高。此外,它還可以應(yīng)用于Self-Attention和Cross Attention。
3QuadTree Transformer
3.1 Attention in Transformer
Vision Transformers在許多任務(wù)中都取得了巨大的成功。Transformer的核心是注意力模塊,它可以捕獲特征嵌入之間的遠(yuǎn)程信息。給定2個圖像嵌入點和,注意力模塊在它們之間傳遞信息。自注意力機制是指和相同時的情況,而Cross Attention則是指和不同時更普遍的情況。它首先通過下面的等式生成query Q、key K和value V,

其中,、和都是可學(xué)習(xí)的參數(shù)。然后,通過計算query和key之間的注意力得分來進(jìn)行消息聚合,如下:

其中,C是嵌入通道的維數(shù)。上述過程具有的計算復(fù)雜度,其中N是Vision Transformer中圖像patch的數(shù)量。這種二次復(fù)雜度阻礙了Transformer被應(yīng)用于需要高分辨率輸出的任務(wù)。為了解決這個問題,PVT采用了下采樣K和V,而Swin Transformer限制了局部窗口內(nèi)的注意力計算。
3.2 QuadTree Attention
為了降低Vision Transformer的計算成本,提出了QuadTree Attention。顧名思義,借用了 quadtrees的概念, quadtrees通常用于遞歸地將二維空間細(xì)分為4個象限或區(qū)域。QuadTree Attention以粗到細(xì)的方式計算注意力。根據(jù)粗級的結(jié)果,在細(xì)級快速跳過不相關(guān)的圖像區(qū)域。這種設(shè)計在保持高效率的同時,減少了信息損失。
與常規(guī)Transformer一樣,首先將和線性投影到query、key和value token上。為了方便快速的注意力計算,本文通過下采樣特征映射構(gòu)造L-level金字塔用于query Q、key K和value V token。
對于query和key token,使用平均池層;
對于value token,如果是交叉注意力任務(wù)則使用平均池化,如果時Self-Attention任務(wù),則使用stride為2的Conv-BN-ReLU。
如圖1所示,在計算了粗粒度的注意力分?jǐn)?shù)后,對于每個query token,選擇注意力分?jǐn)?shù)最高的top-K個key token。在細(xì)粒度上,query sub token只需要用那些對應(yīng)于粗粒度上所選K個key token之一的key sub token來計算。這個過程不斷重復(fù),直到達(dá)到最好的水平。在計算了注意力分?jǐn)?shù)之后,在所有粒度上聚合信息,這里設(shè)計了2個架構(gòu),稱為QuadTree-A和QuadTree-B。
1、QuadTree-A
考慮到最佳級別的第個query token ,需要從所有key token計算其收到的消息。該設(shè)計通過收集不同金字塔層次的部分信息來組裝完整的信息。具體地說,

其中,表示在level-l計算的partial messages。這個partial messages 從區(qū)域內(nèi)的token在level-l聚集信息。通過這種方式,來對自較少相關(guān)區(qū)域的信息進(jìn)行粗粒度計算,而對來自高度相關(guān)區(qū)域的信息以精細(xì)粒度計算。

該方案如圖2(b)所示,messages 是由不同圖像區(qū)域不同顏色的3個partial messages生成的,共同覆蓋整個圖像空間。綠色區(qū)域表示最相關(guān)的區(qū)域,在最精細(xì)的level上評價和計算,而紅色區(qū)域是最不相關(guān)的區(qū)域,在最粗的level上進(jìn)行評價和計算。
區(qū)域可以定義為,其中圖像區(qū)域對應(yīng)于的top-K token。區(qū)域如圖2(c)。所示區(qū)域覆蓋了整個圖像。
partial messages的計算如下:

其中,是在level-l的query和key token之間的注意力得分。圖2(a)顯示了與相同顏色計算時涉及的query和key token。注意力分?jǐn)?shù)被遞歸地計算出來,

這里,是對應(yīng)的 parent query和key token和的得分。根據(jù)公式1在同一parent query token的2×2 token中評估tentative attention得分。對于QuadTree-A,使用平均池化層對所有query、key和value token進(jìn)行下采樣。
2、QuadTree-B
QuadTree-A中從所有層次上遞歸計算的注意力分?jǐn)?shù),這使得在更精細(xì)的層次上的分?jǐn)?shù)變小,并減少了精細(xì)圖像特征的貢獻(xiàn)。此外,精細(xì)水平的得分也在很大程度上受到粗水平的不準(zhǔn)確性的影響。因此,設(shè)計了一個不同的方案,稱為QuadTree-B來解決這個問題。具體來說,計算作為來自不同level的partial messages的加權(quán)平均值,

其中是一個學(xué)習(xí)得到的權(quán)重。如圖2(c)所示,這里的partial messages相互重疊,計算結(jié)果為:

其中,Attention是attention message的計算,如式1。在這里,和是通過在區(qū)域內(nèi)疊加所有的key和value而形成的矩陣。
QuadTree-A和QuadTree-B都只涉及稀疏注意力評價。因此,該方法大大降低了計算復(fù)雜度。QuadTree Attention的計算復(fù)雜度與Token的數(shù)量是線性的。
3、Multiscale position encoding
注意力的計算對token來說是排列不變的,因此會丟失位置信息。為了解決這個問題,作者在每個層次上采用局部增強的位置編碼(LePE) 來設(shè)計一個多尺度的位置編碼。具體來說,對于level-l,對value token 應(yīng)用非共享深度卷積層來編碼位置信息。
3.3 與其他注意力機制的對比
為了與其他注意力機制進(jìn)行公平的比較,作者在相同的backbone和訓(xùn)練設(shè)置下測試了這些注意力機制。

具體來說,將PVTv2-Bb中原有的注意力模塊替換為Swin Transformer和Focal Transformer中使用的注意力方法。為了更公平的比較,采用與PVTv2、Swin和Focal Transformer相同的位置編碼LePE。如表5所示,QuadTree Attention在分類任務(wù)和檢測任務(wù)中都比Swin和PVTv2獲得了更好的性能。
與Focal Attention相比,QuadTree Attention在目標(biāo)檢測上的結(jié)果提高了1.0,這可能是因為QuadTree Attention總是能夠覆蓋整個圖像,而Focal Attention在第一階段只覆蓋了圖像的1/6。

對于Cross Attention任務(wù),本文提供了可視化的注意力分?jǐn)?shù),如附錄e中的圖5所示。QuadTree Attention可以注意到比PVT和Linear attention更多的相關(guān)區(qū)域。
4實驗
4.1 Cross-Attention Task
1、特征匹配

2、立體匹配

4.2 Self-Attention Task
1、圖像分類

2、目標(biāo)檢測

5參考
[1].QUADTREE ATTENTION FOR VISION TRANSFORMERS
6推薦閱讀
2022-02-07
2022-01-26
2022-01-20
2022-01-26
長按掃描下方二維碼添加小助手。
可以一起討論遇到的問題
聲明:轉(zhuǎn)載請說明出處
掃描下方二維碼關(guān)注【集智書童】公眾號,獲取更多實踐項目源碼和論文解讀,非常期待你我的相遇,讓我們以夢為馬,砥礪前行!

