Swin-Transformer介绍
Transformers在NLP领域大放异彩,结合无监督和大模型相关的技术,基本引领了该领域的发展。
与RNN(如LSTM)相比,Transformers能够建模输入序列元素之间的长期依赖关系并支持序列的并行处理。Transformers的直接设计允许使用类似的处理块处理多种模式(如图像、视频、文本和语音)。
一些工作尝试将Transformer迁移至视觉领域,处理图像数据,然而将Transformer应用到图像领域有一系列挑战,如
1.图像作为极度稀疏的数据局,分辨率高,像素点多,Transformer基于全局自注意力的计算导致计算量较大,这个特性促使了滑动窗口的设计的CNN在图像数据上的广泛应用。
2.图像并不是一个序列数据,将图像转换成合适的序列输入到Transformer也是难点之一。
3.图像数据尺度变化大,直接作为序列处理往往效果不佳。
Swin-Transformer的出现在一定程度上解决了上述问题,并在多个视觉任务,图像分类、目标检测、目标分割上取得了非常优秀的成绩,正因如此获得了2021 ICCV Best Paper奖项。
目前已有一些工作对Transformers在图像任务上的应用进行了一定探索,如ViT,将图像分成图像块,作为序列输入到Transformer中,并使用Position Eemdedding保留相对的位置关系。
ViT的开创性工作是在不重叠的中等尺寸图像块上直接应用一种Transformer结构进行图像分类。与卷积网络相比,它在图像分类上实现了令人印象深刻的速度精度折衷。但是ViT需要大量的图片才能训练好网络,DeiT改进了训练策略,使得需要的图片集变小。虽然ViT在图片分类上有所提高,但是它不适合于高分辨率图片,因为它的复杂度是图片大小的二次方。将ViT模型应用于目标检测和语义分割等稠密视觉任务中的直接上采样或解卷积算法,效果相对较差。而Swin Transformer优化了ViT,使其在图片分类任务上进一步提升。根据经验,Swin-Transformer架构可以在这些图像分类方法中实现最佳的速度-精度折衷,尽管该的工作侧重于通用性能,而不是专门针对分类。有其他学习和也在做多尺度分辨率的融合工作,但是其复杂度还是二次,而该方法的复杂度是线性复杂度。ST的模型是兼顾了模型性能与速度,在COCO目标检测和ADE20K语义分割上达到新的SOTA。
Swin-Transformer构造了一个层次表示,从小尺寸的像素块(用灰色表示)开始,逐渐合并更深层次的像素块。有了这些分层特征映射,Swin-Transformer模型可以方便地利用先进的技术进行密集预测,如特征金字塔网络(FPN)[41]或U-Net[50]。线性计算复杂度是通过在分割图像的非重叠窗口(红色轮廓)内局部计算自我注意来实现的。每个窗口中的像素块数是固定的,因此复杂度与图像大小成线性关系。这使得Swin-Transformer 作为backbone可以适应各种视觉任务。而之前用于视觉的Transformer技术只使用了单层特征图,且拥有二次复杂度,从而大大降低了计算量。
它首先通过像ViT一样的分片模块将输入的RGB图像分片成不重叠的像素块。每个像素块被视为一个“token”,其特征被设置为原始像素RGB值的串联。我们使用的像素块是4×4的size,所以其特征维度为4×4×3=48。在这个原始值特征上应用一个线性嵌入层,将其投影到任意维(表示为𝐶)。
在stage1中,几个Swin Transformer blocks算子被应用于这些像素块上。这些 Transformer blocks保持了𝐻4×𝑊4的tokens数量,并且伴随线性的嵌入层。
stage2中,为了产生一个层次化的表示,由于像素块的合并使得tokens的数量减少了。第一次patch merging layer合并了2×2领域内的像素块,并且使用一个线性层在4𝐶的特征上进行合并。这个操作减少了2×2=4倍的tokens,并设置输出的维度为2𝐶。这里的Transformer blocks应用于特征变换后,tokens的数量变为𝐻8×𝑊8。这第一个像素块融合和特征变换被称为stage2。这种操作进行叠加产生了stage3、stage4,如图所示,tokens的数量分别为:𝐻16×𝑊16、𝐻32×𝑊32。这些阶段共同产生一个层次表示,具有与典型卷积网络相同的特征图分辨率,如VGG [51] and ResNet [29]。结果表明,该体系结构可以很方便地取代现有方法中的backbone,用于各种视觉任务。
标准的Transformer架构适应于图像分类,主要采用了相对位置编码的全局自注意力机制,而全局计算的复杂度是
的,表现为tokens的数量。这在很多视觉任务中都会带来速度损失,且在高分辨率下表现出很强的不适应性。作者通过非重叠窗口的自注意力、连续块的移位窗口划分、shifted策略的高效batch计算、相对位置偏置来解决问题。
最终该方法在多个任务上取得非常优异的性能,并且和效率取得了非常好的均衡。
- 点赞
- 收藏
- 关注作者
评论(0)