Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

总结

  1. 移动窗口,在单个窗口中的patch之间做self Attention,VIT是在所有的patch,每次向右下方移动,增加了不同窗口之间的交互,增加了归纳偏差,减少了计算量,由VIT的平方变为线性。
  2. 每个块的窗口的大小不一样,增加了多尺度信息。
  3. 为了处理由移动窗口造成的边上的窗口形状大小不一以及计算次数增加,通过移动在一个Tensor移动数据来进行补全(想到了小学计算某个图形面积的补全和移动),然后通过mask模板来防止移动后的窗口之间的交互,不是同一个窗口的mask设置为最小值,其他为0,相加后进行softmax即可把不同窗口之间的交互的数据变为0。

问题背景

  • Transformer在自然语言处理领域取得了巨大的成功,但在视觉领域的应用面临挑战,主要因为视觉实体的规模差异大,且图像的高分辨率使得传统全局自注意力计算复杂度过高。
  • 现有的视觉Transformer架构通常只能生成低分辨率特征图,并且计算复杂度随着图像尺寸成二次增长,限制了它们在高分辨率图像上的应用。

Swin Transformer架构

  • 分层结构:Swin Transformer通过分层的方式生成特征图,从小尺寸的图像补丁开始,逐层合并相邻补丁,最终得到多分辨率的特征图。这种分层结构使其更适合用于各种计算机视觉任务,包括图像分类、目标检测和语义分割。
  • 移位窗口自我注意:为解决传统自我注意在高分辨率图像中的计算效率问题,Swin Transformer提出了基于不重叠窗口的自我注意机制,每个窗口内的计算复杂度是线性的。为了增强模型的表达能力,提出了移位窗口的方法,使得连续的窗口可以连接,从而更有效地建模图像中的全局关系。

相对于vit的改进:

分层特征表示

  • ViT:使用固定大小的图像补丁(如16x16像素)作为输入标记,然后在整个图像范围内执行全局自注意力操作。这导致生成的特征图通常是低分辨率的,限制了其在密集预测任务(如对象检测、语义分割)中的表现。
  • Swin Transformer:引入了分层特征表示结构。它从小尺寸的图像补丁开始,在网络的不同阶段逐层合并相邻的补丁,从而生成多分辨率的特征图。这种分层结构与典型的卷积神经网络(CNN)类似,使其更适用于各种视觉任务,如对象检测和语义分割。

基于移位窗口的自我注意

  • ViT:使用全局自注意力机制,这种方法的计算复杂度随着图像大小的平方增长,因此在处理高分辨率图像时计算成本非常高。
  • Swin Transformer:采用了局部窗口内的自我注意机制,将自我注意力的计算限制在不重叠的局部窗口内,从而将计算复杂度降低为线性增长。为了克服局部窗口限制跨窗口连接的问题,Swin Transformer引入了移位窗口机制,在连续的Transformer层之间移动窗口分区,以建立跨窗口的联系,增强模型的表达能力。

计算复杂度的优化

  • ViT:由于使用全局自注意力机制,ViT的计算复杂度是二次的,随着图像分辨率的增加而快速增长。
  • Swin Transformer:通过限制自注意力计算在局部窗口内进行,并使用移位窗口技术,使得计算复杂度与图像分辨率线性相关。这使得Swin Transformer在处理高分辨率图像时更为高效。

Abstract

本文提出了一种新的视觉转换器Swin Transformer,它可以作为计算机视觉的通用主干。将 Transformer 从语言适应视觉的挑战源于两个域之间的差异,例如视觉实体的规模变化很大,以及与文本中的单词相比,图像中像素的高分辨率。为了解决这些差异,我们提出了一个分层 Transformer,其表示是使用 Shifted 窗口计算的。移位窗口方案通过将自注意力计算限制在不重叠的局部窗口上,同时允许跨窗口连接,从而带来了更高的效率。这种分层架构可以灵活地在不同的尺度上建模,并且具有相对于图像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值