[論文筆記] Swin Transformer

目录

1. Introduction

2. Related Work

3. Method

3.1. Overall Architecture

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

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

參考文獻


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
    •  \Omega (MSA)=4hwC^2 + 2(hw)^2C
    • \Omega (W-MSA)=4hwC^2 + 2M^2hwC
    • 因此當 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 為窗口的大小)
  • 構建一個可訓練的 \hat{B} \in R^{ (2M-1)\times (2M-1) } ,用來查詢 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

參考文獻

  1. Swin Transformer: Hierarchical Vision Transformer Using Shifted Windows
  2. 【Swin Transformer】W-MSA与MSA时间复杂度的理解
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值