Swin Transformer:使用移位窗口的分层视觉Transformer


📖阅读时长:19分钟

🕙发布时间:2025-02-14

近日热文:全网最全的神经网络数学原理(代码和公式)直观解释
欢迎关注知乎和公众号的专栏内容
LLM架构专栏
知乎LLM专栏
知乎【柏企
公众号【柏企科技说】【柏企阅文
Swin Transformer通过从小尺寸的图像块开始构建分层表示,并在更深的Transformer层中逐渐合并相邻图像块。借助这些分层特征图,Swin Transformer模型可以方便地利用诸如特征金字塔网络(FPN)或U - Net等用于密集预测的先进技术。

Swin Transformer的一个关键设计要素是其在连续的自注意力层之间对窗口划分的移位操作。移位后的窗口连接了前一层的窗口,在它们之间提供了连接,显著增强了模型的建模能力。

架构

它首先像ViT一样,通过一个图像块分割模块将输入的RGB图像分割成不重叠的图像块。每个图像块被视为一个 “标记”,其特征被设置为原始像素RGB值的连接。在原始实现中,我们使用4×4的图像块大小,因此每个图像块的特征维度为4×4×3 = 48。对这个原始值特征应用一个线性嵌入层,将其投影到任意维度(表示为C)。

在这些图像块标记上应用几个具有改进自注意力计算的Transformer块(Swin Transformer块)。Transformer块保持标记的数量(H / 4 × W / 4),并且与线性嵌入一起被称为 “阶段1”。

为了生成分层表示,随着网络深度的增加,通过图像块合并层减少标记的数量。第一个图像块合并层将每组2×2相邻图像块的特征连接起来,并对4C维的连接特征应用一个线性层。

这将标记数量减少了2×2 = 4倍(分辨率下采样2倍),并且输出维度设置为2C。之后应用Swin Transformer块进行特征变换,分辨率保持在H / 8 × W / 8。这个图像块合并和特征变换的第一个模块被表示为 “阶段2”。

这个过程重复两次,即 “阶段3” 和 “阶段4”,输出分辨率分别为H / 16 × W / 16和H / 32 × W / 32。这些阶段共同生成一个分层表示,其特征图分辨率与典型卷积网络的相同。

Swin Transformer块

Swin Transformer是通过用基于移位窗口的模块替换Transformer块中的标准多头自注意力(MSA)模块构建而成的,其他层保持不变。一个Swin Transformer块由一个基于移位窗口的MSA模块组成,后面跟着一个两层的多层感知器(MLP),中间具有高斯误差线性单元(GELU)非线性激活函数。在每个MSA模块和每个MLP之前应用层归一化(LN)层,并在每个模块之后应用残差连接。

论文

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 2103.14030

## 推荐阅读
1. DeepSeek-R1的顿悟时刻是如何出现的? 背后的数学原理
2. 微调 DeepSeek LLM:使用监督微调(SFT)与 Hugging Face 数据
3. 使用 DeepSeek-R1 等推理模型将 RAG 转换为 RAT
4. DeepSeek R1:了解GRPO和多阶段训练
5. 深度探索:DeepSeek-R1 如何从零开始训练
6. DeepSeek 发布 Janus Pro 7B 多模态模型,免费又强大!

本文由mdnice多平台发布


柏企科技圈
15 声望4 粉丝