ICLR 2022 | 新注意力!用于ViT的QuadTree Attention

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

转载自:集智书童

96da2b5e9ab1170a7b79cbda578e8e12.pngQuadtree Attention for Vision Transformers

论文:https://openreview.net/forum?id=fR-EnKWL_Zb

代码:https://github.com/Tangshitao/QuadtreeAttention

Transformers在许多视觉任务中都很成功,因为它们具有捕捉长期依赖性的能力。然而,它们的二次计算复杂度阻碍了将它们应用于需要密集预测的视觉任务之中,如目标检测、特征匹配、立体视觉等。

本文引入QuadTree Attention,将计算复杂度从二次降低到线性。QuadTree Transformer构建token pyramid,并以一种从粗到细的方式计算Attention。在每个level上,选择注意力得分最高的top-K个patches,这样在下一level上,只在这top-K个patches对应的相关区域内进行注意力评估。

作者证明了QuadTree Attention在各种视觉任务中达到了最先进的性能,例如ScanNet的特征匹配性能提高了2.7%,FLOPs减少了约50%,ImageNet分类的Top-1准确率提高了0.6-1.4%,COCO目标检测FLOPs降低了30%,精度提高了1.3-1.6%。

1简介

Transformer可以通过注意力模块捕获长期依赖关系,并在自然语言处理任务中显示出巨大的成功。近年来,Transformer也被用于计算机视觉任务,用于图像分类、目标检测、语义分割、特征匹配等。通常情况下,图像被分成几个小的patches,这些小patches被Flatten并作为单词符号输入Transformer,以评估注意力得分。而在Token数量上,即图像patch的数量上,Transformer的计算复杂度是二次的。因此,将Transformer应用于计算机视觉应简化所涉及的计算。

为了在视觉任务中利用标准Transformer,许多工作选择在低分辨率或稀疏Token上应用它。ViT使用16×16像素的粗图像块来限制Token的数量。DPT将ViT的低分辨率结果提升到高分辨率特征图,以实现密集任务的预测。SuperGlue将Transformer应用于稀疏图像关键点。Germain和Li等人专注于通信和立体匹配应用,也将Transformer应用于低分辨率特征图。

然而,正如在若干工作中所展示的,高分辨率Transformer的应用有利于各种任务。因此,设计高效的Transformer以降低计算复杂度已成为许多研究的重点。线性近似Transformer使用线性方法近似标准的注意力计算。然而,实证研究表明,线性Transformer在视觉任务方面较差。为了降低计算成本,PVT使用下采样的key和value,这对捕获像素级细节是有害的。相比之下,Swin Transformer将局部窗口中的注意力限制在一个注意力块中,这可能会损害长期依赖关系(这是Transformer最重要的优点)。

与之前的所有工作不同,本文设计了一个高效的视觉Transformer,它可以捕捉精细的图像细节和长期依赖关系。在观察到大多数图像区域是不相关的启发下,构建了Token pyramids,并以从粗到细的方式计算注意力。这样,当对应的粗粒度区域没有前景时,可以快速跳过细粒度的不相关区域。

310aa03f5bde19be6f0469cbdf749905.png
图1

如图1所示,在level-1,用B中的所有patch计算A中的蓝色patch的注意力,并选择top-K个patch(这里K=2),这也是用蓝色高亮显示的;在level-2中,对于A图中4个Patches内的sub-patch(即level-1的蓝色patch对应的sub-patch),这里只使用level-1 B图中top-K个patch对应的sub-patch来计算它们的注意力。所有其他的阴影sub-patch被跳过以减少计算。这里用黄色和绿色标出A图中的2个sub-patch。B图中对应的top-K个patch也用同样的颜色高亮显示。这个过程在level-3进行迭代,在level-3中,只显示与level-1的绿色sub-patch相对应的sub-sub-patch

通过这种方式,该方法既能获得精细的规模注意力,又能保持长期的联系。最重要的是,在整个过程中只有稀疏的注意力被评估。因此,本文方法具有较低的内存和计算成本。

在实验中,证明了QuadTree Transformer在需要cross attention的任务(如特征匹配和立体视觉)和只使用Self-Attention的任务(如图像分类和目标检测)中的有效性。

与相关的Efficient Transformer相比,QuadTree Transformer实现了最先进的性能,显著减少了计算量。

在特征匹配方面,在ScanNet中实现了60.3 AUC@20,比线性Transformer高2.7,但FLOPs类似。

在立体匹配中,实现了与标准Transformer相似的端点误差,但减少了约50%的FLOPs和40%的内存。

在图像分类方面,在ImageNet中获得了82.6%的top-1准确率,比ResNet高6.2%,比Swin Transformer-T高1.3%,且参数更少,FLOPs数更少。

在目标检测方面,QuadTree Attention+RetinaNet在COCO中获得了46.2 AP,比PVTv2 Backbone高1.6,但FLOPs降低了约35%。

2相关工作

2.1 Efficient Transformers

变形金刚在自然语言处理和计算机视觉方面都取得了巨大的成功。由于二次型计算的复杂性,在处理长序列令牌时无法进行充分注意的计算。因此,许多工作都在设计高效的变压器,以降低计算复杂度。Efficient Transformers可分为3类:

  1. Linear approximate attention:通过对softmax注意力进行线性化来近似全注意矩阵,通过先计算key和value的乘积来加速计算;

  2. Point-Based Linear Transformers:使用学习过的固定大小的诱导点对输入符号进行关注,从而将计算量降低到线性复杂度。然而,在不同的工作条件下,这些线性Transformer的性能都不如标准Transformer。

  3. Sparse attention:包括Longformer、Big Bird等,每个query token都是针对key和value token的一部分,而不是整个序列。

与这些研究不同的是,QuadTree Attention可以根据粗糙水平上的注意力分数快速跳过无关token。因此,在保持较高效率的同时,实现了较少的信息损失。

2.2 Vision Transformers

Transformers在许多视觉任务中都表现出了非凡的表现。ViT将Transformers应用于图像识别,证明了Transformers在大规模图像分类方面的优越性。然而,由于Softmax注意力的计算复杂度,在密集的预测任务中,如目标检测、语义分割等,很难应用Transformers。

为了解决这个问题,Swin Transformer限制了局部窗口中的注意力计算。Focal Transformers使用2层窗口来提高捕获远程连接的能力,以实现局部注意力方法。金字塔视觉Transformers(PVT)通过下采样key和value token来减少全局注意力方法的计算量。尽管这些方法在各种任务中都显示出了改进,但它们在捕获长期依赖或精细水平注意力方面都存在缺陷。与这些方法不同的是,QuadTree Attention通过在单个块中计算出从全图像级别到最优token级别的注意力,同时捕获局部和全局注意力。此外,K-NN Transformers从与最相似的top-K个token中聚合消息,但KNN计算所有对query token和key token之间的注意力得分,因此仍然具有二次复杂度。

除了Self-Attention,许多任务在很大程度上都能从Cross Attention中受益。Superglue过程检测具有Self-Attention和Cross Attention的局部描述符,并在特征匹配方面显示出显著的改进。标准Transformer可以应用于SuperGlue,因为只考虑稀疏的关键点。SGMNet通过seeded matches进一步减少了计算量。LoFTR在低分辨率特征图上利用线性Transformer生成密集匹配。对于立体匹配,STTR沿着极线应用Self-Attention和Cross Attention,并通过梯度检查点减少了内存消耗。然而,由于需要处理大量的点,这些工作要么使用有损性能的线性Transformer,要么使用有损效率的标准Transformer。

相比之下,QuadTree Transformer与线性Transformer相比具有显著的性能提升,或与标准Transformer相比效率提高。此外,它还可以应用于Self-Attention和Cross Attention。

3QuadTree Transformer

3.1 Attention in Transformer

Vision Transformers在许多任务中都取得了巨大的成功。Transformer的核心是注意力模块,它可以捕获特征嵌入之间的远程信息。给定2个图像嵌入点和,注意力模块在它们之间传递信息。自注意力机制是指和相同时的情况,而Cross Attention则是指和不同时更普遍的情况。它首先通过下面的等式生成query Q、key K和value V,

f938ae01d1855cf69497aa0250903ae7.png

其中,、和都是可学习的参数。然后,通过计算query和key之间的注意力得分来进行消息聚合,如下:

fe8a0ed22655eef640a3d5036c9c6980.png

其中,C是嵌入通道的维数。上述过程具有的计算复杂度,其中N是Vision Transformer中图像patch的数量。这种二次复杂度阻碍了Transformer被应用于需要高分辨率输出的任务。为了解决这个问题,PVT采用了下采样K和V,而Swin Transformer限制了局部窗口内的注意力计算。

3.2 QuadTree Attention

为了降低Vision Transformer的计算成本,提出了QuadTree Attention。顾名思义,借用了 quadtrees的概念, quadtrees通常用于递归地将二维空间细分为4个象限或区域。QuadTree Attention以粗到细的方式计算注意力。根据粗级的结果,在细级快速跳过不相关的图像区域。这种设计在保持高效率的同时,减少了信息损失。

与常规Transformer一样,首先将和线性投影到query、key和value token上。为了方便快速的注意力计算,本文通过下采样特征映射构造L-level金字塔用于query Q、key K和value V token。

  • 对于query和key token,使用平均池层;

  • 对于value token,如果是交叉注意力任务则使用平均池化,如果时Self-Attention任务,则使用stride为2的Conv-BN-ReLU。

如图1所示,在计算了粗粒度的注意力分数后,对于每个query token,选择注意力分数最高的top-K个key token。在细粒度上,query sub token只需要用那些对应于粗粒度上所选K个key token之一的key sub token来计算。这个过程不断重复,直到达到最好的水平。在计算了注意力分数之后,在所有粒度上聚合信息,这里设计了2个架构,称为QuadTree-AQuadTree-B

1、QuadTree-A

考虑到最佳级别的第个query token ,需要从所有key token计算其收到的消息。该设计通过收集不同金字塔层次的部分信息来组装完整的信息。具体地说,

61f801847b29255864a5947dcb6de509.png

其中,表示在level-l计算的partial messages。这个partial messages 从区域内的token在level-l聚集信息。通过这种方式,来对自较少相关区域的信息进行粗粒度计算,而对来自高度相关区域的信息以精细粒度计算。

aa6d36f4dcffbfa692219cf063f31462.png
图2

该方案如图2(b)所示,messages 是由不同图像区域不同颜色的3个partial messages生成的,共同覆盖整个图像空间。绿色区域表示最相关的区域,在最精细的level上评价和计算,而红色区域是最不相关的区域,在最粗的level上进行评价和计算。

区域可以定义为,其中图像区域对应于的top-K token。区域如图2(c)。所示区域覆盖了整个图像。

partial messages的计算如下:

5b92f76b20bef870439e78c0a18951c1.png

其中,是在level-l的query和key token之间的注意力得分。图2(a)显示了与相同颜色计算时涉及的query和key token。注意力分数被递归地计算出来,

7f1b43c7e7bcbb016b7d0fd7fb347fa3.png

这里,是对应的 parent query和key token和的得分。根据公式1在同一parent query token的2×2 token中评估tentative attention得分。对于QuadTree-A,使用平均池化层对所有query、key和value token进行下采样。

2、QuadTree-B

QuadTree-A中从所有层次上递归计算的注意力分数,这使得在更精细的层次上的分数变小,并减少了精细图像特征的贡献。此外,精细水平的得分也在很大程度上受到粗水平的不准确性的影响。因此,设计了一个不同的方案,称为QuadTree-B来解决这个问题。具体来说,计算作为来自不同level的partial messages的加权平均值,

4dd7156bc31246b2b9763a4e7914ddf0.png

其中是一个学习得到的权重。如图2(c)所示,这里的partial messages相互重叠,计算结果为:

ff717631108f07e74d8f62d195aa2098.png

其中,Attention是attention message的计算,如式1。在这里,和是通过在区域内叠加所有的key和value而形成的矩阵。

QuadTree-A和QuadTree-B都只涉及稀疏注意力评价。因此,该方法大大降低了计算复杂度。QuadTree Attention的计算复杂度与Token的数量是线性的。

3、Multiscale position encoding

注意力的计算对token来说是排列不变的,因此会丢失位置信息。为了解决这个问题,作者在每个层次上采用局部增强的位置编码(LePE) 来设计一个多尺度的位置编码。具体来说,对于level-l,对value token 应用非共享深度卷积层来编码位置信息。

3.3 与其他注意力机制的对比

为了与其他注意力机制进行公平的比较,作者在相同的backbone和训练设置下测试了这些注意力机制。

0f7acf22a67e89ac6166429c5daeab81.png
表5

具体来说,将PVTv2-Bb中原有的注意力模块替换为Swin Transformer和Focal Transformer中使用的注意力方法。为了更公平的比较,采用与PVTv2、Swin和Focal Transformer相同的位置编码LePE。如表5所示,QuadTree Attention在分类任务和检测任务中都比Swin和PVTv2获得了更好的性能。

与Focal Attention相比,QuadTree Attention在目标检测上的结果提高了1.0,这可能是因为QuadTree Attention总是能够覆盖整个图像,而Focal Attention在第一阶段只覆盖了图像的1/6。

e78533d60702d2fa81eee0cf6dd1ffc8.png
图5

对于Cross Attention任务,本文提供了可视化的注意力分数,如附录e中的图5所示。QuadTree Attention可以注意到比PVT和Linear attention更多的相关区域。

4实验

4.1 Cross-Attention Task

1、特征匹配
d029a25452a8fb824a89ffcda66581cd.png
表1
2、立体匹配
3b00e2984def5839943fbe934006ba4f.png
表2

4.2 Self-Attention Task

1、图像分类
f373c3a4ed7cd8ac08229448090fb6b5.png
表3
2、目标检测
0a63312827ac102e7284371be4cae9f3.png
表4

CVer-Transformer交流群成立

扫码添加CVer助手,可申请加入CVer-Transformer 微信交流群,方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。

一定要备注:研究方向+地点+学校/公司+昵称(如Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

1ff7dfce929202f818328eccfeac6ff8.png

▲长按加小助手微信,进交流群

CVer学术交流群(知识星球)来了!想要了解最新最快最好的CV/DL/ML论文速递、优质开源项目、学习教程和实战训练等资料,欢迎扫描下方二维码,加入CVer学术交流群,已汇集数千人!

0d322df43380169237eef26857b2ccdd.png

▲扫码进群

▲点击上方卡片,关注CVer公众号

整理不易,请点赞和在看67a09cc2b8437f2ef9a12b843207e272.gif

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ICLR 是国际计算机学会和机器学习领域相关的研究人员组成的国际会议,每年会发布一系列的AI前沿论文。在2021年的ICLR会议上,有一篇论文介绍了一种注意力模块,即SimAM。 SimAM 的全称为 Similarity-based Attention Module,是一种基于相似度的注意力模块,能够对输入的信息进行选择性地加权处理。这种模块的主要特点是在保证计算效率的情况下,提高了注意力机制的精度。 具体来说,SimAM利用了序列信息中与目标序列相近的信息进行加权,避免了传统的注意力机制中需要注意所有信息的局面,从而提高了注意力机制的精度。同时,SimAM还与Transformers结合使用,可有效地提高自然语言处理中的文本分类等任务的准确率。 综上所述,SimAM是一种型的注意力模块,应用于深度学习系统可以提高计算效率和准确率,特别适用于自然语言处理任务。这篇ICLR的论文对深度学习领域有重要意义,未来有望引领注意力模块发展方向。 ### 回答2: ICLR是全球机器学习人工智能领域的一项顶级学术会议,是人工智能领域内最有权威性的会议之一,每年汇集了学术界和工业界的最进展和顶尖水平。在ICLR 2020上,提出了一种注意力模块——SIMAM,引起许多学者和业内人士的关注。 SIMAM是什么呢?它全称为“Self-Attention Augmented Convolutional Neural Network with SIN and SAM”,可以译为“带有SIN和SAM的自注意力增强卷积神经网络”。SIMAM主要是通过引入自注意力机制和Squeeze-and-Excitation模块,来增强卷积神经网络的表达能力和性能。 首先,自注意力机制是指对于每一个输入特征,都可以计算其与自身在不同位置之间的相互关系。因此,自注意力机制可以更加准确地捕捉输入特征之间的关系,帮助网络更好地理解复杂模式,并提高分类和定位等任务的准确性。 其次,Squeeze-and-Excitation模块是一种轻量级的结构,可以自动学习每个通道的重要性权重,并将其应用于输入输出之间的映射过程。这种模块不仅可以增强网络的表达能力,还可以减少模型参数和计算量,提高模型的效率和可移植性。 总结来看,SIMAM是一种型的,具有自学习和自适应性的注意力模块,可以用于各种分类、定位和语义分割任务等,具有较好的性能和效率。SIMAM的出现提高了我们对于注意力机制的理解和应用,为卷积神经网络的发展带来了的方向和可能。 ### 回答3: ICLR(International Conference on Learning Representations)是一个重要的机器学习领域的国际学术会议,其中关于机器学习模型中“注意力机制”的研究是大热门的研究方向。而SIMAM则是ICLR 2021上关注的注目模块之一。 SIMAM是一种适用于自然语言处理中的多头模型中的注意力机制。它是通过使用适应性幂平均数(adaptive power mean)函数,将多个注意力分配权重求平均来实现的。SIMAM通过适应性动态地调整参数,从而使得系统更加适应复杂的自然语言处理任务。与此同时,SIMAM还具有减少注意力规模和缓减注意力水平变化的优点。 SIMAM模块将不同的注意力查询(即查询序列)进行分类,而它的分类能力则是由其高效的适应性权重计算技术所支撑的。适应性幂平均数是一种在条件预测任务中胜任的算法,其性能与其他方法相当。因此,在语言理解等自然语言处理任务中,SIMAM模块可以帮助减轻注意力集中的问题,并提高模型的泛化和鲁棒性能。 在ICLR 2021上,对SIMAM模块的讨论是基于其在自然语言处理任务中的应用。多篇论文着重介绍了SIMAM模块在机器翻译、情感分析、问答系统等任务中的表现,以及如何使用SIMAM模块来改善多个现有模型的性能。 因此,SIMAM模块可以被看作是一种可适应多个自然语言处理模型的注意力机制,它能够帮助模型更好地应对语义问题和规模较大的数据集。当然,与其他注意力机制一样,SIMAM模块也需要在不同的任务和环境中进行不断改进和优化。未来SIMAM模块将继续在自然语言处理领域推向前沿。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值