Files
2026-05-16 17:16:51 +08:00

4.9 KiB
Raw Permalink Blame History

Swin Transformer架构

概述

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

1. 层次化结构Hierarchical Architecture

1.1 多阶段设计

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

阶段 特征图尺寸 通道数 Window大小
Stage 1 H/4 × W/4 96 7×7
Stage 2 H/8 × W/8 192 7×7
Stage 3 H/16 × W/16 384 7×7
Stage 4 H/32 × W/32 768 7×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-MSAWindow MSA

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

SW-MSAShifted 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

Attention(Q, K, V) = Softmax(\frac{QK^T}{\sqrt{d}} + B)V

其中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-T 28M 7 轻量级应用
Swin-S 50M 7 平衡精度与速度
Swin-B 88M 7 标准应用
Swin-L 197M 7 大型模型/预训练

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