李沐精读论文:Swin transformer: Hierarchical vision transformer using shifted windows

论文地址Swin transformer: Hierarchical vision transformer using shifted windows

代码:官方源码

pytorch实现

SwinTransformerAPI

视频:Swin Transformer论文精读【论文精读】_哔哩哔哩_bilibili

本文注意参考:Swin Transformer论文精读【论文精读】 - 哔哩哔哩       

图解Swin Transformer - 知乎

        

目录

题目和摘要

引言      

ViT在视觉领域应用面临的问题

W-MSA 特点和好处

移动窗口的操作

展望

结论

方法

前向过程

代码框架

Patch Embedding:切出patch并做Embedding

Patch Merging:把临近的小 patch合并成一个大 patch

划分出包含patch的窗口

Window Attention

代码

Relative Position Bias:相关位置编码       

前向代码

W-MSA计算复杂度

移动窗口

提高移动窗口的计算效率

掩码可视化

代码  

Transformer Block整体架构

Block的前向代码   

Swin Transformer的变体

实验

分类上的实验

目标检测

语义分割

消融实验

点评


        Swin Transformer是 ICCV 21的最佳论文,它之所以能有这么大的影响力主要是因为在 ViT 之后,Swin Transformer通过在一系列视觉任务上的强大表现,进一步证明了Transformer是可以在视觉领域取得广泛应用

题目和摘要

        Swin Transformer是一个用了移动窗口的层级式的Vision Transformer

  • Swin:来自于 Shifted Windows,Swin Transformer这篇论文的主要贡献
  • 层级式 Hierarchical: Swin Transformer像卷积神经网络一样,也能够分成几个 block,做层级式的特征提取,使得提出来的特征有多尺度

        这篇论文提出了一个新的 Vision Transformer 叫做 Swin Transformer,它可以被用来作为一个计算机视觉领域一个通用的骨干网络。

        直接把Transformer用到视觉领域有一些挑战,主要来自于两个方面:

  • 多尺度问题:比如一张图片里的代表同样一个语义的词(即物体)有非常不同的尺寸,NLP中没有这个问题。
  • 分辨率太大:如果将图片的每一个像素值当作一个token直接输入Transformer,计算量太大。之前的工作要么用后续的特征图来当做Transformer的输入,要么把图片打成 patch 减少这个图片的 resolution,要么把图片画成一个一个的小窗口,然后在窗口里面去做自注意力,所有的这些方法都是为了减少序列长度

        基于这两个挑战,本文提出了 hierarchical Transformer,通过一种叫做移动窗口的方式学习特征,即只在滑动窗口内部计算自注意力,所以称为W-MSA(Window Multi-Self-Attention)。

  • 通过Shiting(移动)的操作可以使相邻的两个窗口之间进行交互,也因此上下层之间有了cross-window connection,从而变相达到了全局建模的能力。
  • 分层结构使得模型可以提取各个尺度的特征信息
  • 计算复杂度与图像大小呈线性关系,这样模型就可以处理更大分辨率的图片(为作者后面提出的Swin V2铺平了道路)。
    • Vision Transformer:进行MSA(多头注意力)计算时,任何一个patch都要与其他所有的patch都进行attention计算,只要窗口大小是固定的,那么计算量与图片的大小成平方增长。
    • Swin Transformer:采用了W-MSA,只对window内部计算MSA,当图片大小增大时,计算量仅仅是呈线性增加。

        因为 Swin Transformer 拥有了像卷积神经网络一样分层的结构,能够提取出多尺度的特征,所以很容易使用到下游任务里。ImageNet-1K 上准确度达到87.3%;在 COCO mAP刷到58.7%(比之前最好的模型提高2.7);在ADE上语义分割任务也刷到了53.5(提高了3.2个点 )

        对于 MLP 的架构,用 shift window 的方法也能提升,见MLP Mixer 这篇论文

引言      

ViT在视觉领域应用面临的问题

  • ViT 处理的特征都是单一尺寸。ViT把
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值