论文阅读笔记 | Transformer系列——CSWin Transformer

简介: 论文阅读笔记 | Transformer系列——CSWin Transformer

paper:CSWin Transformer: A General Vision Transformer Backbone with Cross-Shaped Windows

code:https://github.com/microsoft/CSWin-Transformer

image.png

摘要:


Transformer设计中一个具有挑战性的问题是,全局自注意力的计算成本非常高,而局部自注意力通常会限制每个token的交互域。为了解决这个问题,作者提出了Cross-Shaped Window的自注意机制,可以并行计算十字形窗口的竖直与水平中的自注意力,其中通过将输入特征分割成等宽的条带来得到每个条带。


其中条带的宽度必然会对视野产生影响,为此作者对条带宽度的影响进行了详细的数学分析,并根据Transformer网络的不同层改变条带宽度,从而在限制计算成本的同时实现了较强的建模能力。


此外,作者还引入了局部增强位置编码(local -enhanced Positional Encoding, LePE),它比现有的编码方案能更好地处理局部位置信息,而且其能适应不同大小输入特征,支持任意输入解决方案,因此对下游任务特别有效和友好。


结合这些设计(Cross-Shaped Window 和 LePE)和层次结构,CSWin Transformer在常见视觉任务上展示了具有竞争力的性能。实现的效果:


85.4%Top-1 accuracy on ImageNet-1K without extra data

53.9box AP and 46.4 mask AP on the COCO detection task

51.7mIOU on the ADE20K semantic segmentation task

87.5%Top1 accuracy on ImageNet-1K with pretraining on ImageNet-21K

segmentation performance on ADE20K with 55.7mIoU with pretrain(SOTA)


1. Introduction


尽管Transformer-based的架构在各方面取得了成功,但是全局注意力机制的Transformer体系结构在计算效率方面是低效的。为了提高效率,一种典型的方法是将每个token的注意区域从全局注意限制为局部/窗口(local/windowed)注意。而为了让不同的窗口进行联系,研究人员进一步提出了halo和shift操作,通过附近的窗口交换信息。但是,这样的交互信息使得感受野的扩大比较缓慢,需要堆叠大量的块来实现全局的自注意力,而足够多的全局信息对性能是比较重要的。因此,在保持较低的计算成本的同时,有效地实现大接收域是非常重要的。


为此,作者提出了Cross-Shaped Window(CSWin)自注意力,其结构如下所示,并与现有的自注意机制进行了比较:

image.png

利用CSWin自注意力机制,实现并行地在水平和垂直条带中进行自注意力计算,每个条带都是通过将输入特征分割成等宽的条带得到的。条带宽度是十字形窗口的一个重要参数,它可以在限制计算成本的同时实现较强的建模能力。具体上,作者根据网络的深度调整条带宽度:浅层的宽度较小,深层的宽度较大。较大的条带宽度可以增强长程元素之间的连接,以较小的计算成本增加获得更好的网络容量。


值得注意的是,采用CSWin self-attention机制,水平条宽和垂直条宽的自注意是并行计算的。作者将多个头部分成平行的组,并对不同组进行不同的自注意操作(水平与竖直)。这种并行策略没有引入额外的计算成本,同时扩大了每个Transformer block内计算自注意的区域。


在CSWin self-attention的基础上,采用分层设计的方法,提出了一种新的通用视觉任务的Vit架构,称为:CSWin Transformer。为了进一步增强性能,作者还引入了一种有效的位置编码,局部增强位置编码(Locally-enhanced Positional Encoding,LePE),其直接对注意力结果进行操作,而不是对注意力计算。LePE使CSWin Transformer对下游任务更加有效和友好。


2. Related Work


2.1 Efficient Self-attentions

如图1所示,现有的窗口交互的方法有shifted/haloed version(图c),添加了跨不同局部窗口的交互。还有Axial Self-Attention(图e),它将局部窗口沿水平轴或垂直轴依次应用,以实现全局关注。但是,它的顺序机制和有限的窗口大小限制了它的表示学习性能。


ps:Axial Self-Attention与Cross-Shaped Window比较相像的,但不同的是本文用了一半的head捕获横向注意力,另一半的head捕获纵向注意力,但是Axial Self-Attention的结构是先捕获横向注意力、再捕获纵向注意力,后面的操作是基于前面的操作,所以不能够并行计算,这就导致模型的计算时间会变长。


2.2 Positional Encoding

由于self-attention是置换不变的,并且忽略了token位置信息,因此位置编码在transformer中被广泛使用,以将这些位置信息添加回来。典型的位置编码机制包括绝对位置编码(APE)、相对位置编码(RPE)和条件位置编码(CPE)。


APE和RPE通常被定义为一系列频率或可学习参数的正弦函数,它们是为特定的输入尺寸而设计的,对变化的输入分辨率不友好。


CPE以该特征作为输入,可以生成任意输入分辨率的位置编码。然后将生成的位置编码添加到输入特征上(也就是与输入特征进行一个简单的相加操作),然后将其输入到self-attention block中。


LePE与CPE类似,但建议将位置编码作为一个并行模块添加到自注意操作中,并对每个Transformer block中的投影值进行操作。该设计将位置编码与自注意计算解耦,可以增强局部归纳偏差(local inductive bias)。


3. Method


3.1 Overall Architecture

CSWin Transformer的总体架构如图2所示:

image.png


CSWin Transformer Block总体上与multi-head self-attention Transformer block 具有相似的拓扑结构,但有两个区别:

1)Cross-Shaped Window取代了自注意机制

2)为了引入局部感应偏置,将LePE作为一个并联模块加入到自注意分支中


3.2 Cross-Shaped Window Self-Attention

根据MSA机制,输入特征的每个token会产生K个head,然后每个head在水平或垂直条带内进行局部自注意。

image.png

对于竖直条带自注意力进行类似的操作。


假设自然图像没有方向偏差,作者将k个head平均分成两个平行组,第一组的head表现出横条带的自注意力,第二组的head表现出竖条带的自注意力。最后,这两个并行组的输出将被连接在一起(也就是concat操作)。

image.png

通过多头分组,一个Transformer块中每个token的注意区域被扩大。


其中, CSWin self-attention的计算复杂度为:

image.png


3.3 Locally-Enhanced Positional Encoding

SA具有排列不变性(不同排列的输出结果是一样的),为了弥补SA的这个缺陷,通常会在Transformer上加入位置编码。如图3中展示了一些典型的位置编码机制:

image.png

APE/CPE(上图左)是在进行SA之前就加入了位置信息,RPE(上图中)是在计算权重矩阵的过程中加入相对位置信息。作者采用了一种更加直接的方式进行了位置信息编码:直接将位置信息加入到Value中,然后将结果加到SA的结果中。


作者为了减少计算量,只捕获了局部的注意力,所以用了一个Depth-wise Conv对value进行卷积,然后将结果加入到了SA的结果中。


由公式:

image.png

改变为:

image.png


3.4 CSWin Transformer Block

采用上诉的Cross-Shaped Window自注意力与Locally-Enhanced位置编码方式,CSWin Transformer block可以定义为:

image.png

参数设置如下:

image.png


4. Result


  • 消融实验:

image.png

证实了横竖并行自注意操作与深层结构的效果


  • LePE与CSWin的效果:

image.png


  • ImageNet-1K分类中不同模型的比较:

image.png


  • ImageNet-1K通过对ImageNet-21K数据集进行预训练得到微调结果:

image.png

可以看见,在相同参数量下,CSWin Transformer的效果要比Vit与Swin Transformer的效果要好


  • 基于Mask R-CNN框架的COCO val2017目标检测和实例分割性能:

image.png


  • 语义分割性能测试:

image.png


总结:


作者提出了一种新的Vision Transformer架构CSWin Transformer,其核心是CSWin Self-Attention,它通过将多个head分成两个横竖两方向上的并行组,在水平和垂直条带上实现自注意。这样的设计可以有效地扩大一个Transformer block内每个token的关注范围。此外,还引入了LePE模块,直接将位置信息加入到Value中。


ps:本质上作者在进行下采样和局部增强的位置编码时,都用的是卷积。


此外,极市平台提出了一个想法,这里将head分为了两组,那分为更多组,每个组还是关注不同的区域,那样感受野就会更大,对模型的性能是否还会有进一步的提升呢?


目录
相关文章
|
机器学习/深度学习 算法 PyTorch
论文阅读笔记 | 目标检测算法——DETR
论文阅读笔记 | 目标检测算法——DETR
643 0
论文阅读笔记 | 目标检测算法——DETR
|
机器学习/深度学习 编解码 自然语言处理
Vision Transformer 必读系列之图像分类综述(二): Attention-based(上)
Transformer 结构是 Google 在 2017 年为解决机器翻译任务(例如英文翻译为中文)而提出,从题目中可以看出主要是靠 Attention 注意力机制,其最大特点是抛弃了传统的 CNN 和 RNN,整个网络结构完全是由 Attention 机制组成。为此需要先解释何为注意力机制,然后再分析模型结构。
616 0
Vision Transformer 必读系列之图像分类综述(二): Attention-based(上)
|
1月前
|
机器学习/深度学习 数据可视化 TensorFlow
[transformer]论文实现:Attention Is All You Need(上)
[transformer]论文实现:Attention Is All You Need(上)
24 2
|
1月前
|
机器学习/深度学习 并行计算 数据可视化
[transformer]论文实现:Attention Is All You Need(下)
[transformer]论文实现:Attention Is All You Need(下)
36 2
|
1月前
|
机器学习/深度学习 自然语言处理
Transformer奠基之作《Attention Is All You Need》
Transformer模型,由Google Brain和Google Research在2017年的论文中提出,颠覆了传统NLP依赖RNN和CNN的局面。该模型基于完全的注意力机制,解决了RNN的并行化难题,通过编码器和解码器中的多头自注意力机制捕捉全局依赖。训练策略结合Adam优化器、标签平滑和dropout,使其在机器翻译任务中表现卓越。尽管面临长序列处理的挑战和可能的上下文忽略问题,Transformer仍展示了注意力机制的巨大潜力,对NLP领域产生了深远影响。
36 3
Transformer奠基之作《Attention Is All You Need》
|
10月前
|
机器学习/深度学习 自然语言处理 并行计算
【Transformer系列(3)】 《Attention Is All You Need》论文超详细解读(翻译+精读)
【Transformer系列(3)】 《Attention Is All You Need》论文超详细解读(翻译+精读)
949 0
【Transformer系列(3)】 《Attention Is All You Need》论文超详细解读(翻译+精读)
|
计算机视觉
论文阅读笔记 | Transformer系列——Transformer in Transformer
论文阅读笔记 | Transformer系列——Transformer in Transformer
213 0
论文阅读笔记 | Transformer系列——Transformer in Transformer
|
机器学习/深度学习 编解码 自然语言处理
论文阅读笔记 | Transformer系列——Swin Transformer
论文阅读笔记 | Transformer系列——Swin Transformer
952 0
论文阅读笔记 | Transformer系列——Swin Transformer
|
10月前
|
机器学习/深度学习 算法 数据挖掘
【vision transformer】LETR论文解读及代码实战(一)
【vision transformer】LETR论文解读及代码实战
104 0
|
机器学习/深度学习 自然语言处理