两种Deformable Attention的区别

先分别写一下流程

Deformable DETR(2020)的Deformable Attention


解释:

Deformable Attention如下图所示K=3, M=3K是指每个zq会和K个offset算attention,M是指M个head, z q z_q zq有N=HW个:

参考点 :reference points,各个特征层上的点,(0.5,0.5)x 4,(0.5,1.5)x 4,...(H-0.5,W-0.5)x 4 ,再除以H或W进行归一化;
偏移量 :offsets,网络自己学习的偏移量;
采样点 :reference points + offsets,每个特征点都会学习得到4个采样点,然后只计算这个特征点和这四个采样点的相似度即可,不需要学习和所有特征点的相似度;

reference point确定方法为用了torch.meshgrid方法,调用函数(get_reference_points)。 对于每一层feature map初始化每个参考点中心横纵坐标,加减0.5是确保每个初始点是在每个pixel的中心 ,例如0.5,1.5,2.5, ...

在Decoder中,参考点的获取方法为object queries通过一个nn.Linear得到每个对应的reference point。

初始的采样点位置相当于会分布在参考点3x3、5x5、7x7、9x9方形邻域

  • Z Z Z :输入特征 ,HW,C
  • z q z_q zq :query ,N个1,C
  • p q p_q pq :参考点Reference Point,就是zq在特征图x上的坐标 ,是2d向量( P q x , P q y Pqx,Pqy Pqx,Pqy)(0和1之间)
  • ▲ P m q k ▲Pmqk ▲Pmqk :offsets,由每个 query z q z_q zq经过一个Linear得到,每个head会生成K个offset,一共M个head,即,在每个head中采样K个位置
  • W ′ m x W'm_x W′mx :Transformation Matrix,就是过一个Linear
  • (query z q z_q zq送进通道数为3MK的Linear,前2MK个通道编码 ▲ P m q k ▲Pmqk ▲Pmqk,剩下的MK过softmax得到对应的 A m q k Amqk Amqk)
  • Values : p q p_q pq+ ▲ P m q k ▲Pmqk ▲Pmqk获取在特征图上的值,通常是小数,因此从特征图上索引特征时采用双线性插值的方式,之后乘上 W ′ m x W'm_x W′mx
  • A m q k Amqk Amqk :Attention Weights,也一样,直接由query
  • z q z_q zq经过linear和softmax得到,也是每个head生成K个Attention weight,和(因此,在DeformableDETR的Deformable Attention里,没有真的key query乘积计算,更像DCN)

DAT(2022)的的Deformable Attention

文章可视化画的是针对最重要的key,我现在见过对attention map,query做可视化的,想怎么解释就怎么解释

流程:

  1. 特征图 x x x H,W,C
  2. 根据feature map生成参考点reference point,这里不是网格中心而是网格的交接点(整){(0, 0), . . . , (HG − 1, WG − 1)}
  3. 将reference point norm到(-1,1)之间,坐标(-1,-1)代表左上角,坐标(1,1)代表右下角
  4. Δ P ΔP ΔP由以query为输入的offset Network得到,并将得到的 Δ P ΔP ΔP与reference points的坐标相加,从而得到偏移后位置信息。 Δ P ΔP ΔP幅度受超参数s控制防止过大。
  5. 对变形后的reference points使用双线性插值方法进行采样从而得到x:sampled features
  6. 过两个线性层分别得到v和k
  7. bias offset:我们计算归一化范围−1,+1中的相对位移,然后通过连续相对位移在参数化偏置表ˆB∈R(2H−1)×(2W−1)中插值φ(ˆB;R),以覆盖所有可能的偏移值。
    8.多头输出:

总的来说在小地方进行了修改,offset network这么设计只说了要和transformer保持相同大小的感受野,但至少证明了deformable attention 是通用的。

为什么DAT要在stage3 stage4才使用deformable attention?

因为stage1 和 stage2 基本上是在提取局部信息,deformable attention 效果不如swin attention。而且前两个stage中,key和value对太多了,会大大增大因为点积和双线性插值带来的计算复杂度。

相关推荐
大模型最新论文速读1 天前
SkillOpt:把 skill 文档当成模型权重来训练
论文阅读·人工智能·深度学习·机器学习·自然语言处理
Cloud_Shy6181 天前
解读《Effective Python 3rd Edition》:从练气到老魔(第一章 Item 4 - 6)
android·数据库·论文阅读·python
Rocky Ding*2 天前
一文读懂HiDream-I1稀疏 DiT 图像生成基础模型
论文阅读·人工智能·深度学习·机器学习·ai作画·aigc·ai-native
锅挤2 天前
来一篇儿:《anish into Thin Air: Cross-prompt Universal Adversarial Attacks for SAM2》
论文阅读
大模型最新论文速读2 天前
05-29 · LLM 最新论文速览
论文阅读·人工智能·深度学习·机器学习·自然语言处理
森诺Alyson3 天前
前沿技术借鉴研讨-2026.5.28(眼动数据预测抑郁&自杀倾向)
论文阅读·人工智能·深度学习·分类·论文笔记
凌晨一点的秃头猪4 天前
GR2(Generative Reasoning Reranker,生成式推理重排器)论文阅读
论文阅读
Biomamba生信基地4 天前
《Advanced Science》前沿工具发布:STAID,空间反卷积自优化深度学习框架
论文阅读·深度学习·生物信息学·模型训练
仙女修炼史4 天前
CNN更看重Texture还是shape:imagenet-trained cnns are biased
论文阅读·人工智能·cnn
大模型最新论文速读6 天前
GRPO 丢失的组内排序信息,LamPO 补回来了
论文阅读·人工智能·深度学习·机器学习·自然语言处理