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的读论文记录 -> 正文阅读

[人工智能]Swin Transformer的读论文记录

ST为cv提供了一个通用的骨干。

T从语言应用到视觉有两个挑战:1、视觉实体的scale变化太大;2、相比于文本中的单词来说,高分辨率图像的像素点太多。

由此,提出了层次化T,代表是通过窗口偏移来计算的。

SW通过将self-attention限制在不重叠的窗口中,同时允许跨窗口连接。

ST通过分层架构,使得model可以在不同scale中使用,以及拥有线性复杂度。这些特质使得ST可以应用于大范围的视觉任务中。

分层设计和移动窗口方法也证明对所有的mlp架构是有益的。

VIT从单一低分辨率提取特征,而且是平方的复杂度(从全局计算自注意力)。

ST构造了一个层次特征映射,从小的灰色框开始,在深层时,逐渐融合相邻的块。

通过这些层次特征映射,STmodel可以方便地使用高级技术来进行密集检测,例如特征金字塔。

线性计算复杂度通过计算图片中不重叠的窗口中的自注意力实现。

每个window(红色框)中的块数是确定的,因此复杂度变成线性的了。

这俩优点相比于之前的Transformer架构,使得ST可以作为多种多样视觉任务的通用骨干。

ST的一个关键设计元素是:在连续的自注意力层中,窗口分区的偏移。

偏移窗口连接了浅层窗口,在窗口直接提供了连接,显著增强了模型的效果。

偏移窗口同时降低了延迟,相比较滑动窗口来说(效果是相似的)(一个window中的所有块共享通用的key set,方便了硬件的内存查找,而滑动窗口不同像素对应不同的key set)

Related work:

直到AlexNet的面世,CNN起飞并成为主流,从此以后,为了进一步推动深度学习在计算视觉的浪潮,更深,更有效的卷积网络架构被提出。除此了网络架构方面,也有大量工作去提升单独的卷积层,例如深度卷积和可变形卷积。

当CNN和它的变种还是cv方面的主要骨干的时候,我们强调Transformer类似架构的巨大潜力在cv和nlp的统一模型中。ST在基础视觉任务的良好表现,希望可以对于模型的转移有贡献。

在NLP方面,自注意力层和Transformer架构的成功,一些工作也开始尝试在流行的ResNet中使用自注意力层取代一些或者全部的空间卷积层。这些工作中,在每个像素的窗口中计算自注意力,来加速优化,他们相比于ResNet架构实现了略微更好的准确性,可是,他们花费的内存导致相比于卷积网络更大的延迟。于是我们放弃滑动窗口,在连续的层中使用偏移窗口,在硬件方面实现提升。

另一系列的工作是使用标准的CNN架构(带有自注意力层或者Transformer)。自注意力层可以补充骨干或者头网络,通过提供编码能力对于距离依赖或者异构交互。而且最近,encoder-decoder设计被应用到目标检测和实例分割任务,我们的工作是探索Transformer在基础视觉特征提取的适用性。是这些工作的补充。

与我们工作相似的是VIT和它的伴生者。VIT的先导工作是在图像分类工作中直接使用Transformer架构在不重叠的中等大小的图像块中。VIT的结果是值得鼓励的,但是它不适合作为密集视觉任务的通用骨干。它不适合高分辨率图像而且它的复杂度是平方级的。目前已有一些研究将ViT模型应用于密集视觉任务的目标检测和语义分割,但性能较差。

Method

它首先使用块分割模块把一个输入的RGB图像分割成许多不重叠的块,就像ViT一样。每个块被认为是一个“token”,它的特征被设置为一个拼接的原始像素RGB值。

在我们的实现中,我们使用块大小为4*4,因此每个块的特征维度是4*4*3(RGB)=48,该原始值特征使用线性嵌入层将其投影到任意维度。(使用C代指)

几个带有修改自注意力计算的Transformer块被应用在这些块的“token”上。这些Transformer块保持了“token”的数量,再加上线性嵌入作为阶段一。

为了产生一个分层的表现,“token”的数量随着层数加深,块的融合而减少。第一个patch合并层将每组2 × 2相邻的patch的特征进行拼接,并对拼接后的4c维度特征使用线性层。token数量减少了2*2=4倍,然后使用dense layer进行降采样,将输出维度设置为2C。之后使用ST块进行特征变换,分辨率保持在H/8*W/8。

块合并和特征变换,作为第一个块,表示为阶段2。这个阶段重复两次,作为阶段3(输出分辨率为H/16*W/16)和阶段4(输出分辨率为H/32*W/32)。这些阶段共同产生了一个层次表示,具有与典型卷积网络相同的特征图分辨率。结果表明,该体系结构可以方便地替代现有的各种视觉任务的骨干网络。

????????

Swin Transformer block :ST是通过Transformer中的标准多头自注意力(MSA)模块替换为基于偏移窗口的模块来构建,其他层保持不变。如图b所示,一个ST块包含一个基于MSA的偏转窗口,其后是一个拥有GELU非线性的两层的MLP,在每个MSA模块和每个MLP之前应用一个LayerNorm (LN)层,在每个模块之后应用一个残差连接。

3.2

标准的Transformer和它在图像分类上的适应性,都计算一个token和其他所有token之间关系的全局自注意力。这个全局的计算导致了关于token的平方级的复杂度。这使得它不适用于许多需要大量token进行密集预测或表示高分辨率图像的视觉问题。

为了高效建模,我们提出在局部窗口内计算自注意力。通过排列窗口,以不重叠的方式均匀地分割图像。假定每个窗口包含M*M个小块,全局MSA模块和基于h*w小块图像的窗口MSA模块的计算复杂度为:

其中前者是patch数量hw的平方级,后者在M固定时(默认为7)是线性的。全局自注意计算对于一个巨大的hw来说通常是负担不起的,而基于窗口的自注意力是可计算的。

在连续块的偏移窗口划分:当前基于自注意力窗口的模型缺少窗口间的连接,这限制了它的模型效果。为了引入跨窗口连接,同时保持非重叠窗口的高效计算,我们提出了一种移位窗口划分方法,它在连续的Swin Transformer块中的两个分区配置之间交替。第一个模块使用常规的窗口分区策略,从左上角的像素开始,一个8*8的特征映射被划分成2*2个大小为4*4的窗口(M=4)。然后,下一个模块采用了一个从上一层移位的窗口配置,通过从有规则分区的窗口置换([M/2],[M/2])个像素点的窗口。

通过偏移窗口划分的方法,连续的ST块计算为:

第一行的z代指(S)W-MSA模型的特征输出,第二行的z代指MLP模型的特征输出。W-MSA和SW-MSA分别代指使用规则窗口划分和偏移窗口划分的多头自注意力。这个偏移窗口划分的方法引入了在之前图层中相邻不重叠窗口之间的联系,而且发现该方法在图像分类,目标检测和语义分割方面是有效的。如图4所示:

针对移位构型的高效批量计算:

移动窗口分区的一个问题是,它会产生更多的窗口,从[h/M]*[w/M]到([h/M]+1)*([w/M]+1)在偏移配置中。而且一些窗口的大学会小于M*M。一个简单的解决方案是将较小的窗口填充到M × M的大小,并在计算注意力时屏蔽填充值。当规则分区中的窗口数较小时,使用这种简单的解增加的计算量是相当大的。这里我们使用了一个更高效的从左上方旋转偏移批处理计算方法。如图4所示:

经过这样的偏移,一个批处理窗口可以由几个在特征映射中不相邻的子窗口组成,因此可以采用掩蔽机制将自注意计算限制在每个子窗口内。通过循环移位,批处理窗口的数量与常规窗口划分的数量保持一致,因此也是高效的。

?Relative position bias

在计算自注意力时,我们使用相对位置偏差B对每个头计算相似度。而Q,K,V是查询,键和值矩阵。d是Q/K的维度,M的平方是窗口中块的数量。由于每个轴上的相对位置在[?M + 1, M?1]范围内,我们参数化了一个大小较小的偏置矩阵B?∈R (2M?1)×(2M?1),B中的值取自B?。我们观察到,与没有这个偏差项或使用绝对位置嵌入的对照相比,有显著的改善。

?通过双三次插值,可以将训练前学习到的相对位置偏差用于初始化不同窗口大小的微调模型。

接下来是实验比较。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-23 15:46:04  更:2021-12-23 15:47:26 
 
开发: 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 23:37:25-

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