论文阅读:Swin Transformer

SwinTransformer是一种创新的视觉Transformer模型,通过非重叠窗口的自注意力计算,结合移位窗口机制,实现在保持效率的同时增强跨窗口连接。论文介绍了其整体架构、关键设计如移位配置的高效计算和相对位置偏置,以及在图像分类、目标检测和语义分割等任务上的出色性能。

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

0 摘要

  1. 本文提出了一种分层Transformer,其表示是用移位窗口计算的,通过将自注意力计算限制在不重叠的本地窗口同时,还允许跨窗口连接来提高效率。这种分层架构在各种尺度上建模很灵活,并且具有相对于图像大小的线性计算复杂度。
  2. 能和视觉任务兼容,包括图像分类和密集预测任务,目标检测和语义分割。
  3. 性能相当好,证明了基于 Transformer 的模型作为视觉主干的潜力。 可以作为Transformer的backbone。
  4. 代码:https://github.com/microsoft/Swin-Transformer

1 引言

CV方向通用方法是CNN,NLP领域存在Transformer方法。本文寻求扩展 Transformer的适用性,使其可以作为CV的backbone。

CV和NLP的差异:

  1. NLP中Transformers的基本元素是单词token,视觉元素在规模上会有很大差异,现有的Transformer方法中token是固定规模,不适用于CV。
  2. 图像中像素的分辨率很高。 对于高分辨率图像上的Transformer来说难以处理,因为其自注意力的计算复杂性与图像大小成二次方。

文本提出了一个通用的Transformer主干,称为 Swin Transformer,它构建分层特征图并且对图像大小具有线性计算复杂度

image-20210804202832878

  1. 分层特征图:通过从小尺寸的patch开始并逐渐与相邻patch合并到更深层中构建分层表示
  2. 线性计算复杂度:通过在图像分割的非重叠窗口内局部计算自注意力来实现。每个窗口中的patch数量是固定的,因此复杂度与图像大小成线性关系。

image-20210804203515633

Swin Transformer 的一个关键设计元素是它在连续自注意力层之间的窗口分区的移动。移动的窗口桥接前一层的窗口,提供它们之间的连接。

2 相关研究

3 方法

3.1 整体架构

image-20210804204311199

  1. 先将图片分成不重叠的块,每个块成为token,其特征是原始像素RGB值的串联,然后经过一个线性嵌入层投影到维度C。

  2. 在这些token上应用若干修正自注意力计算的Swin Transformer 块。Transformer 块保持令牌的数量,与线性嵌入一起被称为“阶段 1”。

  3. 随着网络变深,通过块合并层来减少token的数量。

    1. 第一个块合并层连接每组 2 × 2 2×2 2×2相邻块的特征,并在 4 C 4C 4C 维连接特征上应用线性层( 4 C 4C 4C 2 C 2C 2C)。 token数减少4倍,并且输出维度设置为 2 C 2C 2C。 之后应用 Swin Transformer 块进行特征转换,保持 H 8 × W 8 \frac{H}{8}× \frac{W}{8} 8H×8W。 补丁合并和特征转换的第一个块表示为“第 2 阶段”。
    2. 该过程重复两次,分别为“第 3 阶段”和“第 4 阶段”,输出分辨率分别为 H 16 × W 16 \frac{H}{16}× \frac{W}{16} 16H<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值