以下文章来源于Smarter ,作者Smarter
构建CV世界观,输出优质内容
今天给大家介绍一篇Swin Transformer如何对CNN形成降维打击的论文。论文作者来自中国科技大学、西安交通大学、MSRA、清华大学等机构。本文介绍了一种称为Swin Transformer的新型Transformer,通过引入CNN中常用的层次化构建方式构建层次化Transformer以及引入locality思想解决Transformer迁移至CV上的scale和分辨率的问题。
近日,Swin Transformer拿到2021 ICCV Best Paper了!MSRA再一次拿到Best Paper,上一次可以追溯到ResNet,巧合的是,这一次也是通用骨干网络模型。
语义分割在ADE20K上刷到53.5 mIoU,超过之前SOTA大概4.5 mIoU!
来源: https://paperswithcode.com/sota/semantic-segmentation-on-ade20k-val
最近Transformer的文章眼花缭乱,但是精度和速度相较于CNN而言还是差点意思,直到Swin Transformer的出现,让人感觉到了一丝丝激动,Swin Transformer可能是CNN的完美替代方案。
作者分析表明,Transformer从NLP迁移到CV上没有大放异彩主要有两点原因:
1. 两个领域涉及的scale不同,NLP的scale是标准固定的,而CV的scale变化范围非常大。
2. CV比起NLP需要更大的分辨率,而且CV中使用Transformer的计算复杂度是图像尺度的平方,这会导致计算量过于庞大。
为了解决这两个问题,Swin Transformer相比之前的ViT做了两个改进:
相比于ViT,Swin Transfomer计算复杂度大幅度降低,具有输入图像大小线性计算复杂度。Swin Transformer随着深度加深,逐渐合并图像块来构建层次化Transformer,可以作为通用的视觉骨干网络,应用于图像分类、目标检测和语义分割等任务。
另外有一个细节,Swin Transformer和ViT划分patch的方式类似,Swin Transformer也是先确定每个patch的大小,然后计算确定patch数量。不同的是,随着网络深度加深ViT的patch数量不会变化,而Swin Transformer随着网络深度的加深数量会逐渐减少并且每个patch的感知范围会扩大,这个设计是为了方便Swin Transformer的层级构建,并且能够适应视觉任务的多尺度。
上图是两个连续的Swin Transformer Block。一个Swin Transformer Block由一个带两层MLP的shifted window based MSA组成。在每个MSA模块和每个MLP之前使用LayerNorm(LN)层,并在每个MSA和MLP之后使用残差连接。
上图中红色区域是window,灰色区域是patch。W-MSA将输入图片划分成不重合的windows,然后在不同的window内进行self-attention计算。假设一个图片有hxw的patches,每个window包含MxM个patches,那么MSA和W-MSA的计算复杂度分别为:
另外W-MSA虽然降低了计算复杂度,但是不重合的window之间缺乏信息交流,于是作者进一步引入shifted window partition来解决不同window的信息交流问题,在两个连续的Swin Transformer Block中交替使用W-MSA和SW-MSA。以上图为例,将前一层Swin Transformer Block的8x8尺寸feature map划分成2x2个patch,每个patch尺寸为4x4,然后将下一层Swin Transformer Block的window位置进行移动,得到3x3个不重合的patch。移动window的划分方式使上一层相邻的不重合window之间引入连接,大大的增加了感受野。
感谢Smarter交流群小伙伴的补充说明。
放一些实验结果,感受一下Swin Transformer对之前SOTA的降维打击。
目标检测碾压
语义分割碾压
目标检测在COCO上刷到58.7 AP(发表时第一)
实例分割在COCO上刷到51.1 Mask AP(发表时第一)
语义分割在ADE20K上刷到53.5 mIoU(发表时第一)
paper: https://arxiv.org/abs/2103.14030
code:https://github.com/microsoft/Swin-Transformer
一作解读:https://www.zhihu.com/question/437495132/answer/1800881612
上一篇文章(网络架构设计:CNN based和Transformer based)讨论了一下网络架构设计是以CNN为主好还是Transformer为主好的问题,Swin Transformer给出了答案。Swin Transformer 吸收了CNN的locality、translation invariance和hierarchical等优点,形成了对CNN的降维打击。
Swin Transformer改进思路还是源于CNN,Transformer站在巨人的肩膀上又迎来了一次巨大的飞跃,未来Transformer会接过CNN手中的接力棒,把locality、translation invariance和hierarchical等思想继续发扬光大。
扫码观看!
本周上新!
“AI技术流”原创投稿计划
TechBeat是由将门创投建立的AI学习社区(www.techbeat.net)。社区上线330+期talk视频,900+篇技术干货文章,方向覆盖CV/NLP/ML/Robotis等;每月定期举办顶会及其他线上交流活动,不定期举办技术人线下聚会交流活动。我们正在努力成为AI人才喜爱的高质量、知识型交流平台,希望为AI人才打造更专业的服务和体验,加速并陪伴其成长。
投稿内容
// 最新技术解读/系统性知识分享 //
// 前沿资讯解说/心得经历讲述 //
投稿须知
稿件需要为原创文章,并标明作者信息。
我们会选择部分在深度技术解析及科研心得方向,
对用户启发更大的文章,做原创性内容奖励。
投稿方式
发送邮件到
chenhongyuan@thejiangmen.com
或添加工作人员微信(chemn493)投稿,沟通投稿详情;还可以关注“将门创投”公众号,后台回复“投稿”二字,获得投稿说明。
>> 投稿请添加工作人员微信!
关于我“门”
▼
点击右上角,把文章分享到朋友圈
点击“阅读原文”按钮,查看社区原文
⤵一键送你进入TechBeat快乐星球