Swin Transformer简介
背景
Swin Transformer是一种新型的神经网络架构,专为处理视觉任务设计。它的出现标志着从传统的卷积神经网络(CNN)到基于Transformer的模型在计算机视觉领域的重要转变。这种转变源于Transformer模型在自然语言处理(NLP)领域取得的巨大成功,尤其是在序列建模和长范围依赖捕获方面的优势。
从CNN到Transformer
-
CNN的局限性: 虽然CNN在图像识别任务中取得了巨大成功,但它们通常局限于局部感受野,这限制了它们捕获长距离依赖的能力。此外,CNN在处理高分辨率图像时面临着效率和性能的挑战。
-
Transformer的优势: Transformer结构,最初用于NLP任务,以其自注意力机制著称,可以有效处理长距离的依赖关系。这一特性使得Transformer在理解复杂的、全局性的数据结构方面表现出色。
Swin Transformer的动机
将Transformer从语言领域适配到视觉领域时面临的挑战源于这两个领域之间的差异,例如视觉实体的尺度变化大,以及图像中像素的高分辨率与文本中词语相比。
转变动机
-
尺度变化和分辨率问题: 在计算机视觉领域,尤其是处理高分辨率图像时,面临的主要挑战之一是视觉实体尺度的大变化和像素的高分辨率。这些特点与语言处理中的情况截然不同,因为在文本中,词汇的“分辨率”(即明确性和区分度)相对较低。
-
传统Transformer结构的局限: 由于这些差异,传统的Transformer结构(如在自然语言处理中使用的那样)直接应用于视觉任务时会遇到效率和性能的挑战。尤其是在处理需要细致像素级预测的高分辨率图像时,传统Transformer的全局自注意力机制导致计算复杂度过高,不适合直接应用于视觉任务。
Swin Transformer的创新
-
结合CNN与Transformer的优点: Swin Transformer设计旨在结合CNN的高效性与Transformer的长范围依赖处理能力。它通过层级结构和滑动窗口技术,有效地将Transformer应用于图像处理任务。
-
解决视觉任务的挑战: 通过其独特的设计,Swin Transformer能够更有效地处理高分辨率图像,并在各种视觉任务中展现出优异的性能,包括图像分类、目标检测和语义分割。
Swin Transformer的方法部分

其中演示了小型版本(SwinT)。它首先通过像ViT一样的patch分割模块将输入的RGB图像分割成不重叠的patch。每个patch被视为一个“标记”,其特征被设置为原始像素RGB值的串联(即flatten操作)。在我们的实现中,我们使用4 × 4的patch大小,因此每个patch的特征维数为4 × 4 × 3 = 48。在此原始值特征上应用线性embedding layer,将其投影到任意维度(记为C)。
在这些patch token上应用了几个具有改进的自注意力Transformer块(Swin Transformer块)。Transformer块维护token的数量(H/4 ×W/4),并与线性embedding一起被称为“第1阶段”。
为了产生分层表示,随着网络的深入,通过patch merging layer来减少token的数量。第一个patch merging layer将每组2 × 2相邻patch的特征进行拼接(见下图2),并在拼接后的4c维特征上应用线性层。这将token的数量减少了2× 2 = 4的倍数(分辨率降低了2倍),输出维度设置为2C。之后应用Swin Transformer块进行特征变换,分辨率保持在H/8 ×W/8。这第一个块的patch merging 和特征转换被称为“第二阶段”。
这些阶段共同产生一个分层表示,具有与典型卷积网络相同的特征映射分辨率,例如VGG和ResNet。因此,该结构可以方便地取代现有方法中的骨干网络,用于各种视觉任务。

Swin Transformer block
Swin Transformer是通过将Transformer块中的标准多头自注意力(MSA)模块替换为基于移位窗口的模块而构建的,其他层保持不变。如图1(b)所示,Swin Transformer模块由一个基于移位窗口的MSA模块组成,其次是一个2层MLP,中间是GELU非线性。在每个MSA模块和每个MLP模块之前应用一个LN (LayerNorm)层,在每个模块之后应用一个残差连接。
基于窗口滑动的自注意力机制(Shifted Window based Self-Attention)
标准Transformer体系结构及其对图像分类的适应都进行全局自注意力,其中计算一个token与所有其他token之间的关系。全局计算导致token数量的二次复杂度,使得它不适合许多需要大量token进行密集预测或表示高分辨率图像的视觉问题。
非重叠窗口中的自注意力机制(Self-attention in non-overlapped windows)
为了提高建模效率,我们建议在局部窗口内计算Self-attention。所述窗口被布置成以非重叠方式均匀地分割图像。假设每个窗口包含M × M块,则全局MSA模块和基于h × w块图像的窗口的计算复杂度为:
Ω ( M S A ) = 4 h w C 2 + 2 ( h w ) 2 C , \Omega(MSA) = 4hwC^

SwinTransformer是一种新型的视觉架构,通过结合CNN的效率与Transformer的长距离依赖处理,解决了视觉任务中的尺度变化和高分辨率挑战。它采用了移位窗口技术和相对位置偏移,实现了对高分辨率图像的有效处理并达到最先进的性能。
最低0.47元/天 解锁文章





