专栏名称: 极市平台
极市平台是由深圳极视角推出的专业的视觉算法开发与分发平台,为视觉开发者提供多领域实景训练数据库等开发工具和规模化销售渠道。本公众号将会分享视觉相关的技术资讯,行业动态,在线分享信息,线下活动等。 网站: http://cvmart.net/
目录
相关文章推荐
南方人物周刊  ·  毛姆、鲁迅、村上春树的挚爱,读到灵魂发颤 ·  3 天前  
环球网  ·  场上当时发生了什么?林孝埈回应 ·  3 天前  
环球网  ·  场上当时发生了什么?林孝埈回应 ·  3 天前  
每日人物  ·  今后,麻六记的酸辣粉不好卖了 ·  3 天前  
每日人物  ·  《哪吒2》,救活县城倒闭电影院? ·  3 天前  
51好读  ›  专栏  ›  极市平台

ECCV'24|清华黄高团队提出Agent Attention:无缝集成Softmax和Linear的注意力机制

极市平台  · 公众号  ·  · 2024-07-09 22:00

正文

↑ 点击 蓝字 关注极市平台
作者丨科技猛兽
编辑丨极市平台

极市导读

本文介绍了一种新型的注意力机制Agent Attention,它结合了Softmax Attention和Linear Attention的优点。Agent Attention通过引入Agent token来平衡Query token与Key-value对之间的关系,提高了Transformer模型的效率和性能。 >> 加入极市CV技术交流群,走在计算机视觉的最前沿

本文目录

1 Agent Attention:集成 Softmax 和 Linear 注意力机制
(来自清华,黄高老师团队)
1 Agent Attention 论文解读
1.1 Agent Attention 集成 Softmax Attention 和 Linear Attention 的优势
1.2 Softmax Attention 和 Linear Attention 计算范式
1.3 Agent Transformer
1.4 感知任务实验结果
1.5 生成任务实验结果
1.6 大感受野和高分辨率

太长不看版

注意力机制 (Attention module) 是 Transformers 中的关键组成部分。虽然全局的注意力机制具有很高的表征能力,但其计算成本较大,限制了其在各种场景下的适用性。本文提出一种新的注意力范式 Agent Attention, 目的在计算效率和表征能力之间取得良好的平衡。具体而言, Agent Attention 表示为四元组 , 在传统的注意力模块中引入了一组额外的 Agent token 。Agent token 首先充当 Query token 的代理来聚合来自 的信息, 然后将信息广播回 。鉴于 Agent token 的数量可以设计为远小于 Query token 的数量, 代理注意力明显比 Softmax 注意力更有效, 同时保留了全局上下文建模能力。

有趣的是,本文展示了 Agent attention 等效于 Linear attention 的广义形式。因此,代理注意力无缝集成了强大的 Softmax attention 和高效的 Linear attention。

作者通过大量实验表明,Agent attention 在各种视觉任务中证明了有效性,包括图像分类、目标检测、语义分割和图像生成。而且,代理注意力在高分辨率场景中表现出显着的性能,这得益于其线性注意力性质。例如,当应用于 Stable Diffusion 时,Agent attention 会加速生成并显着提高图像生成质量,且无需任何额外的训练。

图1:Softmax Attention,Linear Attention 以及 Agent Attention

1 Agent Attention:集成 Softmax 和 Linear 注意力机制

论文名称:Agent Attention: On the Integration of Softmax and Linear Attention (Arxiv 2023.12)

论文地址:

https://arxiv.org/pdf/2312.08874

代码链接:

https://github.com/LeapLabTHU/Agent-Attention

1.1 Agent Attention 集成 Softmax Attention 和 Linear Attention 的优势

将 Transformer 和 Self attention 引入视觉领域会带来巨大的挑战。现代 Transformer 模型通常采用 Softmax attention,计算每个 Query 和 Key 之间的相似度,导致计算复杂度随 token 数量呈二次方关系。为了解决这个问题,现有的工作通过设计高效的注意力机制来降低计算复杂度。比如,Swin Transformer[1]减少了感受野,将 Self-Attention 的计算限制在局部窗口上。PVT[2]采用稀疏 Attention,通过减少 Key 和 Value 的数量来减轻计算负担。尽管这些方法很有效,但它们不可避免地损害了对远程关系进行建模的能力,并且仍然不如全局 Self-Attention。

本文将一组额外的 token 引入注意力三元组 , 产生一个四元组注意力范式 , 称为Agent Attention。如图1所示, Agent Attention 由两个传统的 Softmax Attention 操作组成。第一个 Softmax attention 应用于三元组 , 其中代理 token 作为 Query 来聚合来自 的信息, 注意矩阵在 之间计算。第二个 Softmax attention 在三元组 上执行, 其中 是上一步的结果, 形成 Agent Attention 的最终输出。新引入的 token 可以被视为 Query token 的 "代理", Query token 不再需要与原始 直接通信。因此将token 称为代理 token。

由于全局 Self-Attention 的内在冗余,Agent token 的数量可以设计为远小于 Query token 的数量。作者发现简单地汇集原始 Query token 来当做 Agent token 的效果就非常好。这个做法可以将 Softmax Attention 的二次复杂度降低到线性复杂度,同时保留了全局上下文建模能力。有趣的是,如图 1 所示,Agent Attention 可以看作是广义的线性注意力。换句话说,Agent Attention 集成了 Softmax 和线性注意力,并享受二者的优势。

1.2 Softmax Attention 和 Linear Attention 计算范式

假设输入为 , 为 个 tokens。Self-Attention 中每个 head 可以表述为:

式中, 为投影矩阵, 为模块的维度, 为 head 的维度, 为相似度函数。

当使用 时, 1式就变成 Softmax Attention, 其在现代视觉 Transformer 中非常成功。但是, Softmax Attention 强制计算所有 Query 和 Key 之间的相似度,会带来 的计算复杂度。因此, 使用具有全局感受野的 Softmax Attention 会导致很大的计算复杂度。

Linear Attention 把映射函数分别应用于 , 即 。这样就可以根据矩阵乘法的结合律将计算顺序从 改为 。这样可以使计算复杂度降低到

然而, 设计有效的映射函数 并不容易。简单的 ReLU 导致性能显著下降, 而更复杂的设计 或矩阵分解 会引入额外的计算开销。一般来说, 当前的线性注意力方法仍然不如 Softmax Attention, 限制了它们的实际应用。

1.3 Agent Transformer

Softmax 和 Linear 注意力要么计算复杂度过高,要么模型表达能力不足。以前的研究通常将这两种注意力范式视为不同的方法,并尝试降低 Softmax Attention 的计算成本或提高 Linear Attention 的性能。Agent Attention 集成了 Softmax Attention 和 Linear Attention,同时享受线性复杂度和高表现力的好处。

首先将 Softmax 和 Linear Attention 缩写为:

其中, 表示 Query、Key 和 Value 矩阵, 表示 Softmax 函数。那么 Agent Attention 可以写成:

上式等价于:

式中, 为 Agent tokens。

Agent Attention 由两个 Softmax Attention 操作组成, 即 Agent 聚合和 Agent 广播。具体而言, Agent token 首先被视为 Query 并在 之间执行注意力计算。然后使用 作为第二个 Attention 计算中的 Key 和 Value, 使用 Query 矩阵 , 将全局信息从 Agent 特征广播到每个 Query 标记并获得最终输出 。通过这种方式, 避免了 之间的成对相似度的计算, 同时通过 Agent token 保留每个 Query Key 对之间的信息交换。

Agent token 本质上用作 的代理, 聚合来自 的全局信息, 然后将其广播回 。实际上, 将 Agent token 的数量 设置为一个较小的超参数值, 在保持全局上下文建模能力的同时,实现了 的计算复杂度, 相对于输入特征的数量 呈线性。

有趣的是, Agent Attention 实际上集成了 Softmax Attention和高效的 Linear Attention, 通过两个 Softmax 操作建立了广义 Linear Attention 范式, 等价映射函数为

在实践中,Agent token 可以通过不同的方法获得,比如简单地设置为一组可学习的参数或通过池化从输入特征中提取。本文作者采用简单的池化策略来获得 Agent token,已经表现得非常好。

Agent Attention 继承了 Softmax 和 Linear Attention 的优势。实际使用中作者进一步做了两个改进来最大化代理注意力的潜力,即 Agent Bias:

式中,







请到「今天看啥」查看全文