Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Softmax注意力与线性注意力的优雅融合,Agent Attention推动注意力新升级

来自清华大学的研究者提出了一种新的注意力范式——代理注意力 (Agent Attention)。

近年来,视觉 Transformer 模型得到了极大的发展,相关工作在分类、分割、检测等视觉任务上都取得了很好的效果。然而,将 Transformer 模型应用于视觉领域并不是一件简单的事情。与自然语言不同,视觉图片中的特征数量更多。由于 Softmax 注意力是平方复杂度,直接进行全局自注意力的计算往往会带来过高的计算量。针对这一问题,先前的工作通常通过减少参与自注意力计算的特征数量的方法来降低计算量。例如,设计稀疏注意力机制(如 PVT)或将注意力的计算限制在局部窗口中(如 Swin Transformer)。尽管有效,这样的自注意力方法很容易受到计算模式的影响,同时也不可避免地牺牲了自注意力的全局建模能力。

与 Softmax 注意力不同,线性注意力将 Softmax 解耦为两个独立的函数,从而能够将注意力的计算顺序从 (query・key)・value 调整为 query・(key・value),使得总体的计算复杂度降低为线性。然而,目前的线性注意力方法效果明显逊于 Softmax 注意力,难以实际应用。

注意力模块是 Transformers 的关键组件。全局注意力机制具良好的模型表达能力,但过高的计算成本限制了其在各种场景中的应用。本文提出了一种新的注意力范式,代理注意力 (Agent Attention),同时具有高效性和很强的模型表达能力。

图片

  • 论文链接:https://arxiv.org/abs/2312.08874

  • 代码链接:https://github.com/LeapLabTHU/Agent-Attention

具体来说,代理注意力在传统的注意力三元组 (Q,K,V) 中引入了一组额外的代理向量 A,定义了一种新的四元注意力机制 (Q, A, K, V)。其中,代理向量 A 首先作为查询向量 Q 的代理,从 K 和 V 中聚合信息,然后将信息广播回 Q。由于代理向量的数量可以设计得比查询向量的数量小得多,代理注意力能够以很低的计算成本实现全局信息的建模。

此外,本文证明代理注意力等价于一种线性注意力范式,实现了高性能 Softmax 注意力和高效线性注意力的自然融合。该方法在 ImageNet 上使 DeiT、PVT、Swin Transformer、CSwin Transformer 等模型架构取得了显著的性能提升,能够将模型在 CPU 端加速约 2.0 倍、在 GPU 端加速约 1.6 倍。应用于 Stable Diffusion 时,代理注意力能够将模型生成速度提升约 1.8 倍,并显著提高图像生成质量,且无需任何额外训练

方法

在本文中,我们创新性地向注意力三元组 (Q,K,V) 引入了一组额外的代理向量 A,定义了一种四元的代理注意力范式 (Q, A, K, V)。如图 1 (c) 所示,在代理注意力中,我们不会直接计算 Q 和 K 之间两两的相似度,而是使用少量的代理向量 A 来收集 K 和 V 中的信息,进而呈递给 Q,以很低的计算成本实现全局信息的建模。从整体结构上看,代理注意力由两个常规 Softmax 注意力操作组成,并且等效为一种广义的线性注意力,实现了高性能 Softmax 注意力和高效线性注意力的自然融合,因而同时具有二者的优点,即:计算复杂度低且模型表达能力强。

图片

图 1:Softmax 注意力、线性注意力与代理注意力机制对比

1. 代理注意力

图片

图 2:代理注意力示意图

上图即为代理注意力的示意图,下面给出具体数学形式。为了书写方便,我们将 Softmax 注意力和线性注意力分别缩写为:

图片

其中,Q,K,V 分别为 Query、Key、Value 矩阵,表示 Softmax 函数,为线性注意力中的映射函数。则代理注意力可以表示为:

图片

另一个等效的表示为:

图片

其中 A 为新定义的代理矩阵。

如公式 (3) 和示意图第一行所示,代理注意力由两个 Softmax 注意力操作组成,分别为代理特征聚合和广播。具体来说,我们首先将 A 作为 Query,在 A、K 和 V 之间进行注意力计算,从所有特征中汇聚信息,得到代理特征图片。随后,我们将 A 作为 Key,图片作为 Value,和 Q 进行第二次注意力计算,将代理特征中的全局信息广播回每一个特征,并获得最终输出 O。这样一来,我们避免了 Q 和 K 之间相似度的计算,而是通过代理向量实现了每个 query-key 之间的信息交换。可以看到,在这一计算范式中,少量的代理特征 A 充当了 Q 的 “代理人”—— 从 K 和 V 中收集信息并呈递给 Q,因而本文将这种注意力机制命名为代理注意力。实际应用中,我们将 A 的数量设置为一个小的参数 n,从而以线性计算复杂度图片实现了全局建模。

值得指出的是,如公式 (4) 和示意图第二行所示,代理注意力实际上将高性能的 Softmax 注意力和高效的线性注意力融合在了一起,通过使用两次 Softmax 注意力操作实现了广义线性注意力范式,其中等效映射函数定义为图片

实际应用中,代理向量可以通过不同的方法获得,例如设置为一组可学习参数,或通过池化等方式从输入特征中得到。我们也可以使用更加优越的方法来获得代理向量,例如 Deformable Points、Token Merging 等。本文中,我们采用简单的池化来获取代理向量。

2. 代理注意力模块

为了更好地发挥代理注意力的潜力,本文进一步做出了两方面的改进。一方面,我们定义了 Agent Bias 以促进不同的代理向量聚焦于图片中不同的位置,从而更好地利用位置信息。另一方面,作为一种广义的线性注意力,代理注意力也面临特征多样性不足的问题,因此我们采用一个轻量化的 DWC 作为多样性恢复模块。

在以上设计的基础上,本文提出了一种新的代理注意力模块,其结构如下图:

图片

图 3:代理注意力模块

结合了 Softmax 注意力和线性注意力的优势,代理注意力模块具有以下特点:

(1) 计算复杂度低且模型表达能力强。之前的研究通常将 Softmax 注意力和线性注意力视为两种不同的注意力范式,试图解决各自的问题和局限。代理注意力优雅地融合了这两种注意力形式,从而自然地继承了它们的优点,同时享受低计算复杂性和高模型表达能力。

(2) 能够采用更大的感受野得益于线性计算复杂度,代理注意力可以自然地采用更大的感受野,而不会增加模型计算量。例如,可以将 Swin Transformer 的 window size 由 7^2 扩大为 56^2,即直接采用全局自注意力,而完全不引入额外计算量。

实验结果

1. 分类任务

代理注意力是一个通用的注意力模块,本文基于 DeiT、PVT、Swin Transformer、CSwin Transformer 等模型架构进行了实验。如下图所示,在 ImageNet 分类任务中,基于代理注意力构建的模型能够取得显著的性能提升。例如,Agent-Swin-S 可以取得超越 Swin-B 的性能,而其参数量和计算量不到后者的 60%。

图片

图 4:ImageNet 图片分类结果

在实际推理速度方面,代理注意力也具有显著的优势。如下图所示,在 CPU/GPU 端,代理注意力模型能够取得 2.0 倍 / 1.6 倍左右的加速,同时取得更好的性能。

图片

图 5:实际测速结果

2. 检测和分割

在检测和分割任务中,相较于基础模型,Agent Transformer 也能够取得十分显著的性能提升,这在一定程度上得益于代理注意力的全局感受野

图片

图 6:COCO 物体检测与分割结果

图片

图 7:ADE20K 语义分割结果

3.Agent Stable Diffusion

特别值得指出的是,代理注意力可以直接应用于 Stable Diffusion 模型,无需训练,即可加速生成并显著提升图片生成质量。如下图所示,将代理注意力应用于 Stable Diffusion 模型,能够将图片生成速度提升约 1.8 倍,同时提升图片的生成质量。

图片

图 8:Stable Diffusion, ToMeSD 和 AgentSD 的定量化结果

下图中给出了生成图片的样例。可以看到,代理注意力能够显著降低 Stable Diffusion 模型生成图片的歧义和错误,同时提升生成速度和生成质量。

图片

图 9:生成图片的样例

4. 高分辨率与大感受野

本文还探究了分辨率和感受野对模型性能的影响。如下图所示,我们基于 Agent-Swin-T 将窗口大小由 7^2 逐步扩大到 56^2。可以看到,随着感受野的扩大,模型性能稳步提升。这说明尽管 Swin 的窗口划分是有效的,但它依然不可避免地损害了模型的全局建模能力。

图片

图 10:感受野大小的影响

下图中,我们将图片分辨率由 256^2 逐步扩大到 384^2。可以看到,在高分辨率的场景下,代理注意力模型持续展现出显著的优势。

图片

图 11:高分辨率场景

总结

本文的贡献主要在三个方面:

(1) 提出了一种新颖、自然、有效且高效的注意力范式 —— 代理注意力,它自然地融合了高性能的 Softmax 注意力和高效的线性注意力,以线性计算量实现有效的全局信息建模。

(2) 在分类、检测、分割等诸多任务中充分验证了代理注意力的优越性,特别是在高分辨率、长序列的场景下,这或为开发大尺度、细粒度、面向实际应用场景的视觉、语言大模型提供了新的方法。

(3) 创新性地以一种无需训练的方式将代理注意力应用于 Stable Diffusion 模型,显著提升生成速度并提高图片质量,为扩散模型的加速和优化提供了有效的新研究思路

LEAP Lab
LEAP Lab

LEarning And Perception Laboratory (LEAP Lab) 是清华大学黄高老师带队的研究团队,致力于机器学习、计算机视觉和AI应用领域的研究。我们特别关注那些稳健、高效、可扩展和具有泛化能力的基础AI模型。

http://leaplab.net/
工程Agent Attention
相关数据
清华大学机构

清华大学(Tsinghua University),简称“清华”,由中华人民共和国教育部直属,中央直管副部级建制,位列“211工程”、“985工程”、“世界一流大学和一流学科”,入选“基础学科拔尖学生培养试验计划”、“高等学校创新能力提升计划”、“高等学校学科创新引智计划”,为九校联盟、中国大学校长联谊会、东亚研究型大学协会、亚洲大学联盟、环太平洋大学联盟、清华—剑桥—MIT低碳大学联盟成员,被誉为“红色工程师的摇篮”。 清华大学的前身清华学堂始建于1911年,因水木清华而得名,是清政府设立的留美预备学校,其建校的资金源于1908年美国退还的部分庚子赔款。1912年更名为清华学校。1928年更名为国立清华大学。1937年抗日战争全面爆发后南迁长沙,与北京大学、南开大学组建国立长沙临时大学,1938年迁至昆明改名为国立西南联合大学。1946年迁回清华园。1949年中华人民共和国成立,清华大学进入了新的发展阶段。1952年全国高等学校院系调整后成为多科性工业大学。1978年以来逐步恢复和发展为综合性的研究型大学。

http://www.tsinghua.edu.cn/
相关技术
池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

自注意力技术

自注意力(Self-attention),有时也称为内部注意力,它是一种涉及单序列不同位置的注意力机制,并能计算序列的表征。自注意力在多种任务中都有非常成功的应用,例如阅读理解、摘要概括、文字蕴含和语句表征等。自注意力这种在序列内部执行 Attention 的方法可以视为搜索序列内部的隐藏关系,这种内部关系对于翻译以及序列任务的性能非常重要。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

全局注意力机制技术

在全局注意力中,上下文向量 c_t 为整个原语序列隐藏状态 h_i bar 的加权和,即编码器所有时间步上隐藏状态的加权和。其中每一个隐藏状态向量的维度为编码器隐藏层的神经元数量,c_t 的维度与编码器的隐藏状态相等。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

图像生成技术

图像生成(合成)是从现有数据集生成新图像的任务。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

语义分割技术

语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类。图像语义分割是AI领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。

感受野技术

一个感觉神经元的感受野是指这个位置里适当的刺激能够引起该神经元反应的区域。感受野一词主要是指听觉系统、本体感觉系统和视觉系统中神经元的一些性质。

量化技术

深度学习中的量化是指,用低位宽数字的神经网络近似使用了浮点数的神经网络的过程。

推荐文章
暂无评论
暂无评论~