Backbone - Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

文章目录

0. 前言

  • 相关资料:
  • 论文基本信息
    • 领域:Transformer
    • 作者单位:微软亚洲研究院
    • 发表时间:2021.3
  • 一句话总结:将 hierarchical 引入 Transformer

1. 要解决什么问题

  • CV和NLP任务相比,CV的特点是(换句话说,就是Transformer用在CV时可能存在的问题)
    • large variations in the scale of visual entities:猜测是不是说,视觉任务的输入变化比较大
      • 之前的 Vision Transformer 工作的输入都是token,而token都是固定尺寸,不太适合作为backbone
    • high resolution of pixels:视觉输入数据尺寸非常大
      • 作为视觉任务的backbone,需要支持 high resolution(比如检测、分割)

2. 用了什么方法

  • 为 Vision Transformer 也构建 hierarchical features,如下图所示
    • CNN->Transformer的改变就是,CNN中每个灰色的框就是一个像素(或者说特征图中的一个点),而Transformer中,每个灰色的框就是一个token

Backbone - Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

  • SwinTransformer的整体结构如下图所示
    • 前两步可以通过一个卷积实现
      • Patch Partition 就是从原始图像中滑框 4x4x3 得到原始像素值组成的一组特征
      • Linear Embedding 就是对 H/4 X W/4 * 48 的原始像素进行卷积操作
    • 左图中间的 Swin Transformer Block 的具体结构如右图所示
    • Patch Merging 主要功能就是对输入特征进行降维(类似于Res Block 非 skip 分支的第一个卷积,降低分辨率增加channels数量,减少计算量)

Backbone - Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

  • Patch Merging 在这里很好的解释了

Backbone - Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

  • Window based Self-Attention(W-MSA)
    • Vit Transformer的一个问题就是,每个token都要和其他所有token计算相似度。
    • 为了降低计算量,Swin Transformer 中只计算每个window中token之间的相似度,即W-MSA
  • Shifted window partitioning in successive blocks(SW-MSA)
    • W-MSA 存在一个问题,多个window之间没有关联,这就丢失了很多信息。
    • 但SW-MSA会使得计算量大幅度增加
    • 主要就是要实现这个shift操作,没细看

Backbone - Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

  • Swin Block 的运算过程:要求channels必须能被2整除,因为里面的计算过程就是两个两个实现的,具体计算过程其实图上不如下面公式清晰

Backbone - Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

3. 效果如何

  • 总结一下:图像分类任务没有什么提高(跟EfficientNet比),但在检测和分割领域独占鳌头

Backbone - Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

Backbone - Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

Backbone - Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

4. 还存在什么问题&可借鉴之处

  • CNN的思想实现Transformer
  • 训练一个TSN-Transformer看看,结果后续会上传到这里
上一篇:Transformer再下一城!Swin-Unet:首个纯Transformer的医学图像分割网络


下一篇:poj 3335 Rotating Scoreboard