“Vanilla Attention” 是一种最基础的注意力机制形式,用于理解和实现自注意力机制。它是最早在Transformer模型中引入的自注意力版本,具体计算步骤包括以下几个方面:
1. Vanilla Attention的主要计算流程
在Vanilla Attention中,注意力的计算是基于 查询(Query)、键(Key) 和 值(Value) 向量之间的关系进行的,具体步骤如下:
1.1 查询、键和值向量生成
给定一个输入序列(例如,句子中的词或图像中的像素),我们首先将输入映射到三个向量空间,分别称为查询向量 Q、键向量 K和值向量 V。这通常是通过将输入与三个不同的可学习矩阵相乘得到的。
1.2 计算注意力权重(相似度)
对于每个查询位置 qiq_iqi,我们计算它与所有键向量 kjk_jkj 的相似度。通常使用点积来表示这种相似性:
为了稳定训练并避免数值过大,点积通常会除以一个缩放因子 (即键向量的维度的平方根)。因此,相似度的计算公式为:
1.3 Softmax归一化
对每个查询位置的相似度分数进行softmax归一化,使得它们的和为1。softmax函数将分数转化为概率分布,使得每个查询位置对应的所有键的位置权重加起来为1。公式如下:
1.4 加权求和值
得到的attention weights会用于加权每个位置的值向量。对于每个查询位置 qi,它的最终输出是所有值向量的加权求和:
最终结果
Vanilla Attention的输出结果是一个新的向量序列,其中每个位置的表示都包含了其他位置的相关信息。这些信息是基于查询与所有键的相似度计算得到的。
2. Vanilla Attention 的优势
- 全局性:每个位置的表示都可以参考序列中所有其他位置的信息,适合建模全局依赖关系。
Linear Deformable Attention 是一种优化后的注意力机制,旨在通过稀疏注意力计算和动态的注意力区域来降低传统注意力机制的计算开销。相比于传统的全局注意力,线性可变形注意力能够灵活关注输入特征的关键区域,特别适合于高分辨率图像和长序列数据。这一机制在 Deformable DETR 和 Deformable Attention Transformer (DAT) 中得到了应用。
1. Linear Deformable Attention的核心思想
在传统的自注意力机制中,每个查询向量会与所有键向量计算相似度,这带来了较高的计算成本。线性可变形注意力则采取了一种“可变形”的方式,来选择特定位置的关键点而非计算全局的注意力,从而大大降低了计算复杂度。其主要特征包括:
- 稀疏注意力:不再计算查询与所有键的相似度,而是选取一部分最相关的关键点来进行注意力计算。
- 动态区域:根据输入特征为每个查询点生成自适应的偏移量,进而确定注意力的关键位置。这种偏移量根据数据生成,使注意力可以灵活地关注不同位置,而不局限于固定的局部区域。
2. Linear Deformable Attention的计算过程
2.1 查询、键和值的生成
与传统的自注意力类似,输入被映射为查询、键和值向量。但在Linear Deformable Attention中,每个查询并不与所有键值交互,而是只与若干选定的偏移位置进行交互。
2.2 生成参考点和偏移量
- 参考点:初始化时,为每个查询点定义一组“参考点”,通常是按均匀网格布局的固定位置。
- 偏移量生成:通过一个轻量的偏移生成网络,动态地为每个查询点生成一组偏移量,使得这些偏移量指向目标区域。偏移量的生成依赖于查询点的特征,从而保证不同的查询可以关注不同的区域。
2.3 采样与加权求和
- 采样:根据生成的偏移量,计算偏移后的位置。这些偏移后的位置将作为采样点,对应到原始特征图上。
- 加权求和:利用稀疏的相似度计算结果对采样位置的值向量加权求和,最终得到注意力结果。相似度通常通过简单的线性投影得到,而非传统的点积运算。
这种方式有效降低了计算成本,因为每个查询只需关注少量的关键位置,而非整幅图像或整个输入序列。
3. Linear Deformable Attention的优点
- 计算效率:相比于全局注意力,线性可变形注意力显著减少了计算开销,使其适用于高分辨率和大规模数据。
- 动态适应性:注意力区域会根据数据内容调整,能够灵活捕捉不同位置的关键信息,从而更好地处理目标检测、实例分割等任务中的不同大小和形状的对象。
- 稀疏化处理:由于关注的是少量关键位置,线性可变形注意力可以减少无关信息的干扰,提升特征的提取质量。
4. Linear Deformable Attention的应用
- Deformable DETR:在Deformable DETR模型中,线性可变形注意力被用于检测头(Detection Head),只关注若干关键点,大幅度加快了训练收敛速度。
- Deformable Attention Transformer (DAT):在DAT模型中,线性可变形注意力用于视觉骨干网络的特征提取,能够更有效地聚焦图像中的关键信息,显著提升在分类、检测和分割任务中的表现。
总结
Linear Deformable Attention是一种改进的注意力机制,通过稀疏化的动态注意力区域显著降低计算成本,特别适合处理视觉任务中大尺度的高分辨率图像。其灵活的区域选择使得模型能有效聚焦重要特征,从而在效率和效果上优于传统的全局注意力机制。
以下部分摘录自《Vision Transformer with Deformable Attention》
首先,我们的可变形注意力作为视觉骨干中的特征提取器,而可变形DETR中的可变形注意力则用线性可变形注意力取代DETR [4]中的Vanilla注意力,起到检测头的作用。其次,推导了单尺度变形DETR中注意力中查询q的第m个头的表达式
其中,K个关键点从输入特征中采样,通过Wv映射,然后通过注意力权重A(m)qk聚合。与我们的可变形注意力,这个注意力权重是通过线性投影从zq学习的,即
其中Watt ∈ RC×MK是预测每个头部上每个键的权重的权重矩阵,然后将softmax函数σ应用于K个键的维度以归一化注意力得分。事实上,注意力权重直接由查询预测,而不是测量查询和键之间的相似性。如果我们将σ函数更改为sigmoid,这将是调制可变形卷积的变体[53],因此这种可变形注意力更类似于卷积而不是注意力。
第三,可变形DETR中的可变形注意力与原文第3.2节中提到的点积注意力由于其巨大的内存消耗而不兼容。因此,使用线性预测注意力来避免计算点积,并且还采用较小数量的密钥K = 4来减少存储器成本。为了通过实验验证我们的主张,我们用[54]中的模块替换了DAT中的可变形注意力模块,以验证朴素适应对于视觉中枢是劣于视觉中枢的。
比较结果如表8所示。比较第一行和最后一行,我们可以看到,在较小的内存预算下,可变形DETR模型的键数设置为16,以减少内存使用,并实现了1.4%的性能下降。通过比较第三行和最后一行,我们可以看到,D-DETR注意力与DAT相同的键数消耗2.6倍的内存和1.3倍的FLOP,而性能仍然低于DAT。
Adding Convolutions to DAT
最近的工作[6,11,35,39]已经证明,在Vision Transformer架构中采用卷积层可以进一步提高模型性能。例如,使用卷积补丁嵌入通常可以将ImageNet分类任务的模型性能提高0.5%至1.0%。
值得注意的是,我们提出的DAT可以很容易地与这些技术联合收割机结合,而我们保持了主文件中的无卷积架构,以执行与基线的公平比较。为了充分利用DAT的能力,我们用跨越和重叠卷积代替原始模型中的补丁嵌入层。比较结果如表9所示,其中基线模型具有类似的修改。结果表明,与原始版本相比,我们的模型与额外的卷积模块相比提高了0.7%,并且始终优于其他基线。
Attention Visualizations
我们还提供了给定特定查询标记的注意力地图的可视化结果,并与图5中的Swin Transformer [26]进行了比较。我们显示具有最高注意力值的关键令牌。可以观察到,我们的模型专注于更相关的部分。
作为展示,我们的模型将大部分注意力分配给前景对象,例如,都是第一排的长颈鹿另一方面,Swin Transformer中的感兴趣区域是局部的,并且不能区分前景和背景,这在最后的冲浪板中被描绘。