Swin Transformer: Hierarchical Vision Transformer using Shifted Windows


Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

2021-04-20 15:16:06

Paperhttps://arxiv.org/pdf/2103.14030.pdf 

Codehttps://github.com/microsoft/Swin-Transformer 

 

1. Background and Motivation

本文提出了一種新的多層級 Transformer 視覺模型,該模型對不同的層次,使用了不同的窗口大小,使其可以作為一個 general 的backbone,用於目標識別、物體檢測、語義分割等任務。

如圖所示, 作者提到,從 NLP 領域將 Transformer 模型遷移到 CV 領域並不是很直觀。主要是因為如下兩點原因:

1). 尺寸

2). 像素分辨率更高 vs 句子中的單詞

 

 

2. Swin-Transformer

 

如圖 3 所示,給定輸入的圖像,假設維度為 H*W*3,隨后進行常規的圖像分塊(Patch Partition)。得到的每一個圖像塊當做是 tokens,然后將這些圖像塊的特征堆疊起來,構成向量。然后用一個 linear embedding layer 進行映射,可以是任意的維度,假設這里的維度為 C。可以看到作者將 Linear Embedding 和 Swindle Transformer Block 看做是第一階段。

 

為了得到一個多層級的表達,作者提出隨着網絡深度的加深,利用 patch merging layer 進行 tokens 的減少。然后利用提出的 swin-transformer 模塊進行特征學習。該模塊與常規 transformer layer 的不同之處在於 shifted windows。一個 Swin-transformer block 包含一個 shifted window based MSA module,2-layer MLP with GELU non-linearity。

 

2.1. Shifted Window based Self-Attention

Self-attention with non-overlapped windows.

為了更加有效地建模,作者在 local-windows 內部提出利用 self-attention 進行計算。假設每一個窗口包含 M*M 個圖像塊,一個全局 MSA module 和 基於 window 的圖像塊的復雜度分別為:

可以發現,Global self-attention 模塊幾乎是無法計算較大分辨率的圖像。因此,這就極大的限制了其在計算機視覺領域中的應用。因為有些場景就是需要高清的圖像處理技術。

 

Shifted window partitioning in successive blocks

如圖 2 所示,第一個模塊用的是常規的窗口划分策略,即從左上角開始,將一個 8*8 的特征圖,划分為 2*2 個 大小為 4*4 的圖像塊。然后緊跟着的模塊采用的是 shifted windows,通過將窗口從常規划分窗口的位置移動 (M/2, M/2) 個位置。有了這種漂移的窗口划分方法,連續的 swin-transformer block 可以通過如下的方式進行計算:

 

其中,Z^l 表示W-MSA 或者 SW-MSA 的第 l 個模塊的輸出特征。這種漂移窗口划分方法將相鄰不重疊的窗口進行了關聯,作者發現這對圖像分類、物體檢測、語義分割等任務均有提升。

 

Efficient Batch Computation for shifted configuration: 

shifted window 方法所帶來的一個問題是:顯著的增加了 windows 個數。其中一些 windows 的大小小於 M*M。一種 naive 的做法是將其填充到 M*M 的大小,而在計算 attention的時候,將填充的東西直接給忽略。本文提出一種更加有效的方法,即:cyclic-shifting toward the top-left direction 

 

在這次 shift 之后,一批 window 可能包含幾個 sub-windows,並且在 feature maps 上並不相鄰,所以,可以用掩模的方法來限制 self-attention 的計算。有了這個 cyclic-shift,batched windows 的個數保持了和常規 windows 划分方法相同數量,因此也是較為高效的。

 

Relative Position Bias: 

在計算 self-attention 的時候,作者考慮新增了一個 relative position bias 到每一個 head,來計算相似性:

 

其中,Q, K, V 分別表示 query, key and value matrices, d 是 query/key 維度,M^2 是一個窗口內圖像的塊數。

 

2.2. Architecture Variants

常規的模型稱為 Swin-B,此外,作者還搞了很多變體,例如 Swin-T,Swin-S,Swin-L,分別是 0.25,0.5 以及 2 倍的模型大小和計算復雜度。值得注意的是,這里的 Swin-T 和 Swin-S 和 ResNet-50,ResNet-101 的參數量相當。這些模型變體的超參數如下所示:

 

 

3. Experimental Results

  

 

 

==


免責聲明!

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



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