IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 《Swin Transformer: Hierarchical Vision Transformer using Shifted Windows》论文笔记 -> 正文阅读

[人工智能]《Swin Transformer: Hierarchical Vision Transformer using Shifted Windows》论文笔记

论文发表在AI顶会(CCF-A):ICCV-2021。
论文链接:https://arxiv.org/abs/2103.14030

🦄 ICCV-2021最佳论文,swin transformer当之无愧。

这里简单记录下对swin transformer的原理学习(实验不讲),后面细看论文后再继续补充。

介绍:

swin transformer可作为视觉任务的一个通用backbone。transformer在nlp领域取得了巨大成功。那么,将其应用到cv,
主要有两点挑战:
1.图像的像素点巨多,当前序列输入transformer计算量巨大。
2.图像中有各种大小的实体对象,而在文本种是没有这种现象的。
成就: swin transformer在图像分类、目标检测、语义分割上SOTA。以及后面研究者利用swin的思想刷榜各类cv任务。

简单说说我的看法:

?swin transformer主要是通过将原图像切成多个local window,每个local window大小为:7x7,分别在每个local window内做自注意力。然后通过shift window来让不同local window之间能够注意力交互,已达到全局注意力类似的效果,这种做法能够显著减少注意力。同时在计算local window内的自注意力时,还提出了一种mask机制用来高效计算注意力。
引入Patch Meraging达到和CNN类似的下采样效果(多尺度的变换),更适合于密集型视觉任务的场景。

?而local window这种计算自注意力能够比一般在整张特征图上做自注意力省多少呢?论文给的这两种注意力的计算复杂度如下公式,可以看到差别是M2和(hw)2,差别还是蛮大的,毕竟在论文里M是7。
在这里插入图片描述
?那这是怎么计算来的呢,我们来瞧瞧:
在这里插入图片描述
在这里插入图片描述

简单介绍下swin transformer的主要构件,以及前向传播的过程:

在这里插入图片描述
??如上述总体架构图所示是一个swin transformer的Tiny版本(C=96)。具体维度变化可看我红色框的标注。从头到尾的维度变换,类似CNN的思想:特征图的长宽减少,通道数增加(每步x2),这样就引入了多尺度的变换,更适合于密集型视觉任务的场景,不像ViT一样,从头到尾维度不变(常规的transformer block就这样)。

Patch Meraging:

下采样的过程主要是通过图中Patch Meraging的操作实现,如下图所示:
在这里插入图片描述

swin transformer block:

在这里插入图片描述
??swin transformer block有2种block,如总体架构图(b)所示。第一种是正常的在local window内分别做注意力计算,第二种是Shifted Window后做自注意力(但为提高效率,论文引入mask机制后真正移动的是特征图(窗口位置不变),通过torch.roll)。这两种block是一起使用的,总体架构图中可以看到,block的数量是偶数。
总体架构图

Shift Window:

Shift Window主要起到的作用是建模不同local window之间的交互,起到和全局注意力类似的效果:
在这里插入图片描述
??以上图为例,一张图被切成4块,下一步移动窗口(步长为窗口一半,这里是2)。这样得到了9个窗口,因为attention是在每个窗口内做的,这一下子计算量不就涨了一倍吗? 我giao! 所以作者搞了个mask操作,继续保持4个窗口,计算量不变,也能分别计算各窗口的注意力。

??实际上的shift window是通过对特征图移位,shift window将相同窗口内的部分标注相同序号。并给Attention设置mask来间接实现的。能在保持原有的window个数下,最后的计算结果等价。
在这里插入图片描述
??具体来说,在上图中,先对特征图上下roll一个单位(这里一个单位如A的大小2格,因为移动一个单位,所以图中分为AC两部分即可),左右roll一个单位,毕竟整体窗口向右下角移动半个窗口大小,那移动两次,经过两次shift window block就移回原样了。然后4个窗口分别采用不同的mask模版,这样就能单独计算各窗口内的不同不同的注意力了。计算完恢复特征图原样。这样不就达到目的的吗,哟哟~~
在这里插入图片描述
在这里插入图片描述
?
?
?
?
?
参考:
[1] 图解Swin Transformer

[2] 李沐:Swin Transformer论文精读【论文精读】

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 22:54:12  更:2022-07-04 22:56:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:23:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码