Swin Transformer架构

概述

Swin Transformer(Shifted Windows Transformer)是微软研究院于2021年提出的视觉Transformer架构,其核心创新在于引入了层次化结构和Shifted Window机制,在保持高效计算的同时实现了对图像像素的层次化建模。Swin Transformer最初用于图像分类,随后成为目标检测、语义分割等多个视觉任务的基础 backbone。

1. 层次化结构(Hierarchical Architecture)

1.1 多阶段设计

Swin Transformer采用类似CNN的层次化结构,通过Patch Merging实现分辨率的逐步降低:

阶段特征图尺寸通道数Window大小
Stage 1H/4 × W/4967×7
Stage 2H/8 × W/81927×7
Stage 3H/16 × W/163847×7
Stage 4H/32 × W/327687×7

1.2 Patch Merging

每个阶段的开始,通过Patch Merging操作将相邻的2×2 patch合并:

  • 输入:4个patch的token(维度为C)
  • 输出:1个token,通道数变为4C
  • 降采样比例:2×

1.3 与ViT的对比

  • ViT:单一尺度的特征图,全局注意力计算复杂度为O(n²)
  • Swin:层次化多尺度特征图,Window内注意力复杂度为O(M²×n),其中M是window大小(默认7)

2. Shifted Window机制

2.1 Window-based Self-Attention

标准的Self-Attention计算复杂度为O(n²),对于高分辨率图像而言计算量巨大。Swin Transformer将图像划分为不重叠的Windows,每个Window内独立计算注意力。

计算过程:

输入特征图划分为 (H/M) × (W/M) 个Windows
每个Window包含 M×M 个patches
Window内计算自注意力,复杂度:O(M²×n)

2.2 Shifted Window Partition

连续两个Swin Transformer Block采用不同的Window划分方式:

W-MSA(Window MSA):

  • 采用常规的Window划分
  • 无跨Window信息交互

SW-MSA(Shifted Window MSA):

  • Window偏移量为(M/2)
  • 引入跨Window的连接
  • 实现全局感受野

位移示意:

Block 1 (W-MSA):          Block 2 (SW-MSA):
┌───┬───┬───┬───┐        ┌───┬───┬───┬───┐
│ A │ B │ C │ D │        │    │ E │ F │   │
├───┼───┼───┼───┤        ├───┼───┼───┼───┤
│ E │ F │ G │ H │   ->   │ I │ J │ K │ L │
├───┼───┼───┼───┤        ├───┼───┼───┼───┤
│ I │ J │ K │ L │        │    │ M │ N │   │
├───┼───┼───┼───┤        └───┴───┴───┴───┘
│ M │ N │ O │ P │              ↓
└───┴───┴───┴───┘         带padding的shifted划分

2.3 高效计算策略

Cyclic Shift: 将移位后的区域划分为多个区域,分别计算注意力后还原 Mask机制: 使用mask避免无效的跨Window注意力计算

3. 局部注意力与全局注意力的结合

3.1 局部注意力机制

每个Window内的自注意力捕获局部特征:

  • 捕获同一局部区域的像素级关系
  • 计算高效,适合高分辨率特征图
  • 通过QKV共享和相对位置编码增强局部建模能力

3.2 跨Window信息交互

通过Shifted Window机制实现跨Window信息传递:

  • 相邻Block之间的Window偏移建立连接
  • 信息沿着shift方向流动到相邻Window
  • 经过多层堆叠后,感受野逐步扩大

3.3 相对位置编码

Swin Transformer采用相对位置偏置(Relative Position Bias):

其中B是可学习的相对位置偏置矩阵,维度为(M²+1)×(M²+1),M为Window大小。

3.4 层次化感受野

经过4个阶段的处理,感受野逐步扩大:

阶段有效感受野
Stage 1局部7×7
Stage 2局部14×14
Stage 3局部28×28 + 部分跨Window
Stage 4全局感受野

4. 关键技术创新总结

技术作用
Patch Merging实现层次化结构,下采样特征图
Window Partition将全局注意力转化为局部,降低复杂度
Shifted Window建立跨Window连接,扩大有效感受野
Cyclic Shift + Mask高效实现shifted window attention
Relative Position Bias增强局部建模能力,保留空间信息

5. 模型变体

模型参数量Window大小适用场景
Swin-T28M7轻量级应用
Swin-S50M7平衡精度与速度
Swin-B88M7标准应用
Swin-L197M7大型模型/预训练

Swin Transformer的层次化设计和Shifted Window机制使其成为视觉领域的基础backbone,后续的Swin-V2、Swin-UNet等模型均基于此架构进行改进和扩展。