论文阅读:Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
Swin Transformer: Hierarchical Vision Transformer employing Shifted Windows
本文探讨了最新提出的名为Swin Transformer的新一代视觉Transformer架构。该架构在计算机视觉领域展现出卓越的一般性核心网络能力。该模型采用滑动窗口机制(Shifted Windows)来执行自注意力计算,并通过这种设计实现了对跨模态数据的有效处理。特别地,在面对物体尺寸的巨大差异以及高分辨率图像捕捉的问题时表现出色。
主要贡献和特点包括:
- 多级Transformer架构:Swin Transformer通过聚合图像块(patches)构建多层次特征图,在多个尺度上有效建模的同时保证计算复杂度呈线性增长与图像尺寸相关。
- 滑动窗口机制:该方法通过滑动窗口机制将注意力焦点从一层传递到另一层,在保持每层非重叠区域高效计算的同时实现跨区域信息连接。
从而让模型捕捉到空间上的局部特征并跨越不同区域建立全局联系。
3. Method
3.1. Overall Architecture

The overview of the Swin Transformer architecture is illustrated in Figure 3, which presents a minimal version (SwinT). This begins with a patch segmentation module that divides the input RGB images into non-overlapping patches, similar to ViT. Each patch is treated as a 'token', with its feature set defined by the expanded RGB values of the original pixels. In our implementation, we use a 4×4 patch size, resulting in each patch having a feature dimension of 4×4×3=48. In our implementation, we applied a linear embedding layer to project these features into an arbitrary dimension (denoted as C).
在这些patch token上被应用于若干个带有修改型自注意力机制的Transformer块( Swin Transformer块 )。这些Transformer块保留了token的数量(\frac H4 \times \frac W4),并与其线性嵌入层共同构成一类称为' stage 1'的模块。
为了实现分层表示,在更深的网络层次中使用patch merging layers来进行降维操作以降低计算复杂度。具体而言,在经过2\times2=4倍率缩减后(对应于分辨率的2\times下采样),输出通道数被设定为原来的两倍即2C。随后采用Swin Transformer模块来进行特征转换操作,在此过程中空间分辨率维持在\frac{H}{8} \times \frac{W}{8}水平上不变。值得注意的是,在第二阶段之后会立即执行这一系列操作:从第三阶段开始一直到第四阶段结束均为重复执行这一过程。经过上述多级特征提取后会系统性地生成一个层次分明的空间表征体系
Swin Transformer Block

其核心架构基于将Transformer块中的标准多头自注意力(MSA)模块替换为移位窗口架构(具体内容可见于第3.2节)。其余层结构未做更改。具体结构可见于图3(b),其中每个Swin Transformer块由一个移位窗口的MSA模块引导至前后双层MLP结构,并在各模块间依次应用LayerNorm层,在每组处理结束后均接有残差连接机制。
3.2. Shifted Window based Self-Attention
基于标准Transformer架构及其在图像分类任务中的适配版本都执行全局自注意力机制。这种全连接操作会导致时间复杂度呈平方增长趋势(O(n^2)),因此在涉及大量tokens的任务中(如高分辨率图像识别),这种方法往往难以满足需求。
Self-attention in non-overlapped windows
为了实现高效的建模目标,我们建议在一个局部窗⼝内进行自注意力计算。我们将所有窗⼝划分为非重叠且均匀分布于图像中的结构。假设每个窗⼝内包含大小为M×M的patch,则全局MSA模块与基于窗⼝的自注意力模块在h \times w数量级下的计算复杂度分别为:
\begin{aligned}&\Omega(\mathbf{MSA})=4hwC^2+2(hw)^2C,\\ &\Omega(\mathbf{W-MSA})=4hwC^2+2M^2hwC,\end{aligned}
其中前者与patch数量h \times w呈二次方关系发展;后者在固定参数设置(默认选择值7)下呈现线性关系发展。对于大h \times w场景而言,全局自注意力方法的成本过高;而基于窗⼝划分的设计则具有良好的扩展性特点。
Shifted window partitioning in successive blocks
基于该窗格的自注意力模块受限于跨窗格连接能力的缺失,在建模性能方面存在局限性。为了在保持非重叠窗格间高效率计算的同时实现跨窗格连接功能,在Swin Transformer连续块间采用交错窗格划分策略。这种设计通过交替应用两种不同的窗格划分配置实现了模型性能的有效提升。

如图2所示,在8×8特征图中第一部分模块起始于左上角像素的位置,并采用标准分割方案将该区域均等分割为4×4(M=4)的小块区域(每个小块尺寸为2×2)。随后将该区域沿着每个维度平移\left(\left\lfloor \dfrac{M}{2} \right\rfloor, \left\lfloor \dfrac{M}{2} \right\rfloor \right)个像素单位。
通过移位窗口划分方法,连续的Swin Transformer块计算为:
\begin{aligned} &\hat{\mathbf{z}}^{l}=\mathrm{W-MSA}\left(\mathrm{LN}\left(\mathbf{z}^{l-1}\right)\right)+\mathbf{z}^{l-1}, \\ &\mathbf{z}^{l}=\mathbf{MLP}\left(\mathbf{LN}\left(\hat{\mathbf{z}}^{l}\right)\right)+\hat{\mathbf{z}}^{l}, \\ &{\hat{\mathbf{z}}}^{l+1}={\mathrm{SW-MSA}}\left({\mathrm{LN}}\left({\mathbf{z}}^{l}\right)\right)+{\mathbf{z}}^{l}, \\ &\mathbf{z}^{l+1}=\mathsf{MLP}\left(\mathsf{LN}\left(\hat{\mathbf{z}}^{l+1}\right)\right)+\hat{\mathbf{z}}^{l+1}, \end{aligned}
其中\hat{\mathbf{z}}^{l}和\mathbf{z}^{l}分别表示块L的(S)WMSA模块和MLP模块的输出特征;W-MSA和SW-MSA分别表示使用规则和移位窗口分区配置的基于窗口的多头自关注。
Efficient batch computation for shifted configuration
移位窗口划分的一个局限性是会增加更多的窗口数量。具体而言, 从常规划分的\lceil\frac{h}{M}\rceil \times \l ceil\frac{w}{M}\r ceil 增加到移位配置后的(\l ceil\frac{h}{M}\r ceil +1) \times (\l ceil\frac{w}{M}\r ceil +1), 其中部分窗口的实际尺寸将小于M \times M. 为了解决这一问题, 一个可行的解决方案是对小尺寸窗口进行填充, 使其达到大小为M \times M, 同时在注意力计算过程中对填充区域实施屏蔽. 当常规划分使用较小尺寸时(如2 × 2),这种解决方案带来的计算开销会显著增加(2 × 2 → 3 × 3, 计算量提升约2.25倍)。针对这一挑战, 我们提出了一种高效的批量处理方法. 具体而言, 通过循环移动的方式重新排列特征图中的像素信息(如图4所示)。经过移动后, 批量处理的一个区域可能由几个在原始特征图上并不相邻的小块组成. 因此, 我们引入了一种遮蔽机制, 确保仅在同一块内执行自注意力计算. 这种方法保持了批量区域的数量与常规划分类别一致的同时实现了更高的效率. 表5展示了该方法在实现低延迟方面的性能表现.

Relative position bias
关于Swin Transformer中相对位置编码的深入解析
在计算自注意力时,我们采用了来自文献[49, 1, 32, 33]的方法。其中,在每个注意力头中考虑相对位置偏置B后(即通过SoftMax函数处理后的结果与偏置矩阵相乘),输出结果为\operatorname{SoftMax}(QK^T/\sqrt d+B)V。这里定义:其中M^2表示窗口内所包含的块数量。具体来说,在每一轴上相对位置坐标均被限制于区间[-M+1, M-1]之间。为此,在构建偏置矩阵时,默认采用大小为(2M-1)\times(2M-1)的小尺寸矩阵\hat{B}进行参数化。
我们注意到,在对比现有方法(即未引入该偏差项或未使用绝对位置嵌入)的基础上,在实验数据集上取得了显著的进步(如表4所示)。为了保持输入处理的有效性,在设计网络架构时选择不额外引入绝对位置嵌入(参考文献[20]中的相关内容),因为这可能会导致性能下降(参考文献[63]中的分析)。此外,在预训练阶段所学习到的相对位置偏差参数还可以通过双三次插值法(参考文献[20, 63])来辅助初始化不同窗口规模下的微调模型
3.3. Architecture Variants
我们开发了一个核心模型并命名为SwiT-B,其参数规模及运算量与当前主流方法相当的基础上提出了三个变体:SwiT、SwiS及SwiL分别代表不同比例的设计方案
- Swin-T: C = 96, 层数 = {2, 2, 6, 2}
- Swin-S: C = 96, 层数 = {2, 2, 18, 2}
- Swin-B: C = 128, 层数 = {2, 2, 18, 2}
- Swin-L: C = 192, 层数 = {2, 2, 18, 2}
具体而言,在研究过程中, 我们将重点分析早期编码器模块中的卷积层参数数量C. 这些不同架构设计的变体形式在ImageNet图像分类任务中, 其模型大小、计算复杂度指标(FLOPs)以及处理速率均被详细列出并展示于表1中.
