目录
3.2. Shifted Window based Self-Attention
Self-attention in non-overlapped windows
Shifted window partitioning in successive blocks
Efficient batch computation for shifted configuration
4.1 Image Classification on ImageNet-1K
4.3. Semantic Segmentation on ADE20K
1. Introduction
略
2. Related Work
略
3. Method
3.1. Overall Architecture
此模型的設計,能輸出類似一般 CNN 的階層表徵,因此能很方便的將其用於替換其他視覺任務模型的骨幹。下面先介紹模型架構中的幾個運算層 :
- Patch Partition Layer
- 將輸入的RGB圖像,拆分成多個尺寸為 4x4 且不重疊的 patches。
- 每個 Patch 中所有像素值會被 Concat 成一個向量,形成一個特徵維度為 4 x 4 x 3 的token 。
- Linear Embedding Layer
- 將 Patch Token 的特徵向量,映射至另一空間中,使其維度變成 C
- Swin Transformer Block
- 此運算不會改變輸入輸出的尺寸與維度
- 包含了幾個模塊 :
- Residual Connection
- LayerNorm
- W-MSA : 一般的 Multi-Head Self Attention
- SW-MSA : 基於 Shift Windows 的 Multi-Head Self Attention
- 搭配 GELU 的 MLP
- Patch Merging Layer
- 減少 Token 數量,增加特徵維度,產生類似 CNN 階層特徵圖的效果
- 將多組相鄰的 2 x 2 個 Tokens 進行 Concat 運算後,減少 Token 數量並增加其維度至 4C
- 進行一個線性轉換,使特徵維度降至 2C
3.2. Shifted Window based Self-Attention
- 在原始的 Transformer 以及 Vision Transformer 中,都採用了全局自注意力,因此每個 Token 之間都需要被計算。
- 這樣會產生 O(N^2) 的計算複雜度 (N 為 Token 數量),因此難以被使用在視覺任務中
- 論文中,先是使用self-attention within local windows 降低計算量,再使用 shifted window partitioning 建立局部資訊的連結。
Self-attention in non-overlapped windows
- 為了提升建模效率,我們只在 local window 中計算自注意力
- 圖像被平均切割成多個 windows,每個 window 中都包含 M x M 個 Patches
- 計算複雜度的比較
- 假設圖像共有 hw 個 PatcH,Window 中含有 M x M 個 Patch
- 因此當 hw 很大時,W-MSA 能降低計算量
Shifted window partitioning in successive blocks
- W-MSA 因為只在window 內計算 SA,因此缺乏 window 之間的連結,也限制了其建模的能力
- 提出了shifted window partitioning approach,讓相鄰的兩個 Swin Transformer blocks 交替使用不同的分隔設置
Efficient batch computation for shifted configuration
- 使用了 shifted window partitioning 後會產生一個問題: 每次切割完得到的窗口數量不同,且窗口尺寸會改變。(以上圖為例, 窗口數量在 shift 後從 2x2 變成 3x3)
- 為了保持自注意力計算輸入的窗口尺寸相同 (以上圖為例 4 x 4),直觀的作法是先 padding 尺寸較小的窗口,並搭配 mask 去除 padding 部分的計算,但這樣做會增加計算量。
- 論文中提出 cyclic-shifting,將尺寸較小的窗口合併計算, 再使用 mask 去除不同區域之間的自注意力計算
Relative position bias
- 在計算自注意力時,參考了之前的研究,加上了與 Q, K 相對位置相關的項 B
- 每一軸,Q, K 之間相對位置的值域為 [-M+1, M-1] (其中 M 為窗口的大小)
- 構建一個可訓練的 ,用來查詢 B 的值
- 加上Relative position bias後,效果比不加或是使用一般位置編碼來的好
3.3. Architecture Variants
略
4. Experiments
4.1 Image Classification on ImageNet-1K
4.2. Object Detection on COCO
4.3. Semantic Segmentation on ADE20K
5. Conclusion
- 提出了新的架構,特性是:
- 可產生類似 CNN 的階層特徵
- 計算量與影像的尺寸呈線性關係
- 在影像分類、目標檢測、語意分割任務取得SOTA表現
- ImageNet
- COCO
- ADE20K