论文阅读笔记 | 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分为了两组,那分为更多组,每个组还是关注不同的区域,那样感受野就会更大,对模型的性能是否还会有进一步的提升呢?


目录
相关文章
|
机器学习/深度学习 编解码 数据可视化
图像恢复SwinIR: Image Restoration Using Swin Transformer
图像恢复SwinIR: Image Restoration Using Swin Transformer
1289 2
|
机器学习/深度学习 编解码 数据可视化
【即插即用】涨点神器AFF:注意力特征融合(已经开源,附论文和源码链接)
【即插即用】涨点神器AFF:注意力特征融合(已经开源,附论文和源码链接)
8935 1
|
机器学习/深度学习 算法 数据挖掘
YOLOv6 | 模型结构与训练策略详细解析
YOLOv6 | 模型结构与训练策略详细解析
3014 0
YOLOv6 | 模型结构与训练策略详细解析
|
计算机视觉
RT-DETR改进策略【Neck】| PRCV 2023,SBA(Selective Boundary Aggregation):特征融合模块,描绘物体轮廓重新校准物体位置,解决边界模糊问题
RT-DETR改进策略【Neck】| PRCV 2023,SBA(Selective Boundary Aggregation):特征融合模块,描绘物体轮廓重新校准物体位置,解决边界模糊问题
884 20
RT-DETR改进策略【Neck】| PRCV 2023,SBA(Selective Boundary Aggregation):特征融合模块,描绘物体轮廓重新校准物体位置,解决边界模糊问题
|
机器学习/深度学习 数据可视化 测试技术
YOLO11实战:新颖的多尺度卷积注意力(MSCA)加在网络不同位置的涨点情况 | 创新点如何在自己数据集上高效涨点,解决不涨点掉点等问题
本文探讨了创新点在自定义数据集上表现不稳定的问题,分析了不同数据集和网络位置对创新效果的影响。通过在YOLO11的不同位置引入MSCAAttention模块,展示了三种不同的改进方案及其效果。实验结果显示,改进方案在mAP50指标上分别提升了至0.788、0.792和0.775。建议多尝试不同配置,找到最适合特定数据集的解决方案。
4123 0
|
机器学习/深度学习
RT-DETR改进策略【损失函数篇】| 替换激活函数为Mish、PReLU、Hardswish、LeakyReLU、ReLU6
RT-DETR改进策略【损失函数篇】| 替换激活函数为Mish、PReLU、Hardswish、LeakyReLU、ReLU6
717 2
RT-DETR改进策略【损失函数篇】| 替换激活函数为Mish、PReLU、Hardswish、LeakyReLU、ReLU6
|
机器学习/深度学习 自然语言处理 PyTorch
深入剖析Transformer架构中的多头注意力机制
多头注意力机制(Multi-Head Attention)是Transformer模型中的核心组件,通过并行运行多个独立的注意力机制,捕捉输入序列中不同子空间的语义关联。每个“头”独立处理Query、Key和Value矩阵,经过缩放点积注意力运算后,所有头的输出被拼接并通过线性层融合,最终生成更全面的表示。多头注意力不仅增强了模型对复杂依赖关系的理解,还在自然语言处理任务如机器翻译和阅读理解中表现出色。通过多头自注意力机制,模型在同一序列内部进行多角度的注意力计算,进一步提升了表达能力和泛化性能。
11038 48
|
编解码 算法 计算机视觉
YOLOv11改进策略【Head】| 增加针对 大目标 的检测层 (四个检测头)
YOLOv11改进策略【Head】| 增加针对 大目标 的检测层 (四个检测头)
2595 7
|
机器学习/深度学习 PyTorch 算法框架/工具
详解三种常用标准化Batch Norm & Layer Norm & RMSNorm
通过本文的介绍,希望您能够深入理解Batch Norm、Layer Norm和RMSNorm的原理和实现,并在实际应用中灵活选择和使用,提升深度学习模型的性能和稳定性。
4510 5
|
并行计算 数据挖掘 PyTorch
【YOLOv8改进 - 特征融合】DySample :超轻量级且高效的动态上采样器
【YOLOv8改进 - 特征融合】DySample :超轻量级且高效的动态上采样器
【YOLOv8改进 - 特征融合】DySample :超轻量级且高效的动态上采样器