論文筆記 — Vision Transformer with Deformable Attention

Watson Wang
7 min readApr 26, 2023

paper link: https://arxiv.org/abs/2201.00520

Introduction

●Vision Transformer (ViT) 堆疊多個 Transformer 塊以處理 Patch Sequence,從而產生用於圖像分類的無卷積模型。 與CNN 模型相比,基於 Transformer 的模型具有更大的 receptive field 。但缺點是每個查詢會對應到比較多的 key ,會產生高計算成本和緩慢的收斂,並增加過度擬合的風險。

●為了節省過多的注意力計算,Swin Transformer 採用基於窗口的局部注意力,而 Pyramid Vision Transformer (PVT) 對 key 和 value的 feature map 進行下採樣以節省計算量

●理想情況下,我們會期望查詢的key/value set 是靈活的並且能夠適應每個單獨的輸入,在 CNN 的文獻中,deformable receptive field 已被證明可以有效地選擇關注更多信息區域 。

●最著名的是Deformable Convolution Networks(DCN),它在許多視覺任務上取得了不錯的結果。

●DCN 的實作是會導致高內存計算複雜度。 因此,儘管最近的一些工作研究了 Transformers 中的可變形機制的想法,還沒有人將其視為 backbone 的基本構建,可變形機制通常被用於detection head。

●作者提出了一個簡單高效的 deformable self-attention 模塊,配備了一個強大的金字塔主幹,稱為 Deformable Attention Transformer(DAT),用於圖像分類和各種密集預測任務。

Method

Deformable Attention

  1. 在 DCN 中,特徵圖上的每個元素單獨學習其偏移量,其中 H × W × C 特徵圖上的 3 × 3 可變形卷積具有 9×H×W×C 的空間複雜度。 如果我們直接在 attention 模塊中應用相同的機制,計算複雜度會跟著上升
  2. Deformable Attention 可以在特徵圖中重要區域的訓練下有效地對 token 之間的關係進行建模。 這些聚焦區域由多組變形採樣點確定,這些變形採樣點是通過偏移網絡(offset network) 從查詢中學習到的。
  3. 接著採用雙線性插值從特徵圖中採樣特徵,然後使用採樣的特徵獲得key和value。 最後應用標準的多頭注意力(Multi-head attention) 從變形後的值來計算特徵。

Deformable Attention Module

  1. 給定輸入特徵圖 x ∈ R (H ×W ×C),生成點 p ∈ R (H/r) ×(W/r) ×2 的均勻網格作為參考點。 參考點的值是線性間隔的二維坐標 {(0,0),…,((H/r)− 1,(W/r) − 1)},並歸一化到[-1,+1]
  2. 為了獲得每個參考點的偏移量,使用一個輕量級子網絡 offset network 以生成偏移量,並加入預定義的s來縮放 Δp 的幅度以穩定訓練過程。

Offset generation

偏移量生成採用了一個 subnetwork,它使用查詢特徵並分別輸出參考點的偏移值,每個參考點覆蓋一個局部s×s區域(s是偏移量的最大值)以學習合理的偏移量。

使用兩個非線性激活的捲積模塊:

  1. 輸入特徵首先通過 k × k 深度卷積來捕獲局部特徵
  2. 採用 GELU 激活和 1×1 卷積來獲得 2D 偏移量

Offset groups

為了增加選擇 deformable point 的多樣性,作者在 MHSA 中遵循類似的範例,並將特徵通道分成 G 組。 來自每個組的特徵使用會共享subnetwork 分別生成相應的偏移量。

Computational Complexity

Deformable Multi-head Attention 與 PVT 或 Swin Transformer 中的Attention 計算具有相似的計算成本。 唯一的額外成本是用於生成偏移量的子網絡。 整個模塊的複雜度為:

其中Ns = (H*W)/(r²)為sample points 數量。 可以看出偏移網絡的計算成本跟通道大小具有線性複雜度,且相對於注意力計算的成本來說是較小的。

Model Architectures

  1. 輸入形狀為 H × W × 3 的輸入圖像,然後獲得 (H/4) × (W/4) × C的Patch embedding。在兩個連續的stage之間,有一個非重疊的 2×2 卷積,stride為 2,以對特徵圖進行下採樣,將空間大小減半並將特徵維度加倍。
  2. 在 DAT 的第三和第四階段引入了連續的局部注意力和可變形注意力塊。 特徵圖首先由基於窗口的local self-attention 以在局部聚合信息,然後通過deformable attention 對局部增強標記之間的全局關係進行建模。
  3. 由於前兩個階段主要學習局部特徵,因此這些早期階段的deformable attention效果不太好。 此外,前兩個階段的鍵和值具有相當大的空間大小,這大大增加了deformable attention中dot product 和雙線性插值的計算成本。
  4. 為了在模型容量和計算負擔之間取得權衡,我們只將deformable attention 放在第三和第四階段,並採用 Swin Transformer中的 shift-window attention 以獲得更好的表示在早期階段。 我們在不同的參數和 FLOP 中構建了三種 DAT 變體,以便與其他 Vision Transformer 模型進行公平比較。 我們通過在第三階段堆疊更多塊並增加隱藏維度來改變模型大小。

Deformable attention at different stages

在不同階段的可變形注意力取代了 Swin Transfomer的 shift-window 注意力。 如右表所示,僅替換最後一個階段的注意力提高了 0.1,替換最後兩個階段導致性能增益為 0.7(達到 82.0 的整體精度),且在早期階段用更易變形的注意力替換會略微降低準確性。

Result

ImageNet-1K Classification

●optimizer: AdamW

●epochs : 300

●batch size: 1024

●learning rate: 1e-3

COCO Object Detection

使用 RetinaNet + Deformable Attention Transformer進行(輸入圖像分辨率為 1280×800)

Semantic Segmentation

●輸入圖像分辨率為 512×2048

● † 表示指標是在具有翻轉增強的多尺度測試設置

--

--