Swin Transformer V1 总结
2022/9/13 6:53:20
本文主要是介绍Swin Transformer V1 总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Swin Transformer V1 总结
**原始摘要
** 本文介绍了一种名为 Swin Transformer 的新视觉 Transformer,它能够作为计算机视觉的通用主干。将 Transformer¹ 从语言适应到视觉的挑战来自两个领域之间的差异,例如视觉实体的规模变化很大,以及与文本中的单词相比,图像中像素的高分辨率。为了解决这些差异,我们提出了一种分层 Transformer,其表示是用 Shifted windows 计算的。移位窗口方案通过将 self-attention 计算限制在不重叠的本地窗口上,同时还允许跨窗口连接,从而带来更高的效率。这种分层架构具有在各种尺度上建模的灵活性,并且具有与图像大小有关的线性计算复杂性。 Swin Transformer 的这些品质使其与广泛的视觉任务兼容,包括图像分类(ImageNet-1K 上 87.3 top-1 准确度)和密集预测任务,例如对象检测(COCO testdev 上 58.7 box AP 和 51.1 mask AP )和语义分割(ADE20K val 上为 53.5 mIoU)。它的性能大大超过了之前的 state-of-the-art,在 COCO 上 +2.7 box AP 和 +2.6 mask AP,在 ADE20K 上 +3.2 mIoU,展示了基于 Transformer 的模型作为视觉骨干的潜力。分层设计和移位窗口方法也证明对全 MLP 架构有益。代码和模型可在以下网址公开获得:https://github.com/Microsoft/Swin-Transformer。
Figure adapted from “Swin Transformer: Hierarchical Vision Transformer using Shifted Windows”
上图展示了在提议的 Swin Transformer² 架构中计算自注意力的移位窗口方法。在左图中——第 l 层,采用常规的窗口划分方案,并在每个窗口内计算自注意力。接下来,在下一层 l+1(右图)中,窗口分区被移动,产生新的窗口。新窗口中的自注意力计算跨越了第 l 层中先前窗口的边界,提供了它们之间的连接。
Swin 变压器的工作原理
The architecture of a Swin Transformer (Swin-T). Figure adapted from: “Swin Transformer: Hierarchical Vision Transformer using Shifted Windows”.
Swin Transformer² 架构分 4 个阶段进行。主要是补丁分区 (补丁分区策略 :从左上角像素开始,8x8 的特征图被均匀地划分为 2x2 大小为 4x4(M=4)的窗口。然后,用于将 RGB 输入图像拆分为不重叠的补丁。具体来说,它将图像拆分为两个 4x4 的补丁,这些补丁被视为标记。此外,每个补丁都有 3 个通道,因此 4x4x3=48 个条目或特征尺寸。
接下来,在这个原始值特征中应用线性嵌入(转换)层,将其投影到选定的维度 C,这也决定了转换器¹模型的容量/大小。除此之外,几个 Swin Transformer² 块被应用于这些补丁,它们也保持了令牌的数量 (H/4 x W/4)。具有线性嵌入的 Swin 变压器块由第一阶段组成。
随着网络变得更深,令牌被补丁合并层减少并有助于产生分层表示。在第一个 Patch Merging 层中,每组的特征由 2x2 相邻块连接,然后在 4C 维连接特征上应用线性层。因此,token 的数量减少了 2x2=4 的倍数(分辨率的 2 下采样),并且输出维度设置为 2C。
接下来,通过将分辨率保持在 (H/8 XW/8),应用几个 Swin Transformer 块进行特征转换。补丁合并层和变压器块表示为第二阶段。
同样,在第 3 和第 4 阶段,Patch 合并层与用于特征变换的 Transformer 块相结合,分别应用输出分辨率 (H/16 XW/16) 和 (H/32 XW/32)。
Swin Transformer 是通过将 Transformer 块中的标准多头自注意力 (MSA) 模块替换为基于移位窗口的模块而构建的,其他层保持不变。
Figure adapted from: “Swin Transformer: Hierarchical Vision Transformer using Shifted Windows”.
如上图所示,一个 Swin Transformer 模块由一个基于移动窗口的 MSA 模块组成,然后是一个 2 层 MLP,其间具有 GELU 非线性。在每个 MSA 模块和每个 MLP 之前应用一个 LayerNorm (LN) 层,在每个模块之后应用一个残差连接。
**讨论和结果
** 为了解决之前的 Transformer¹ 模型存在的一些问题,他们提出了以下方法。
**非重叠窗口中的自注意力
** 为了使模型高效,他们建议在本地窗口内计算自注意力。窗口被布置成以不重叠的方式均匀地划分图像。全局自注意力计算对于大图像尺寸通常是负担不起的,而基于窗口的自注意力是可扩展的。
**连续块中的移位窗口分区
** 基于窗口的自注意力模块缺乏跨窗口的连接,这限制了建模能力。为了在保持非重叠窗口的高效计算的同时引入跨窗口连接,我们提出了一种移位窗口分区方法,该方法在连续 Swin Transformer² 块中的两个分区配置之间交替。第一个模块使用常规窗口划分,从左上角像素开始,8x8 特征图被均匀划分为大小 M=4 的 2x2 窗口。第二个模块采用了一种与前一层不同的窗口配置,通过将窗口从规则分区的窗口中移动(地板 M/2 X 地板 M/2)像素。通过使用移位窗口分割方法,在前一层中引入相邻非重叠窗口之间的连接,发现它们是图像分类、对象检测和语义分割的有效方法。
**移位配置的高效批量计算
** 移位窗口分区的主要问题是它会导致更多的窗口,并且一些窗口会小于 MxM。对此的解决方案是将较小的窗口填充到 MxM 的大小,并在计算注意力时屏蔽掉填充的值。尤其是在分区窗口数量较少的情况下,这种简单的解决方案所增加的计算量是相当可观的。因此,他们通过向左上角方向循环移位,提出了一种更有效的批量计算方法。通过使用这种移位,批处理窗口可能包含在特征图中相邻的几个子窗口,因此采用掩码机制来限制每个子窗口内的自注意力计算。最终,循环移位是有效的,因为批处理窗口的数量与常规窗口分区相同。
**相对位置偏差
** 为了计算自注意力,它们在使用 SoftMax 计算相似度时包含了每个头部的相对位置偏差。由于沿每个轴的相对位置位于 [-M+1, M-1] 范围内,因此他们参数化了一个小型偏置矩阵。因此,他们观察到与没有此偏差项或使用绝对位置嵌入的对应项相比有显着改进,如下表所示。但是,向输入添加绝对位置嵌入会稍微降低性能,因此不适用于它们的实现。
Table adapted from: “Swin Transformer: Hierarchical Vision Transformer using Shifted Windows”.
此外,在预训练中学习到的相对位置偏差也可用于通过双三次插值初始化模型以使用不同的窗口大小进行微调。
COCO 数据集上的对象检测和实例分割
Table adapted from: “Swin Transformer: Hierarchical Vision Transformer using Shifted Windows”.
ADE20K 数据集上的语义分割
Table adapted from: “Swin Transformer: Hierarchical Vision Transformer using Shifted Windows”.
总体而言,新的视觉变换器产生分层表示,并具有与输入图像大小有关的线性计算复杂度。此外,在 COCO 对象检测和 ADE20K 语义分割方面实现了最先进的性能,其性能显着优于以前的最佳模型,其关键要素是基于窗口的移位自注意力,在计算机视觉任务上有效且高效。
**参考
** 1. Dosovitskiy, A., Beyer, L., Kolesnikov, A., Weissenborn, D., Zhai, X., Unterthiner, T., Dehghani, M., Minderer, M., Heigold, G., Gelly, S ., Uszkoreit, J., & Houlsby, N. (2021)。一幅图像值得 16x16 字:大规模图像识别的变形金刚。 ArXiv:2010.11929 [Cs] . http://arxiv.org/abs/2010.11929
2. Liu, Z., Lin, Y., Cao, Y., Hu, H., Wei, Y., Zhang, Z., Lin, S., & Guo, B. (2021)。 Swin Transformer:使用 Shifted Windows 的分层视觉转换器。 ArXiv:2103.14030 [Cs] . http://arxiv.org/abs/2103.14030
3. Radford, A., Kim, JW, Hallacy, C., Ramesh, A., Goh, G., Agarwal, S., Sastry, G., Askell, A., Mishkin, P., Clark, J. , Krueger, G. 和 Sutskever, I. (2021)。从自然语言监督中学习可迁移的视觉模型。 ArXiv:2103.00020 [Cs] . http://arxiv.org/abs/2103.00020
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/32252/05361301
这篇关于Swin Transformer V1 总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南