LEARNING LOG

第 4 课:视觉 Transformer 演进:从 ViT 到 Swin Transformer

  • 目标检测
  • ViT
  • Swin-Transformer
  • 滑动窗口
  • 分层特征

[!info] 知识库导航 [[00_目标检测知识库总览_MOC|🏠 返回知识库总览 (MOC)]] | ⬅️ [[Lesson03_Transformer_and_Metrics|第03讲]] | ➡️ [[Lesson05_Two_Stage_Detectors|第05讲:Two-Stage 检测器]] | 🔗 [[Lesson06_Feature_Pyramids|金字塔特征承接]]

学习要点:掌握视觉 Transformer 从全局自注意力到层级化局部窗口的演变脉络,推导 Patch Embedding、W-MSA 与 SW-MSA 循环移位掩码矩阵机理,掌握会议论文 Method 架构图绘制规范。


0.0 参数与符号对照字典

在视觉 Transformer 与 Swin 体系中,以下参数构成了核心数学字典:

符号 / 术语英文全称物理机理与代数定义工程设计直觉
P\mathbf{P}Patch Size(图块边长)图像离散化投影切块的空间边长(如 4×44\times4 或 16×1616\times16)连续图像离散化为词元的空间采样基元尺寸。
Token\mathbf{Token}Token(特征词元)单个局部图像块经线性投影展开后的高维特征向量视觉序列的基本信息承载单元。
C\mathbf{C}Embed Dim(嵌入通道数)每个 Token 特征向量在高维流形中的通道维度特征子空间的表征容量。
M\mathbf{M}Window Size(局部窗口边长)Swin 限制自注意力计算的空间局部窗口边长(通常 M=7M=7)约束计算复杂度为线性的局部注意力计算边界。
W−MSA\mathbf{W-MSA}Window Multi-Head Self-Attention空间窗口内部独立的局部多头自注意力计算窗口内部密集交互,计算复杂度为 O(M2HW)\mathcal{O}(M^2 HW)。
SW−MSA\mathbf{SW-MSA}Shifted Window MSA相邻层间错开 ⌊M/2⌋\lfloor M/2 \rfloor 步长的移位窗口自注意力跨越原始窗口边界,建立跨局部区域信息连通。
Cyclic Shift\mathbf{Cyclic\ Shift}循环移位空间张量沿边界平移循环回卷操作(torch.roll)将不规则几何边缘碎块重新拼接为标准矩形窗口。
Masked Attn\mathbf{Masked\ Attn}掩码自注意力在移位重组窗口的点积亲和度中注入非邻域屏蔽掩码矩阵阻断因循环移位拼接造成的非物理相邻区域错误通信。
B\mathbf{B}Relative Position Bias基于空间相对坐标差值 (Δx,Δy)(\Delta x, \Delta y) 索引的可学习偏置项引入空间平移等变性与二维相对位置几何先验。

0.1 核心机制与架构精要速览

1. Vision Transformer (ViT) 计算复杂度瓶颈(设计动机)

  • 二次方复杂度问题:标准 ViT 将整幅图像平铺为长为 N=HWP2N = \frac{H W}{P^2} 的一维序列,全局自注意力计算复杂度为 O(N2C)=O(H2W2P4C)\mathcal{O}(N^2 C) = \mathcal{O}\left(\frac{H^2 W^2}{P^4} C\right)。在目标检测等高分辨率密集预测任务(如 800×1333800 \times 1333)下,显存与计算开销呈指数级爆发,无法直接扩展。

2. 基于局部窗口的自注意力(W-MSA, Window-based MSA)

  • 机制:将特征图划分成互不重叠的 M×MM \times M 空间窗口,自注意力严格局限在各窗口内部计算。
  • 线性复杂度:将计算开销压制为关于图像分辨率的线性函数 O(M2HWC)\mathcal{O}(M^2 HW C),系统地解决了密集多尺度骨干网络处理大尺寸特征图的显存瓶颈。

3. 移位窗口与掩码跨区通信(SW-MSA)

  • 错位采样机制:在连续注意力层之间将网格向右下角移动 (⌊M2⌋,⌊M2⌋)\left(\lfloor \frac{M}{2} \rfloor, \lfloor \frac{M}{2} \rfloor\right) 个单元,上一层的窗口边界转化为新窗口的中心,建立跨区域连通。
  • 循环移位与掩码阻断(Cyclic Shift & Masked Attention):
    • 通过 torch.roll 将边缘分裂的不规则小块回卷拼合为 4 个规整的标准 M×MM \times M 矩阵以维持 GPU 批量计算效率;
    • 构建 −100.0-100.0 掩码矩阵,将非物理相邻区域的注意力权重在 Softmax 计算中严格置零。

4. 空间位置编码机制演进

  • 1D 绝对可学习编码(ViT):为每个 Token 绑定独立参数,无法无缝适应推理分辨率动态变化(需双三次插值)。
  • 2D 相对位置偏置(Swin RPB):基于相对位移差 (Δx,Δy)∈[−M+1,M−1]×[−M+1,M−1](\Delta x, \Delta y) \in [-M+1, M-1] \times [-M+1, M-1] 建立可学习参数查找表 B^∈R(2M−1)×(2M−1)\hat{B} \in \mathbb{R}^{(2M-1) \times (2M-1)},为窗口内的位置关系提供平移相关的建模能力。

一、 Vision Transformer(ViT)全局表征与密集预测困境

标准 ViT 的前向张量演变过程如下:

  1. Patch Partition & Linear Projection: 输入图像 X∈RB×3×H×WX \in \mathbb{R}^{B \times 3 \times H \times W} 被解构为 HWP2\frac{HW}{P^2} 个不重叠的局部块,通过卷积核尺寸为 PP、步长为 PP 的卷积层投影为序列张量:

    Z0=Conv2d(X,kernel_size=P,stride=P)∈RB×C×HP×WPZ_0 = \text{Conv2d}(X, \text{kernel\_size}=P, \text{stride}=P) \in \mathbb{R}^{B \times C \times \frac{H}{P} \times \frac{W}{P}}
  2. 位置编码注入:

    Z0=Flatten(Z0)+Epos∈RB×N×CZ_0 = \text{Flatten}(Z_0) + E_{\text{pos}} \in \mathbb{R}^{B \times N \times C}
  3. 全局自注意力瓶颈: 在密集目标检测任务中,输入分辨率通常为 800×1333800 \times 1333。若 P=16P=16,序列长度 N≈4166N \approx 4166:

    • 亲和度矩阵尺寸为 4166×4166≈1.73×1074166 \times 4166 \approx 1.73 \times 10^7 个元素;
    • 浮点矩阵存储与梯度回传开销极大,直接导致消费级与服务器显卡 OOM 崩溃。

二、 Swin Transformer 层次化局部表征精解

Swin Transformer 通过四大核心创新打破了 ViT 在目标检测领域的计算壁垒:

2.1 创新一:Patch Merging 构造多尺度金字塔骨干

Swin 不采用单尺度的特征柱状流,而是通过 Patch Merging 模拟经典 CNN(ResNet)的四阶段空间降采样流水线:

  • Stage 1:H/4×W/4H/4 \times W/4,通道数 CC(对应 C2,空间细节丰富);
  • Stage 2:H/8×W/8H/8 \times W/8,通道数 2C2C(对应 C3);
  • Stage 3:H/16×W/16H/16 \times W/16,通道数 4C4C(对应 C4);
  • Stage 4:H/32×W/32H/32 \times W/32,通道数 8C8C(对应 C5,全局强语义)。
  • 工程价值:输出结构适配目标检测特征金字塔(FPN)的标准四层接口,可替换 ResNet 作为下游检测头的 Backbone。

2.2 创新二:基于局部窗口的自注意力(W-MSA)

将特征图解耦为 M×MM \times M(通常 M=7M=7)的固定局部网格:

  • ViT 全局复杂度:O(4HWC2+2(HW)2C)\mathcal{O}(4HWC^2 + 2(HW)^2 C)
  • Swin 局部复杂度:O(4HWC2+2M2HWC)\mathcal{O}(4HWC^2 + 2M^2 HW C)
  • 当特征图为 56×5656 \times 56、M=7M=7 时,注意力计算量降低约 64 倍,计算量与分辨率保持严格线性缩放关系。

2.3 创新三:滑动窗口自注意力(SW-MSA)与跨区交互

交替堆叠 W-MSA 与 SW-MSA:

  • 偶数层采用标准对齐窗口划分;
  • 奇数层将窗口网格向右下角滑动 (⌊M/2⌋,⌊M/2⌋)=(3,3)(\lfloor M/2 \rfloor, \lfloor M/2 \rfloor) = (3, 3) 个步长,窗口边界重新跨越原相邻窗口中心,实现跨区域空间语义连通。
     [第 1 层:标准切分 W-MSA]              [第 2 层:滑动错位切分 SW-MSA]
     +---------+---------+                 +---+-------+---+
     | 窗口 1  | 窗口 2  |                 | A |   B   | C |
     +---------+---------+  ──> 错位滑动 ──> +---+-------+---+
     | 窗口 3  | 窗口 4  |                 | D | 中心E | F |
     +---------+---------+                 +---+-------+---+
                                           | G |   H   | I |
                                           +---+-------+---+

2.4 创新四:循环移位(Cyclic Shift)与反向掩码(Masked Attention)

滑动窗口切分后边缘产生 9 个大小不规则的不完整窗口,直接计算会导致 GPU 线程利用率低下。

  1. 循环平移(Roll):沿特征图坐标轴将上方和左侧的不规则切块平移回卷至右侧与下方,重新组合为 4 个标准的 M×MM \times M 规整张量。

  2. 反向掩码矩阵(Masked Attention): 为防止回卷拼接在一起的非物理连续切块发生错误的跨区域信息交互,构建注意力掩码矩阵:

    Attn_Maski,j={0.0,位置 i 与位置 j 属于同一物理源切块−100.0,位置 i 与位置 j 来自不同物理源切块\text{Attn\_Mask}_{i, j} = \begin{cases} 0.0, & \text{位置 } i \text{ 与位置 } j \text{ 属于同一物理源切块} \\ -100.0, & \text{位置 } i \text{ 与位置 } j \text{ 来自不同物理源切块} \end{cases}

    在点积亲和度上叠加坡度掩码:

    Attention=softmax(QKTd+B+Attn_Mask)V\text{Attention} = \text{softmax}\left( \frac{QK^T}{\sqrt{d}} + B + \text{Attn\_Mask} \right)V

    送入 Softmax 后,−100.0-100.0 项对应的权重严格收敛为 0%0\%,在保持规则矩阵并行吞吐的同时,严格保障了几何拓扑的独立性。


三、 Method 章节高清网络框架图绘制规范

会议论文(CVPR/ICCV/ECCV/NeurIPS)中,框架总览图(Overview Architecture Figure)是审稿人评估工作规范度与工程完成度的核心依据。

违规写法(引发低分)规范学术做法(会议论文标准)审稿逻辑依据
栅格截屏 PNG/JPG<br>论文缩放时边缘模糊失真。全矢量格式输出(PDF / EPS)<br>任意放大倍率下文本、几何形状边缘清晰锐利。会议论文统一 LaTeX 编译排版,矢量资产是专业学术排版的基础素养。
高饱和原色杂乱堆砌<br>红绿蓝高明度原色对比刺眼。低饱和度配色体系(Morandi / Muted)<br>按模块划分语义色族(主干浅蓝、颈部浅青、检测头浅灰)。保持学术视觉语言的克制与清晰,引导审稿人注意力聚焦于拓扑创新点。
连接线条无张量维度<br>仅有空心细线指向方块。关键拓扑节点标注完整张量形状<br>如:[B, 3, H, W] -> [B, C, H/4, W/4]。使审稿人能够单凭框架图即刻逆向推导数据流动与计算复杂度,降低理解成本。
手绘工具拼凑<br>线条描边粗细不一,缺乏对齐约束。专业矢量工具规范绘制<br>推荐采用 draw.io、Adobe Illustrator 或 LaTeX TikZ。确保所有层级图框对齐、间距一致、圆角统一(通常约束描边为 1.0pt~1.5pt)。

四、 几何感受野与多尺度下采样机理剖析

4.1 窗口交替堆叠对等效感受野的倍增效应

  • 理论机理:在第 1 层(W-MSA),单点空间感受野严格局限在 M×MM \times M(例如 7×77 \times 7)窗口以内;
  • 错位连通:在第 2 层(SW-MSA),由于新窗口的中心横跨上一层 4 个独立窗口的交界线,每个 Token 在前向计算中已经汇聚了各自旧窗口的上下文。因此第二轮注意力交互完成后,有效感受野几何扩展至近 (2M−1)×(2M−1)(2M-1) \times (2M-1)(即 13×1313 \times 13);
  • 结论:交替堆叠 W-MSA 与 SW-MSA 在避免 O(N2)\mathcal{O}(N^2) 全局爆炸的同时,实现了类似 CNN 深度级联的感受野指数扩张。

4.2 极端微小目标(如 12×1212\times 12 像素)的特征保留分析

  • Stage 1(4 倍下采样):目标在特征图上对应 124×124=3×3=9\frac{12}{4} \times \frac{12}{4} = 3 \times 3 = 9 个连续 Token,保留了清晰的几何轮廓与边缘梯度,利于精确定位。
  • Stage 4(32 倍下采样):目标空间尺寸降为 1232×1232≈0.14\frac{12}{32} \times \frac{12}{32} \approx 0.14 个 Token,在连续下采样与 Patch Merging 过程中被广泛的背景像素完全加权覆盖,空间位置信息被不可逆破坏。
  • 工程结论:目标检测器通常需要借助特征金字塔融合浅层的高分辨率细节与深层的抽象语义;仅依赖深层特征时,微小目标的信息可能不足。

5. 本地运行记录

以下截图来自本机 PyTorch 环境中的当前轮执行记录;本课对应模块为 PASS。

Swin Transformer