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

image-20210604182839549

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

image-20210604183247753

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

img

  • 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操作,没细看

image-20210604191505138

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

image-20210604184344406

3. 效果如何

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

image-20210604172114930

image-20210604172150102

image-20210604172159283

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

  • CNN的思想实现Transformer
  • 训练一个TSN-Transformer看看,结果后续会上传到这里
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Swin Transformer是一种新型的层次化视觉Transformer模型,它在Vision Transformer(ViT)的基础上进行了改进,并在多个视觉任务上取得了更好的效果。本文将对Swin Transformer论文进行精读,详细介绍其创新点和实验结果。 ## 创新点 Swin Transformer主要有以下三个创新点: ### 1. 层次化注意力 Swin Transformer引入了层次化注意力机制,将图像分成多个块进行处理,每个块内部使用全局自注意力机制,不同块之间使用局部注意力机制。这种层次化的注意力机制可以减少全局自注意力机制的计算量,同时保持局部信息的传递。 ### 2. Shifted Window 传统的ViT使用固定大小的图像块进行处理,而Swin Transformer使用了一种称为Shifted Window的方法,将每个块按照一定的步长进行平移,使得每个块都包含了周边的信息。这种方法可以更好地捕捉到图像中的全局信息。 ### 3. Swin Transformer Block Swin Transformer引入了一个新的Swin Transformer Block,它是由多个Shifted Window构成的,每个Shifted Window内部使用了类似于ViT的注意力机制。这种新的Transformer Block可以更好地捕捉到局部和全局的信息。 ## 实验结果 Swin Transformer在多个视觉任务上都取得了很好的效果,比如ImageNet分类、COCO目标检测、Cityscapes语义分割等。在ImageNet上,Swin Transformer比ViT-Large模型具有更好的性能,同时参数数量更少,计算效率更高。在COCO目标检测任务中,Swin Transformer在使用相同的backbone的情况下,比ViT-Large模型具有更高的AP值。在Cityscapes语义分割任务中,Swin Transformer在使用相同的backbone的情况下,比DeiT-base模型具有更高的mIoU值。 ## 总结 Swin Transformer是一种新的层次化视觉Transformer模型,它引入了层次化注意力机制、Shifted Window和Swin Transformer Block等创新点,并在多个视觉任务上取得了很好的效果。这些创新点可以更好地捕捉到图像中的局部和全局信息,同时减少了计算量,提高了计算效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值