当前位置: 首页 > news >正文

【2021 ICCV-Backbone 结构解析】Swin Transformer

1、网络整体框架

1.1 Swin Transformer和Vision Transformer的对比

在这里插入图片描述

swin transformer架构和CNN架构类似,都是逐层下采样倍数增加。

1.2 Satge1部分的图像预处理

在这里插入图片描述
Swin Transformer分为四个模块,每个模块下采样两倍,通道维度增加两倍。实际上,satge1中的patch partition和linear embeding合并起来和后面的Path Merging类似
在这里插入图片描述
stage1 的patch partition和linear embeding做法如上图所示,先使用44的窗口将图像分块,然后再将小窗口内的图像拉长,变成163 = 48维度,此时得到的新特征图高宽缩小四倍。最后使用Layer Norm将新特征图的通道维度延申到指定维度(例如:96、128、196)

2、Patch Merging

patch merging的结构如图所示:
在这里插入图片描述
将窗口(44)中每个相同位置的特征提取出来,形成一个新特征(4 , 22 ),然后再将形成的新特征在通道维度上拼接(224),再通过LayerNorm结构,最后通过全连接层,将每个特征在通道维度上进行映射(222)------特征图尺寸缩小两倍,而通道维度扩充两倍。

3、W-MSA详解

目的:减少计算量; 缺点: 窗口间无法进行信息交互

swin transformer 的block结构如图所示,是成对出现的,所以swin transformer block的块数都是偶数倍。
在这里插入图片描述
在这里插入图片描述
首先对特征图分成多个window,然后对每个window的内部计算multi-head self-attention。这么做的目的是为了减少计算量,但缺点是窗口之间无法进行信息交,感受野变小,无法看到全局的视野。

具体节省的计算量计算公式如下:
在这里插入图片描述

4、SW-MSA详解

目的是实现不同window之间的信息交互
在这里插入图片描述
1、 首先通过将window位置平移获取新分割特征的方式,得到包含先前不同window信息的新块特征,以此来实现不同window之间的特征交互。(如上图左上角所示)。

2、但是如果直接计算重新分割后特征图的msa(multi-head self attention),需要计算9次(为了实现并行计算,需要将所有新window扩充到4*4大小),增加了计算量。

3、因此作者按照上图右下角的做法,将块的位置平移,得到新的”4个44“大小的window。对于A B C三种不同形式的window(2个42, 2个24 和 4个22)使用masked MAS操作进行计算。这样的计算量和先前分割方式的计算量一致。

4、具体的masked MAS计算如下:
在这里插入图片描述
即将不属于本window的信息减去100,再通过softmask后,不同区域的权重就是0.

4、Relative Position Bias详解

在这里插入图片描述
在这里插入图片描述
上图中计算attention时的B就是相对位置偏置,表的结果表明了,不使用相对位置偏置得到的结果准确率较低。
在这里插入图片描述
作者在这里,不是二元 坐标而是一元坐标:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后再在此基础上加上相对位置偏置
在这里插入图片描述

相关文章:

  • java 网站建设自学seo能找到工作吗
  • 免费网站最新域名推广信息哪个平台好
  • 青岛做企业网站的公司网络销售的工作内容
  • js网站源码下载考研最靠谱的培训机构
  • 苹果网站上物体阴影怎么做的北京公司排名seo
  • 哪个网站可以做计算机二级的题网页设计培训
  • 【python】http请求的默认超时时间设置
  • 智能体平台的商业前景与竞争格局分析:金融与企业市场的机遇与挑战
  • 深度解析Lucene IndexWriter 性能优化
  • GROUP BY、UNION和COALESCE协作
  • 【机器学习深度学习】张量基本操作
  • 无人机灯光驱动模块技术解析
  • Netty对象池ObjectPool源码解析
  • arthas助力Java程序Full GC频率大降!
  • NVIDIA A100 GPU的计算与内存层级结构
  • day042-负载均衡与web集群搭建
  • AR/VR 显示画质失真?OAS 体全息光栅案例来解决
  • Vue Devtools “Open in Editor” 配置教程(适用于 VSCode 等主流编辑器)
  • Codex+ 自建中转 API 部署教程(Windows 版)
  • 3 大语言模型预训练数据-3.2 数据处理-3.2.2 冗余去除——1.SimHash算法处理冗余信息的核心原理
  • react中使用3D折线图跟3D曲面图
  • 分布式环境下 Spring Boot 项目基于雪花算法的唯一 ID 生成方案
  • 【LLaMA-Factory 实战系列】四、API 篇 - 部署推理服务与批量调用实战
  • 国道观察者手记
  • computed()、watch() 与 watchEffect()
  • Android14音频子系统-Audio HAL分析