赞
踩
这篇文章结合了CNN的归纳偏置,基于局部窗口做注意力,并且逐步融合到深层transformer层中构建表征,来达到扩大感受野,并且极大降低了计算量。是一个特征提取的主干网络,backbone。构建了一种分层特征提取
的方式,不断减小“feature map”的大小(token的数量),构造层次的特征映射。
关键部分是提出了Shift window移动窗口(W-MSA、SW-MSA),改进了ViT中忽略局部窗口之间相关性的问题。在ViT中使用不重叠的窗口进行self-attention计算,忽略了相邻窗口间的相关性,而Swin-T使用shfit windown
移动(M/2)来桥接不同窗口间的信息。但这样会引入很大的计算量,于此作者又提出了cyclic-shift 循环位移
,保证计算量不变,但是这样的移动又又又会使得不相关的部分拼接在一起。计算这些部分的注意力是没有意义的。于是提出了attention mask
来遮盖无效的部分,使注意力权重为0 这部分的详细推导。还加入了相对位置偏置B
。
获得了2021ICCV最优文章。
原文链接:Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
参考文献:
对Swin-T的输入输出不太清楚的可以看这篇:Swin Transformer详解
W-MSA和SW-MSA复杂度计算:MSA模块计算复杂度推导
本文提出了一种新的transformer结构,称为Swin Transformer,它可以作为计算机视觉的通用主干
。视觉和语言两个领域之间的差异主要体现在两个方面:尺度和分辨率。
为了解决以上问题,作者提出了一种分层级的Transformer。通过移位窗口将自注意计算限制在非重叠的局部窗口上,同时允许跨窗口连接。通过融合patch来改变特征图像大小以达到不同层级的注意力计算。这种分层结构具有在各种尺度下建模的灵活性,并且相对于图像大小具有线性计算复杂性。Swin Transformer能够与广泛的视觉任务兼容,包括图像分类和密集预测任务,如目标检测和语义分割。
Transformer是为序列建模和转导任务而设计的,它具有建立数据中的长期依赖关系
的能力,在语言领域获得了巨大的成功。这促使研究人员想要开发它的对计算机视觉的适应性。事实上Transformer在视觉领域已经获得了部分的成功,用self-attention代替部分或全部CNN;或CNN和transformer结合;或单纯使用transformer结构。
Swin-T的方法是基于ViT的。ViT的开创性工作直接将Transformer架构应用于非重叠的中等大小图像块,用于图像分类。但ViT需要大规模的训练数据集(即JFT-300M)才能表现良好,因此DeiT引入了几种训练策略,使ViT也能有效地使用较小的ImageNet-1K数据集。ViT的体系结构不适合用作密集视觉任务的通用主干网络:当输入图像分辨率很高,低分辨率特征映射的复杂度随图像大小呈二次增长
。
在本文中,作者试图扩展Transformer的适用性,将其在语言领域的高性能转移到视觉领域,使其可以像CNN在视觉中一样,作为计算机视觉的通用主干。提出了Swin Transformer结构,它构造了层次特征映射
,并具有与图像大小成线性关系的计算复杂度
。
所提出的Swin-T在图像分类、目标检测和语义分割等识别任务上具有很强的性能。它的性能明显优于ViT/DeiT和ResNe(X)t模型。
文章的重点在于移动窗口Shift Window,窗口的移动方式和移动后注意力的计算(里面有个mask attention)
输入图像大小为 ( 224 × 224 × 3 ) (224×224×3) (224×224×3)
patch partition
将输入的RGB图像分割为非重叠的patch(同ViT)。每个patch视为一个“token”。设置patch大小为4×4个像素区域。所以每个patch特征维度为 4 × 4 × 3 = 48 4×4×3=48 4×4×3=48。----输出 ( 56 × 56 × 48 ) (56×56×48) (56×56×48)线性嵌入层
,将patch映射到维度为C。(C设置为96) ----输出 ( 56 × 56 × 96 ) (56×56×96) (56×Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。