視覺Transformer綜述


前幾日,華為諾亞,北京大學,悉尼大學共同發表了論文《A Survey on Visual Transformer》,本文針對其重點內容進行翻譯概括如下。文末附論文原文和本文完整版下載方式。

 

導言:

    Transformer是一種主要基於自注意力機制的深度神經網絡,最初是在自然語言處理領域中應用的。受到Transformer強大的表示能力的啟發,研究人員提議將Transformer擴展到計算機視覺任務。與其他網絡類型(例如卷積網絡和循環網絡)相比,基於Transformer的模型在各種視覺基准上顯示出競爭性的甚至更好的性能。

    在本文中,我們通過將這些Visual Transformer模型按不同的任務分類,並分析了這些方法的優缺點,提供了文獻綜述。主要類別包括基本圖像分類,high-level vision,low-level vision和視頻處理。由於self-attention是Transformer的基本組成部分,因此也簡要回顧了計算機視覺中的自注意力。包括將Transformer推向實際應用的有效Transformer方法。最后,我們討論了Visual Transformer的進一步研究方向。

 

1. 總體概述

    卷積神經網絡(CNN)引入了卷積層和池化層以處理圖像等位移不變性的數據。遞歸神經網絡(RNN)利用循環單元來處理順序數據或時間序列數據。Transformer是一種新提出的神經網絡,主要利用自我注意機制提取內在特征。在這些網絡中,Transformer是最近發明的神經網絡(2017年),對於廣泛的人工智能應用具有巨大的潛力。

    Transformer最初應用於自然語言處理(NLP)任務,並帶來了顯着的改進。例如,Vaswani等人首先提出了一種僅基於注意力機制來實現機器翻譯和英語選區解析任務的Transformer。Devlin等人引入了一種稱為BERT的新語言表示模型,該模型通過共同限制左右上下文來預訓練未標記文本的翻譯器。BERT在當時的11個NLP任務上獲得了SOTA結果。Brown等人在45TB壓縮明文數據上預訓練了基於巨型Transformer的GPT-3模型,該模型具有1,750億個參數,並且無需微調即可在不同類型的下游自然語言任務上實現出色的性能。這些基於Transformer的模型顯示了強大的表示能力,並在NLP領域取得了突破。

    受NLP中Transformer功能的啟發,最近的研究人員將Transformer擴展到計算機視覺(CV)任務。CNN曾經是視覺應用中的基本組件,但是Transformer顯示出了其作為CNN替代品的能力。Chen等人訓練一個sequence Transformer去自動回歸預測像素並在圖像分類任務上與CNN取得競爭性結果。ViT是Dosovitskiy等人最近提出的Visual Transformer模型。ViT將一個純粹的transformer直接用於圖像塊序列,並在多個圖像識別基准上獲得SOTA性能。除了基本的圖像分類,transformer還用於解決更多計算機視覺問題,例如目標檢測,語義分割,圖像處理和視頻理解。由於其出色的性能,提出了越來越多基於transformer的模型來改善各種視覺任務。

為了獲得更好的方便研究人員研究不同的主題,我們按其應用場景對transformer模型進行分類,如表1所示。特別是,主要主題包括基本圖像分類,high-level vision,low-level vision和視頻處理。high-level vision對圖像中可以看到的內容進行提取和解析,例如對象檢測,分割和車道檢測。已經有許多用於解決這些high-level vision任務的transformer模型,例如DETR,deformanble DETR用於物體檢測,以及Max-DeepLab用於分割。low-level vision主要涉及從圖像(通常通常表示為圖像本身)中提取描述子,其典型應用包括超分辨率,圖像去噪和風格遷移。在 low-level vision的transformer研究很少,需要進行更多的研究。

由於視頻的順序特性,transformer可以自然地應用於視頻。與傳統的CNN或RNN相比,Transformer開始在這些任務上顯示出具有競爭力的性能。在這里,我們對基於transformer的視覺模型給出了一個綜述,以跟上該領域的進展。Visual transformer的開發時間表如圖1所示。

圖片

 

 

2. Transformer結構

詳情請看另一篇文章《transformer解讀

 

3. Visual Transformer 

在本節中,我們將對基於transformer的計算機視覺模型進行全面回顧,包括圖像分類,high-level vision,low-level vision和視頻處理中的應用。我們還簡要總結了自注意力機制和模型壓縮方法在高效transformer中的應用。

3.1 Image Classification

受到transformer在自然語言處理方面取得巨大成功的啟發,一些研究人員試圖檢驗相似的模型是否可以學習圖像的有用表示。 作為一種比文本更高維度,更嘈雜,更冗余的形式,人們認為圖像很難生成模型。 iGPT 和ViT是僅使用transformer進行圖像分類的兩個模型。

3.1.1 iGPT

自從最初的生成式圖像預訓練方法浪潮問世以來,已經有很長時間了。Chen等人重新檢查這類方法,並結合自我監督方法的最新進展。該方法包括一個預訓練階段,然后是一個fine-tune階段。在預訓練中,應嘗試使用自回歸和BERT目標。此外,在NLP中應用sequence transformer體系結構來預測像素而不是語言標記。預訓練使得訓練可以盡早地停止,因此可被視為有利的初始化或正則化。在fine-tune過程中,他們向模型添加了一個小的分類頭,該分類頭用於優化分類目標並適應所有權重。

給定一個由高維數據x =(x1,...,xn)組成的未標記數據集X。他們通過最小化數據的負對數似然來訓練模型:

圖片

其中p(x)是圖像數據的密度,可以將其建模為:

圖片

其中1 <= i <= n采用單位置換 πi = i,也稱為柵格順序。他們還考慮了BERT目標,該目標對子序列M⊂[1,n]進行采樣,以使每個索引i獨立地具有在M中出現的0.15的概率。M稱為BERT掩碼,模型為 通過最小化“unMasked”元素x [1,n] \ M上的“Masked”元素x[1,n]\M的負對數似然來訓練:

圖片

在預訓練中,他們選擇LAR或Lbert中的一種,並在預訓練數據集上最大程度地減少損失。他們使用transformer decoder模塊的GPT-2公式表示。特別是,layer norms先於注意力和多層感知器(MLP)操作,並且所有操作都嚴格按照殘差路徑進行。 序列元素之間唯一的混合發生在注意力操作中,並且為了確保在訓練AR目標時進行適當的調節,他們將標准的上三角mask應用於attention logits的n×n矩陣。當使用BERT目標時,不需要attention logits mask:將內容嵌入應用於輸入序列后,它們會將位置清零。

在微調期間,它們平均將最終lay norm n(L)的輸出在整個序列維上合並,以每個示例提取特征的d維向量:

他們學習了從f(L)到class logit的投影,該投影用於最小化交叉熵損失L(CLF)。 在實踐中,他們憑經驗發現聯合目標L(GEN) + L(CLF)的效果更好,其中L(GEN)∈{L(AR),L(BERT)}。(此處括號內的內容為下標)

 

3.1.2 ViT

  最近,Dosovitskiy等人提出了一種pure transformer,即Vision Transformer(ViT),當直接應用於圖像塊的序列時,它在圖像分類任務上表現良好。 它們盡可能遵循原始transformer的設計。 下圖顯示了Vision Transformer的框架。

圖片

為了處理2D圖像,將圖像x∈R H×W×C整形為一系列平坦的2D塊x(p)∈R N×(P^2·C)。  (H,W)是原始圖像的分辨率,(P,P)是每個圖像塊的分辨率。 那么N = HW / P^2是該Transformer的有效序列長度。 由於Transformer的所有層都使用恆定的寬度,因此可訓練的線性投影將每個矢量化路徑映射到模型尺寸D,它們的輸出稱為patch embeddings。

與BERT的[class]標記類似,可學習的embedding被用於embedding塊的序列,其在Transformer encoder輸出處的狀態用作圖像表示。在預訓練和微調過程中,分類頭的大小均相同。另外,將一維position embeddings添加到embeddings塊中以保留位置信息。 他們對position embeddings的2D感知方法有不同的探索,它們沒有比標准的1D position embeddings獲得明顯的收益。 joint embeddings作為encoder的輸入。 值得注意的是,Vision Transformer僅使用標准Transformer的encoder,而MLP頭后面是Transformer encoder的輸出。

通常,首先在大型數據集上對ViT進行預訓練,然后對較小的下游任務進行微調。 為此,去除預訓練的預測頭,並附加一個零初始化的D×K前饋層,其中K是下游類別的數量。 以比預訓練更高的分辨率進行微調通常是有益的。 喂入更高分辨率的圖像時,色塊大小保持不變,這會導致更大的有效序列長度。 Vision Transformer可以處理任意序列長度,但是預訓練的position embeddings可能不再有意義。 因此,作者根據預訓練position embeddings在原始圖像中的位置執行2D插值。 請注意,只有將分辨率調整和色塊提取手動插入有關圖像2D結構的感應偏置時,才能將其手動注入到Vision Transformer中。

當在中等大小的數據集(如ImageNet)上訓練時,此類模型產生較差的結果,與可比較大小的ResNets相比,精度要低幾個百分點。Transformer缺乏CNN固有的一些歸納偏置(inductive biases),例如翻譯等方差和局部性,因此在訓練不足的數據量時不能很好地概括。 但是,如果在大型數據集上訓練模型(14M-300M圖像),則圖片會發生變化。作者發現,大規模訓練勝過歸納偏置。進行足夠規模的預訓練並轉移到數據點較少的任務時,Transformer可獲得出色的結果。 在JFT-300M數據集上進行過預訓練的Vision Transformer在多個圖像識別基准上達到或優於SOTA,在ImageNet上達到88.36%,在CIFAR-10上達到99.50%,在CIFAR-100上達到94.55%,以及77.16% 在VTAB套件中包含19個任務。表3顯示了iGPT和ViT的詳細結果

圖片

總之,iGPT回顧了生成式預訓練方法,並將其與自我監督方法相結合,結果並不十分令人滿意。ViT取得了更好的結果,特別是當它使用更大的數據集(JFT-300)時。但是,ViT的結構與NLP中的Transformer基本相同 ,如何在塊內部(intra-patch)和塊之間(inter-patch)明確相關性仍然是一個具有挑戰性的問題。此外,在ViT中將相同大小的塊(patch)視為相等。 眾所周知,每個塊的復雜性是不同的,並且該特性目前尚未得到充分利用。

 

3.2 High-level Vision

最近,人們對采用Transformer執行High-level計算機視覺任務(例如對象檢測,車道檢測和分段)的興趣日益增加。 在本節中,我們將對這些方法進行回顧。

 

3.2.1 Object Detection

根據采用Transformer體系結構的模塊,可以將基於Transformer的目標檢測方法粗略地分為neck-based, head-based 和 framework-based的方法。

多尺度特征融合模塊(在現代檢測框架中稱為neck),例如特征金字塔網絡(FPN),已廣泛用於目標檢測中,以實現更好的檢測性能。 張etc 建議傳統方法無法交互跨尺度特征,因此提出了特征金字塔transformer(FPT)來充分利用跨空間和尺度的特征相互作用。FPT由三種類型的Transformer組成,即self-transformer, grounding transformer 和 rendering transformer,它們分別對特征金字塔的self-level, top-down 和 bottom-up路徑的信息進行編碼。FPT基本上利用Transformer中的自注意模塊來增強特征金字塔網絡的特征融合。

預測頭對於物體檢測器起着重要的作用。 先前的檢測方法通常利用單個視覺表示(例如邊界框和角點)來預測最終結果。Chi等提出了橋接視覺表示(Bridging Visual Representations --BVR),通過多頭關注模塊將不同的異構表示(heterogeneous representations)組合成一個單一的表示。 具體來說,將主表示作為query輸入,將輔助表示作為key輸入。通過類似於Transformer中的注意模塊,可以獲得用於主表示的增強功能,該功能將來自輔助表示的信息橋接起來並有利於最終檢測性能。

與上述利用Transformer的方法增強了現代檢測器的特定模塊不同,Carion 重新設計了目標檢測框架,並提出了detection Transformer(DETR),它是一個簡單且完全端到端的目標探測器。DETR將目標檢測任務視為一個直觀的集合預測問題,擺脫了傳統的手工制作組件,例如錨點生成和非最大抑制(NMS)后處理。

圖片

如圖6所示,DETR從CNN主干開始以從輸入圖像中提取特征。為了用位置信息補充圖像特征,將固定的位置編碼添加到平坦的十個特征中,然后再饋入編碼解碼器轉換器。Transformer解碼器將編碼器的embedding與N個學習的positional endcodings(object queries)一起使用,並生成N個output embeddings,其中N是預定義參數,通常大於圖像中對象的數量。最終預測是通過簡單前饋網絡(FFN)計算的,其中包括邊界框坐標和類別標簽以指示對象的特定類別或沒有對象。與原始Transformer順序生成預測的原始Transformer不同,DETR同時解碼N個對象。DETR采用兩部分匹配算法來分配預測的和真實的對象。如方程式(11)所示。匈牙利損失(Hungarian loss)被用來計算所有匹配對象對的損失函數。

圖片

其中y和yˆ分別是ground truth和目標的預測,σˆ是最優分配,ci和P^(Ci)是目標類別標簽和預測標簽,bi和b^(i)分別是ground truth和預測邊界框,DETR在物體檢測方面表現出令人印象深刻的性能,其精度和速度與COCO基准上廣受歡迎且與公認的Faster R-CNN基線相當。

DETR是基於Transformer的目標檢測框架的新設計,為社區開發完整的端到端檢測器提供了參考。 但是,vanilla DETR也面臨一些挑戰,例如,訓練時間較長,小目標的性能較差。Zhu等人提出的Deformable DETR是解決上述問題的一種流行方法,並且大大提高了檢測性能。代替通過原始的多頭注意力在Transformer中查看圖像特征圖上的所有空間位置,建議使用可變形注意模塊(deformable attention module)來關注參考點周圍的一小組關鍵位置。 這樣,大大降低了計算復雜度,也有利於快速收斂。 更重要的是,可變形注意模塊可輕松應用於融合多尺度功能。 與DETR相比,可變形DETR的性能更好,訓練成本降低了10倍,推理速度提高了1.6倍。deformable DETR還應用了一些其他改進,包括有效的迭代邊界框優化方法和two-stage方案,從而進一步提高了性能。

針對DETR的高計算復雜性問題,Zheng等人提出了一種自適應聚類變壓器(Adaptive Clustering Transformer--ACT)來減少預訓練的DETR的計算成本,而無需任何訓練過程。 ACT使用局部敏感度哈希方法(locality sensitivity hashing method)自適應地對queries特征進行聚類,並將注意力輸出廣播到由所選原型表示的queries。 通過將預訓練的DETR模型的自我注意模塊替換為ACT,而無需進行任何重新訓練,幾乎不降低精度,可以顯着降低計算成本。此外,可以通過使用多任務知識蒸餾(multi-task knowledge distillation--MTKD)方法進一步降低性能下降,該方法利用原始Transformer以少量的fine-tuning時間來蒸餾ACT模塊。

Sun等人研究了DETR模型的慢收斂問題,並揭示了Transformer解碼器中的交叉注意模塊是主要原因。為此,提出了DETR的純編碼器(encoder-only)版本,並且在檢測精度和訓練收斂性上實現了相當大的改進。 此外,設計了一種新的二分匹配方案,以實現更穩定的訓練和更快的收斂。 提出了兩種基於Transformer的集合預測模型,以改進具有特征金字塔的純編碼器DETR,即TSP-FCOS和TSP RCNN,它們比原始DETR模型具有更好的性能。

Dai等人在自然語言處理中受到預訓練Transformer方案的啟發,提出了一種用於目標檢測的無監督預訓練DETR(UP-DETR)的方法。具體而言,提出了一種新的無監督借口任務,即隨機query patch檢測,以預訓練DETR模型。通過這種方案,UP-DETR大大提高了在相對較小的數據集(即PASCAL VOC)上的檢測精度。 在具有足夠訓練數據的COCO基准上,UP-DETR仍然無法完成DETR,這證明了無監督的預訓練計划的有效性。

 

3.2.2 Segmentation

DETR 可以自然擴展到全景分割任務,方法是在解碼器上附加一個掩碼頭(mask head),從而獲得有競爭力的結果。  Wang等提出了Max-DeepLab來直接預測通過mask transformer實現的全景分割結果,而無需替代諸如box detection之類的子任務。 與DETR相似,Max-DeepLab以端到端的方式簡化了全景分割任務,並直接預測了一組不重疊的masks和相應的標簽。 使用全景率(PQ)樣式損失來訓練模型。此外,與現有的將transformer堆疊在CNN主干網上方的方法不同,Max-DeepLab采用雙路徑框架(dual-path framework)將CNN與transformer更好地結合在一起。

Wang等提出了一種基於transformer的視頻實例分割(transformer-based video instance segmentation --VisTR)模型,該模型以圖像序列作為輸入並產生相應的姿態預測結果。提出了實例序列匹配策略,為預測分配ground truth。 要獲取每個實例的掩碼序列,VisTR利用實例序列分割模塊從多個幀中累積掩碼特征,並使用3D CNN分割掩碼序列。

也有嘗試將transformer用於姿態分割,這是基於DETR全景分割模型的。所提出的Cell-DETR還添加了skip connections,以在分段頭中從主干CNN和CNN解碼器橋接功能,以獲得更好的融合功能。 Cell-DETR顯示了來自顯微圖像的cell實例分割的SOTA性能。

Zhao等設計了一種新穎的Transformer架構(Point Transformer)來處理點雲。所提出的自我注意層對於點集的排列是不變的,因此適用於點集處理任務。 Point Transformer對於3D點雲的語義分割任務顯示出強大的性能。

 

3.2.3 Lane Detection

Liu等基於PolyLaneNet 提出通過學習transformer網絡的全局上下文來提高曲線車道檢測的性能。 與Poly LaneNet相似,提出的方法(LSTR)將車道檢測視為將車道與多項式擬合的任務,並使用神經網絡預測多項式的參數。為了捕獲用於車道和全局環境的細長結構,LSTR將transformer網絡引入到架構中,以處理通過卷積神經網絡提取的低級特征。 此外,LSTR使用匈牙利損失來優化網絡參數。與僅使用0.2倍參數的PolyLaneNet相比,LSTR可以實現2.82%的更高精度和3.65倍FPS。transformer網絡、卷積神經網絡和匈牙利損失的結合實現了一個微小,快速而精確的車道檢測框架。

 

3.3 Low-level Vision

除了High-level Vision任務外,很少有研究將transformer應用於low-level vision領域,例如圖像超分辨率,圖像生成等。與以標簽或框為輸出的分類,分割和檢測相比,low-level vision任務 通常將圖像作為輸出(例如,高分辨率圖像或去噪圖像),這更具有挑戰性。

Parmar等邁出第一步,推廣transformer模型來制定圖像轉換和生成任務,並提出Image transformer。 Image transformer由兩部分組成:用於提取圖像表示的編碼器和用於生成像素的解碼器。對於值為0 - 255的每個像素,將學習256×d維embeddings,以將每個值編碼為d維向量,將其作為編碼器的輸入。編碼器和解碼器的架構與《Advances in neural information processing systems》中的相同。解碼器中每一層的詳細結構如圖7所示。

 

圖片

每個輸出像素q0是通過計算輸入像素q與先前生成的像素m1,m2,...之間的自注意力而生成的,並帶有position embedding p1,p2,...。 ..對於圖像條件生成,例如超分辨率和修復,使用了編碼器-解碼器體系結構,其中編碼器的輸入是低分辨率圖像或損壞的圖像。對於無條件和分類條件圖像生成(即圖像噪聲),純解碼器用於輸入噪聲向量。由於用於解碼器的輸入是先前生成的像素,當生成高分辨率圖像時,它將產生大量的計算成本,因此提出了一種局部自注意方案,該方案僅使用最近生成的像素作為解碼器的輸入。結果,Image transformer可以在圖像生成和翻譯任務上使用基於CNN的模型來獲得競爭性能,這表明基於transformer的模型在low-level vision任務上的有效性。

與將每個像素用作transformer模型的輸入相比,最近的工作使用patch(像素集)作為輸入。楊等提出了用於圖像超分辨率的Texture transformer網絡(TTSR)。他們在基於參考的圖像超分辨率問題中使用了轉換器體系結構,該問題旨在將相關紋理從參考圖像轉移到低分辨率圖像。以低分辨率圖像和參考圖像作為查詢Q和關鍵字K,計算Q中每個patch qi和K中ki之間的相關性ri,j,

圖片

然后提出了一種硬性注意力(hard-attention)模塊,以利用參考圖像根據參考圖像選擇高分辨率特征V以匹配低分辨率圖像。hard-attention map是通過下式計算

圖片

那么來自的最相關的參考patch是ti = ,其中T中的ti是轉移的特征。之后,使用軟注意力模塊將V轉移到低分辨率特征F。可以通過以下方式計算軟注意力:

圖片

因此,將高分辨率紋理圖像轉換為低分辨率圖像的公式可以表示為:

圖片

其中Fout和F表示低分辨率圖像的輸出和輸入特征,S是柔和注意力,T是從高分辨率紋理圖像傳遞的特征。通過引入基於transformer的體系結構,TTSR可以成功地將紋理信息從高分辨率參考圖像傳輸到低分辨率圖像,以進行超分辨率任務。

上述方法在單個任務上使用變壓器模型,而Chen等人提出了圖像處理transformer(Image Processing Transformer--IPT),通過使用大規模的預訓練來充分利用transformer的優勢,並在包括超分辨率,降噪和去除降水在內的多個圖像處理任務中實現SOTA性能 。

圖片

如圖8所示,IPT由multi-head、encoder、decoder和multi-tails組成。 介紹了用於不同圖像處理任務的多頭多尾結構和任務嵌入。 將特征分為patch以放入編碼器-解碼器體系結構,然后將輸出reshape為具有相同大小的功能。 由於transformer模型在大規模預訓練中顯示出優勢,因此IPT使用ImageNet數據集進行預訓練。具體來說,通過手動添加噪聲,雨滴或下采樣將ImageNet數據集中的圖像降級為生成的損壞圖像。然后將降級的圖像用作IPT的輸入,並將干凈的圖像作為輸出的優化目標。還引入了一種自我監督的方法來增強IPT模型的泛化能力。然后,使用相應的頭,尾和任務嵌入對每個任務微調訓練后的模型。 IPT極大地提高了圖像處理任務的性能(例如,圖像降噪任務中的2dB),這證明了基於transformer的模型在low-level vision領域中的巨大潛力。

 

3.4 Video Processing

transformer在基於序列的任務(特別是在NLP任務)上表現出奇的出色。 在計算機視覺中,視頻任務中青睞時空維度信息。 因此,transformer適用於許多視頻任務,例如幀合成,動作識別和視頻檢索。

 

3.4.1 High-level Video Processing

01 Human Action Recognition

視頻人類行為任務是指識別和定位視頻中的人類行為。 上下文的內容在識別人類行為中起着至關重要的作用。  Rohit等提出了一種行為transformer來對感興趣的人和周圍事物之間的潛在關系進行建模。 具體來說,I3D用作提取高級特征圖的主干。通過ROI Pooling從中間feature maps中提取的features被視為查詢(Q)。 關鍵字(K),值(V)由中間特征計算得出。 自我注意機制在三個組成部分上進行,並輸出分類和回歸預測。Lohit等提出了一個可解釋的微分模塊,稱為時間transformer網絡,以減少類內方差並增加類間方差。Fayyaz和Gall提出了一個時間transformer,以在弱監督的環境下執行動作識別任務。

 

02 Face Alignment

  基於視頻的面部對齊任務旨在定位面部標志。 時間依賴性和空間信息對於最終性能很重要。 但是,前一種方法無法同時捕獲連續幀上的時間信息和靜止幀上的互補空間信息。 劉等人使用雙流transformer網絡分別學習時間和空間特征,以端到端的方式共同優化兩個流,並對特征進行加權以獲得最終預測。

 

03 Video Retrieval

基於內容的視頻檢索的關鍵是找到視頻之間的相似性。 為了克服缺點,僅利用視頻級功能的圖像級,Shao等人建議使用transformer來建模長范圍語義依賴性。此外,引入了有監督的對比學習策略用於hard negative mining。 基准數據集上的結果證明了性能和速度優勢。  Gabeur等提出了一種多模式transformer,以學習不同的跨模式提示,以表示視頻。

 

04 Acitivity Recognition

活動識別是指識別一組人的活動。 解決此問題的前一種方法是基於各個參與者的位置。  Gavrilyuk等提出了一個actor-transformer架構來學習表示。actor-transformer將2D和3D網絡生成的靜態和動態表示作為輸入。transformer的輸出是預測活動。

 

05 Video Object Detection

要從視頻中檢測對象,需要全局和局部信息。 Chen等引入了內存增強的全局局部聚集(memory enhanced global-local aggregation--MEGA)以捕獲更多內容。 表示性特征可增強整體性能並解決無效和不足的問題。  Yin等提出了一種時空transformer來聚合時空信息。 與另一個空間特征編碼組件一起,這兩個組件在3D視頻對象檢測任務中表現良好。

 

06 Multi-task Learning

未修剪的視頻通常包含許多與目標任務無關的幀。 因此,挖掘相關信息並刪除冗余信息至關重要。 為了應對在未修剪的視頻上進行多任務學習,Seong等人采用視頻多任務transformer網絡提取信息。 對於CoVieW數據集,任務是場景識別,動作識別和重要性得分預測。 ImageNet和Places365上的兩個經過預先訓練的網絡提取了場景特征和對象特征。 堆疊多任務transformer以借助類轉換矩陣(class conversion matrix --CCM)融合功能。

 

3.4.2 Low-level Video Processing

01 Frame/Video Synthesis

  幀合成任務是指在兩個連續幀之間或幀序列之后合成幀。 視頻合成任務旨在合成視頻。 劉等提出了ConvTrans模型,該模型包括五個部分:特征嵌入,位置編碼,編碼器,查詢解碼器和綜合前饋網絡。 與基於LSTM的研究相比,ConvTransformer通過更可並行化的架構實現了更高的結果。  Schatz等使用循環Transformer網絡從新穎的觀點合成人類的行為。

 

02 Video Inpainting

  視頻修補任務旨在完成幀中的缺失區域。 這項艱巨的任務需要沿空間和時間維度合並信息。  Zeng等為此任務提出了一個時空transformer網絡。 所有輸入幀均作為輸入,並被並行填充。 時空對抗損失用於優化transformer網絡。

 

3.4.3 Multimodality

01 Video Captioning/Summarization

     視頻字幕任務的目標是為未修剪的視頻生成文本。事件檢測和描述模塊是兩個主要部分。 zhou等提出了一種端到端的優化transformer來解決密集的視頻字幕任務。 編碼器將視頻轉換為表示形式。 提議解碼器根據編碼生成事件提議。 字幕解碼器使用提案掩蓋編碼並輸出描述。 Bilkhu等使用C3D和I3D網絡提取特征並使用transformer生成預測。 該算法在單個摘要任務和密集摘要任務上均表現良好。 Li等利用基於注意力糾纏(ETA)模塊的transformer來解決圖像字幕任務。Sun等提出了一種視覺語言框架來學習表示而無需監督。 該模型可以應用於許多任務,包括視頻字幕,動作分類等。

 

3.5 Self-attention for Computer Vision

在以上各節中,我們回顧了將transformer體系結構用於視覺任務的方法。 自我注意是transformer的關鍵部分。 在本節中,我們深入研究了基於自我注意的方法來應對計算機視覺中的挑戰性任務,例如語義分割,姿勢分割,對象檢測,關鍵點檢測和深度估計。

該部分內容請詳見《transformer解讀》的前幾頁ppt,里面有關於attention與self-attention的詳細介紹。

 

3.6 Efficient Transformer

盡管Transformer模型在各種任務中都取得了成功,但仍需要高內存和計算資源,這阻礙了在資源受限的設備(例如,手機端)上的實現。 在本節中,我們回顧有關壓縮和加速變壓器模型以有效實施的研究,包括網絡修剪,低秩分解,知識分配,網絡量化,壓縮體系結構設計。

  表4列出了一些用於壓縮基於Transformer的模型的代表性作品。

圖片

 

3.6.1 Pruning & Decomposition

在基於Transformer的預訓練模型(例如BERT)中,並行進行多個注意操作以獨立地建模不同標記(tokens)之間的關系,而對於特定任務則不需要所有的heads。Michel等從經驗上觀察到,可以在測試時去除很大比例的注意力頭,而不會顯着影響性能。 所需的attention heads在不同的層上有所不同,甚至對於某些層來說,一個 head就足夠了。 考慮到attention heads上的冗余,在[85]中定義了重要性分數以估計每個head對最終輸出的影響,並且可以刪除不重要的head以進行有效部署。 Dalvi等進一步從兩個角度分析了預訓練Transformer模型中的冗余,即一般冗余和特定於任務的冗余。 遵循彩票假設( lottery ticket hypothesis)等,Prasanna等分析了BERT中的彩票,並表明在基於Transformer的模型中也存在良好的子網。 在[96]中減少了FFN層和attention heads,以實現高壓縮率。

除了Transformer模型的寬度外,還可以減小深度(即層數)以加快推理過程。 與可以按同等方式計算Transformer模型中不同attention heads的情況不同,由於下一層的輸入取決於前一層的輸出,因此必須順序計算不同的層。 Fan等提出了一種逐層丟棄的策略來規范模型的訓練,然后在測試階段將整個層次一起刪除。考慮到不同設備中的可用資源可能會有所不同,Hou等人提出自適應地減小預定義Transformer模型的寬度和深度,並同時獲得具有不同尺寸的多個模型。重要的attention heads和神經元通過重新布線機制在不同的子網絡之間共享。

  除了直接在Transformer模型中丟棄零件模塊的修剪方法之外,矩陣分解還旨在根據低秩假設,對具有多個小矩陣的大矩陣進行近似。 例如,Wang等分解Transformer模型中的標准矩陣乘法並獲得更有效的推論。

 

3.6.2 Knowledge Distillation

知識蒸餾的目的是通過從巨大的教師網絡中轉移知識來訓練學生網絡。 與教師網絡相比,學生網絡通常具有較薄和較淺的體系結構,更易於在資源受限的資源上部署。 神經網絡的輸出和中間特征也可以用於將有效信息從教師傳遞給學生。Mukherjee等人基於Transformer模型,使用經過預訓練的BERT 作為老師,借助大量未標記的數據來指導小型模型的訓練。Wang等訓練學生網絡,以模仿預訓練教師模型中的自我注意層的輸出。 values的點積被引入作為指導學生的一種新的知識形式。 在[127]中也引入了一個助教[86],它可以減小大型預訓練的Transformer模型與緊湊的學生網絡之間的差距,從而使模仿變得更加容易。 考慮到Transformer模型中的各種類型的層(即,自我注意層,嵌入層,預測層),Jiao等人設計不同的目標功能,以將知識從教師傳授給學生。 例如,學生模型的嵌入層的輸出將通過MSE損失模仿教師的輸出。 還施加了可學習的線性變換,以將不同的特征映射到同一空間。 對於預測層的輸出,采用KL散度來度量不同模型之間的差異。

 

3.6.3 Quantization

量化的目的是減少表示網絡權重或中間特征的位數。 通用神經網絡的量化方法已得到充分討論,其性能可與原始網絡媲美。 最近,如何對Transformer模型進行特殊量化已經引起了人們的廣泛關注。  Shridhar等建議將輸入嵌入到二進制高維向量中,然后使用二進制輸入表示來訓練二進制神經網絡。  Cheong等通過低位(例如4位)表示來表示Transformer模型中的權重。 zhao等對各種量化方法進行了實證研究,結果表明k均值量化具有巨大的發展潛力。 針對機器翻譯任務,Prato等人提出了一種完全量化的Transformer,這是第一個8位質量模型,而論文中聲稱沒有翻譯質量損失。

 

3.6.4 Compact Architecture Design

除了將預定義的Transformer模型壓縮為小型Transformer模型外,一些工作還嘗試直接設計緊湊模型。 Jiang等通過提出一個新的模塊,稱為基於跨度的動態卷積(span-based dynamic convolution),簡化了自注意力的計算,該模塊結合了完整的連接層和卷積層,如圖9所示。

 

圖片

 卷積運算可計算出不同的標記(tokens),這比標准Transformer中密集的全連接層有效得多。 深度卷積還用於進一步降低計算成本。  Interesting hamburger layers在[1]中提出,它使用矩陣分解來代替原始的自我注意層。 矩陣分解可以比標准的自我注意操作更有效地計算,同時很好地反映了不同標記之間的依賴性。

Transformer模型中的自注意操作計算給定序列中不同輸入標記的表示之間的點積(圖像識別任務中的patch),其復雜度為O(N),其中N為序列的長度。 近來,大量方法致力於將復雜度降低到O(N),以使Transformer模型可擴展到長序列。 例如,Katharopoulos等將自我注意近似為內核特征圖的線性點積,並通過遞歸神經網絡揭示標記之間的關系。Zaheer等將每個標記(tokens)視為圖形中的一個頂點,兩個標記之間的內積計算稱為邊。 啟發式圖論和各種稀疏圖被組合在一起以近似Transformer模型中的稠密圖,這也實現了O(N)的復雜度。 從理論上講,Yun等證明具有O(N)復雜度的稀疏Transformer足以反映標記之間的任何類型的關系並且可以進行通用逼近,這為進一步研究具有O(N)復雜度的Transformer提供了理論保證。

 

4. Conclusions and Future Prospects

與卷積神經網絡相比,由於其競爭性能和巨大的潛力,Transformer正成為計算機視覺領域的熱門話題。 正如綜述所概述的那樣,為了揭示和利用Transformer的能力,近年來提出了許多解決方案。 這些方法在各種視覺任務(包括基本圖像分類,high-level vision,low-level vision和視頻處理)上均表現出出色的性能。 然而,用於計算機視覺的Transformer的潛力尚未得到充分的探索,還有一些挑戰有待解決。盡管研究人員已經提出了許多基於Transformer的模型來解決計算機視覺任務,但是這些工作是開創性的解決方案,還有很大的改進空間。例如,ViT 中的Transformer架構遵循NLP 的標准Transformer。專門針對CV的改進版本仍有待探索。 此外,還需要將Transformer用於除上述任務之外的更多任務。

此外,大多數現有的Visual transformer模型都設計用於處理單個任務。 許多NLP模型(例如GPT-3)已顯示出Transformer可以在一個模型中處理多個任務的能力。  CV領域的IPT 也能夠處理多種low-level vision任務,例如超分辨率,圖像降噪和排水。 我們相信,一個模型可以涉及更多任務。

Last but not the least,為CV開發有效的Transformer模型也是一個未解決的問題。 Transformer模塊通常非常龐大且計算量很大,例如,基本的ViT模型需要18B FLOP來處理圖像。 相比之下,輕巧的CNN模型Ghost Net僅用大約600M FLOP就能達到類似的性能。 盡管已經提出了幾種壓縮Transformer的方法,但是它們的復雜性仍然很大。 這些最初為NLP設計的方法可能不適用於CV。 因此,高效的Transformer模型是在資源受限的設備上部署Visual Transformer的基礎。

 

在公眾號中回復 transformer 即可下載論文原文與本文pdf版。

本文來源於微信公眾號“ CV技術指南 ”的CV技術總結部分 。更多內容與最新技術動態盡在公眾號發布。

歡迎關注公眾號“CV技術指南”,主要進行計算機視覺方向的論文解讀,最新技術跟蹤,以及CV技術的總結。正在進行的系列有網絡模型解讀、行為識別和CV技術總結。

原創文章第一時間在公眾號中更新,博客只在有空時間才更新公眾號文章


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM