- Swin transformer: Hierarchical vision transformer using shifted windows.
- Ze Liu, Yutong Lin, Yue Cao, Han Hu, Yixuan Wei, Zheng Zhang, Stephen Lin, and Baining Guo.
- arXiv preprint arXiv:2103.14030, 2021. 1, 2, 4
链接:
Swin Transformer
- 背景:
- VIT:
- 是一种将图像分割成固定的patches,然后对所有的patch使用全局自注意力计算。
- VIT的缺点:
- VIT不能将用于分辨率较高的图像作为输入:VIT将每个patch当作一个token;每个patch的H、W和通道维度作为token的特征,对整张图像的多个patch做自注意力计算,所以VIT的自注意力计算复杂度与图像尺寸是二次方关系。
- VIT:
- 论文创新点:
- 提出了一种新的Vision Transformer,能够作为一种计算机视觉的通用backbone。
- Swin Transformer 可用于图像分类、目标检测、语义分割等多个下游任务。
- 提出了一种(层次化的)hierarchical Transformer,其表示是用(移位窗口)shifted windows 计算的。
- 针对SW-MSE,提出了高效的批次优化方案和使用相对位置编码的两种优化trick。
- Swin Transformer 相对于输入图像大小具有线性计算复杂度:
- Swin Transformer对每个移位窗口中的多个patch做自注意力计算,由于窗口内patch的个数M是固定的,所以==(基于移位窗口的自注意力)SW-MSE的计算复杂度与图像尺寸是线性关系==。
- 提出了一种新的Vision Transformer,能够作为一种计算机视觉的通用backbone。
Swin Transformer 原理
Swin Transformer前向计算过程
基于移动窗口的多头自注意力(SM-MSE)
优化1:如然提高移动窗口的计算效率?
优化2:使用相对位置偏置,而不是绝对位置偏置
在计算自注意力时,在计算相似度的过程中对每个head加入相对位置偏置
B
∈
R
M
2
×
M
2
B\in\mathbb R^{M^2×M^2}
B∈RM2×M2,公式如下:
符号含义:
-
Q
,
K
,
V
∈
R
M
2
,
d
Q,K,V\in\mathbb R^{M^2,d}
Q,K,V∈RM2,d :分别为Query,Key,Value 的张量矩阵
- d:Query和Key的维度。
-
M
2
M^2
M2:(局部)窗口内的patch个数
由于沿每个轴的相对位置处于[−M+1, M−1]的范围内,所以参数化一个较小尺寸的偏置矩阵
B
^
∈
R
(
2
M
−
1
)
×
(
2
M
−
1
)
\hat B\in\mathbb R ^{(2M−1)×(2M−1)}
B^∈R(2M−1)×(2M−1),B 中的值取自
B
^
\hat B
B^。
从上表中明显看出使用相对位置偏置的优势:
1. 实验表明 使用该 相对位置偏置 的效果显著优于 不使用位置偏置 或 使用绝对位置嵌入。
2. 进一步向输入添加绝对位置嵌入会略微降低性能,因此在实现中没有采用。
3. 此外,预训练中学习到的相对位置偏置,也可用于通过双三次插值初始化具有不同窗口大小的微调模型。