一、概述

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

在图像领域,Transformer需要解决如下两个问题:

①尺度问题:同一语义的物体在图像中有不一样的尺度。(大小不同)

②Resolution过大:若以像素点作为单位,则会出现序列过长的情况。

由于使用了移动窗口,Swin Transformer的自注意力仅在窗口中计算,降低了计算量;同时移动窗口的应用还带来了图像之间的层级关系,使得其能更好的应用在图像领域。

二、重要操作

1.移动窗口

对于视觉任务而言,多尺度特征极为重要。例如对于目标检测而言,常用的方法是提取不同尺度的特征后进行特征融合(FPN),这样可以很好的把握物体不同尺寸的特征。而对于语义分割而言,也需要对多尺寸特征进行处理。(skip connection/空洞卷积等)

patch:最小的计算单元

window:原文中默认有 7x7(合计49个)个patch

Shift操作:将原来的Window往右下移动窗口大小/2并向下取整(2个patch),再沿着原window的延长线对图进行分割。可以使得一个窗口中的自注意力机制注意到其他patch中的信息

Masked掩码:

窗口移动后,由于窗口大小不一致无法直接merging,通常的操作是将小patch进行padding补至与中间大patch一致。但是这样会提升计算复杂度。

而Masked是在窗口移动后再进行一次循环移位(cyclic shift);

组合后的窗口由于发生了patch移动导致除左上角的patch保持原有位置信息之外全部混入和其他位置的patch;针对这种情况。在对其进行自注意力运算,然后对运算后的结果中不是原始组合的部分按照特定的遮罩进行求和(用来屏蔽错误的组合),如下图所示。

遮罩模板如下:

2.patch merging

用于生成多尺寸特征,类似于CNN中的Pooling(池化)。具体做法是将相邻的小patch合并成一个大patch

三.模型架构

①Patch Partition:在图上划分patch(原文为4x4,对于标准的224*224*3的图片而言,经过此操作后尺寸变为56*56*48)

②Linear Embeding:将向量的维度转换为预先设定好的值;原文设置了一个超参数c=96(操作后尺寸变为96*96*96,前面的96*96将被拉直成3136成为序列长度,最后一个96编程每个token的维度;由于96*96拉直后一共3136对于Transformer太长了,所以采用基于窗口的自注意力,默认每个窗口仅有7x7=49个patch)

③Swin Transformer Block:每组做两次多头自注意力:①基于窗口的多头自注意力;②基于移动窗口的多头自注意力。这样做可以实现窗口与窗口之间的通信。

④Patch Merging:Transformer若不进行限制的话,输入和输出尺度并不会发生改变。如果想像CNN一样得到多尺度特征的话就必须使用Patch Merging。具体做法是将相邻的小patch合并成一个大patch(以原文为了例下采样数为2倍,采用跳步式合并--每隔一个点采集一个);

但是经过Merging后,通道数会变为4c,为了和CNN每卷积一次通道数仅x2,在进行Merging后再进行一个1x1卷积将通道数调整为2c。(空间大小/2,通道数x2)

[自注意力神经网络]Swin Transformer网络相关推荐

  1. 【读点论文】Swin Transformer: Hierarchical Vision Transformer using Shifted Windows通过窗口化进行局部MSA,sw-MSA融合信息

    Swin Transformer: Hierarchical Vision Transformer using Shifted Windows abstract 本文提出了一种新的视觉transfor ...

  2. 【读点论文】A ConvNet for the 2020s,结合swin transformer的结构设计和训练技巧调整resnet网络,在类似的FLOPs和参数量取得更好一点的效果

    A ConvNet for the 2020s Abstract 视觉识别的"咆哮的20年代"始于视觉transformer(ViTs)的问世,它迅速取代ConvNets成为最先进 ...

  3. Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 论文翻译 + 网络详解

    目录 1 3 4 5 是论文的翻译,如果看过论文也可以直接看关于网络的结构详解. Abstract 1. Introduction 3. Method 3.1 Overall Architicture ...

  4. 当Swin Transformer遇上DCN,清华可变形注意力Transformer模型优于多数ViT

    ©作者 | 小舟 来源 | 机器之心 本文中,来自清华大学.AWS AI 和北京智源人工智能研究院的研究者提出了一种新型可变形自注意力模块,其中以数据相关的方式选择自注意力中键值对的位置,使得自注意力 ...

  5. 屠榜各大CV任务!最强骨干网络:Swin Transformer V2来了

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 转载自丨极市平台   作者丨happy 导读 针对SwinV1在更大模型方面存在的几点问题,Swin tra ...

  6. 【神经网络架构】Swin Transformer细节详解-1

    目录 源码: 1. Patch Partition + Liner Embedding 模块 2. Swin Transformer block(一个完整的W-MSA) partition windo ...

  7. 屠榜各大CV任务!最强骨干网络:Swin Transformer来了

    原文地址:https://mp.weixin.qq.com/s/z91JuI2w1QZg-3ZxN-OmwQ paper: https://arxiv.org/abs/2103.14030 code: ...

  8. 重磅开源!屠榜各大CV任务!最强骨干网络:Swin Transformer来了

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 本文转载自:Smarter Swin Transformer 代码于2021年4月13日凌晨刚刚开源! ht ...

  9. 专访 Swin Transformer 作者胡瀚:面向计算机视觉中的「开放问题」 原创

    文 | 刘冰一.Echo 编辑 | 极市平台 本文原创首发于极市平台,转载请获得授权并标明出处. 胡瀚,湖北潜江人,本博均毕业于清华大学自动化系,曾就职于百度研究院深度学习实验室,目前任职于微软亚洲研 ...

最新文章

  1. 星巴克、苹果、谷歌、亚马逊等巨头,为何同时做这件事?
  2. 6kyu Persistent Bugger
  3. Comet, 下一代反向AJAX(即服务器推送技术- Server-side push)
  4. 关于python django开发过程中的常见的问题及解决办法总结
  5. 【含内推码】字节跳动智能创作2022秋招提前批全面开启!
  6. 关于生活工作学习之感悟-第一篇
  7. nyoj 8 一种排序(用vector,sort,不用set)
  8. [Java] 集合类(List、Set、Map的基本使用)
  9. [转贴]Unix-Center.Net需要您的帮助
  10. 腾讯域名申请、腾讯备案以及公安备案过程记录
  11. hc595 c语言程序,74HC595级联动态显示的C程序
  12. 【数据库】03——初级开发需要掌握哪些SQL语句
  13. python3攻击服务器_Python服务器用套接字互相攻击
  14. react 三种通信方式(父传子、子传父、兄弟传值)
  15. 汇通达IPO遇冷:募资缩水至3亿美元 汪建国与阿里是股东
  16. Android快速实现手机号码识别OCR
  17. 5天学会mysql_5天学完《MySQL必知必会》学习笔记之第四天
  18. 0基础学会简易QQ版聊天对话功能(有完整实现代码哦)
  19. 电子设备必须通过电磁兼容试验
  20. “中国POS机龙头”的数据化转型之道

热门文章

  1. 【mysql】mysql获取两个集合的交集/差集/并集
  2. 针对.NET Core, Xamarin以及.NET的自动类型安全Rest库: Refit
  3. 绝对路径与相对路径简介
  4. “唛盟研发管理平台”荣获2022年中国创交会“最具投资价值成果奖”
  5. 【语言学-汉语】韵律词
  6. 终于造句,小学生怎么用终于造句?
  7. 举例五金冲压模具料带展开设计
  8. Android源代码结构分析
  9. 【数论】素数(五):梅森素数(Lucas_Lehmer判定法)
  10. 计算机科学的发展趋势参考文献,计算机科学与技术发展趋势研究.doc