将Transformer框架从NLP域应用到CV域提出了两大重大挑战。第一个挑战来自NLP和CV领域之间的不同尺度。NLP有一个标准化的固定规模,而CV的规模可能会有很大的变化。第二个挑战源于CV建模所需图像的潜在高分辨率,导致大量的像素。Transformer依赖于全局自注意力机制计算,可能导致大量的计算需求。
为了应对这些挑战,Swin Transformer与之前的Vision Transformer(VIT)相比,引入了两项关键改进。首先,它采用CNN中常用的分层构造方法来构建分层Transformer。其次,它结合了局部性的概念,仅在非重叠窗口区域内执行自注意计算。这种方法具有双层目的:它引入了CNN卷积运算的局部特征,并显着降低了计算复杂性,计算复杂性与窗口数量呈线性关系。通过采用具有下采样水平的分层设计,Swin Transformer逐渐增加了感受野,使注意力机制也能够捕获全局特征。从本质上讲,Swin Transformer运行VIT通过将它们划分为多个块来类似CNN,从而促进分层特征提取。因此,提取的特征具有多尺度概念,类似与多分辨率的概念。
1.整体架构
Swin Transformer采用由四个阶段组成的分层设计。除了第一阶段之外,每个后续阶段都采用补丁合并层来降低输入特征图的分辨率,执行类似于CNN的下采样操作。通过这一过程,感受野逐渐扩大,允许收集全局信息。最后阶段不需要下采样。在此之后,该模型采用后续的全连接层来计算与该目标标签相结合的损失。
使用块划分模块,输入图像首先被划分为不重叠的块。这些补丁中的每一个都被视为一个“token”,来自原始像素的RGB值被连接起来以创建其特征。然后,这些补丁令牌会受到许多Swin Transformer块的影响。当与线性嵌入一起使用时,Swin Transformer块保留的token数,并被称为“阶段1”。随着神经网络的深度发展,使用补丁合并的方法来减少token的数量,以实现分层表示。相邻
patchs的特征在第一个patch合并层中连接,线性层应用于产生的4C维特征。通过该操作,token数量减少
倍,并且输出维度变为2C。随后,Swin Transformer模块被引入用于特征变换,同时保持分辨率在
的范围内。“阶段2”是第一个patch合并和特征变换。类似的过程重复两次,产生“stage3”和“stage4”,相应的输出分辨率分别为
。这四个阶段共同有助于生成分层表示,其特征图分辨率与标准CNN的分辨率相当。
1.2 分层表示
Swin Transformer通过最初处理小尺寸的块来构建分层表示,如绿色轮廓所示,并逐渐合并来自更深Swin Transformer层的相邻块(图6(a)),这与VIT(图6(b))完全不同。通过在由红色边界框表示的图像上划分的非重叠窗口内局部计算自注意,实现了线性计算复杂度。每个窗口内的补丁数量是固定的,导致复杂度和图像大小之间的线性关系。
Swin Transformer在非重叠的局部窗口内计算自注意力,而不是全局自注意力。图像被均匀地分割成这些不重叠的窗口。对于包含块标记的非重叠局部窗口,具有
块标记图像窗口的多头注意力(MSA)模块的计算复杂度可以表示如下,
基于窗口的多头自注意力(W-MSA)模块中,基于非重叠局部窗口的Swin Transformer的计算复杂度由下式给出,
其中前者与补丁数hw成二次方,而后者在M固定(默认设置为7)时呈线性。对于较大的hw,全局自注意力计算通常难以承受,而基于窗口的自我关注计算则可以扩展。
1.3 Swin Transformer模块
在VIT中,全局自注意力在Transformer块中执行,计算每个token与所有其他token之间的关系。Transformer模块由MSA模块和具有中介GELU的非线性的单个多层感知层(MLP)组成。LayerNorm(LN)层跟随在MSA模块。Swin Transformer块由两个VIT块组成,因为它具有多个移位窗口操作(图(6)d)。值得注意的区别是在红框中,即W-MSA和基于移动窗口的MSA(SW-MSA)。Swin Transformer模块用这两部分代替了传统的Transformer模块中的MSA模块。W-MSA表示窗口内的多头自注意,将窗口视为独立的全局背景(context),用于计算token之间的成对注意。另一方面,SW-MSA稍微改变了窗口的覆盖范围,通常是窗口侧长度的一半。
1.4 Shifted window based MSA
虽然Swin Transformer中的W-MSA将计算复杂度从二次降低到线性,但不同窗口之间缺乏通讯和连接会限制其建模能力。为了解决这一限制,Swin Transformer引入了移位窗口分区,以促进相邻非重叠窗口之间的信息交换。这种方法涉及在两个连续的Swin Transformer块中交替使用W-MSA和修改的SW-MSA。移位的窗口划分在相邻之间创建连接,显著增加了感受野。
如上图所示,阶段1采用左上角像素开始的标准窗口分区策略,将特征图均匀划分为
个大小为
的窗口。随后,下一个模块通过移位窗口像素来采用与前一层不同的窗口配置,以便实现更多样化的窗口布置。
通过采用移位窗口划分方法,两个连续Swin Transformer块内的计算可以描述如下,
在计算自注意力时,Swin Transformer在相似度计算期间为每个头部引入相对位置偏差,其表示如下: