两种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对太多了,会大大增大因为点积和双线性插值带来的计算复杂度。

相关推荐
张较瘦_4 天前
[论文阅读] AI + 教育 | AI赋能“三个课堂”的破局之道——具身认知与技术路径深度解读
论文阅读·人工智能
CV-杨帆5 天前
论文阅读:arxiv 2025 OptimalThinkingBench: Evaluating Over and Underthinking in LLMs
论文阅读
七元权5 天前
论文阅读-EfficientAD
论文阅读·深度学习·实时·异常检测
Matrix_115 天前
论文阅读:Multi-Spectral Image Color Reproduction
论文阅读·人工智能·计算摄影
噜~噜~噜~6 天前
论文笔记:“Mind the Gap Preserving and Compensating for the Modality Gap in“
论文阅读
张较瘦_6 天前
[论文阅读] AI+ | 从 “刚性科层” 到 “智能协同”:一文读懂 AI 应对国家安全风险的核心逻辑
论文阅读·人工智能
张较瘦_6 天前
[论文阅读] AI+ | GenAI重塑智慧图书馆:华东师大实践AI虚拟馆员,解放馆员聚焦高价值任务
论文阅读·人工智能
CoookeCola7 天前
MovieNet (paper) :推动电影理解研究的综合数据集与基准
数据库·论文阅读·人工智能·计算机视觉·视觉检测·database
张较瘦_8 天前
[论文阅读] AI+ | AI如何重塑审计行业?从“手工筛查”到“智能决策”:AI审计的核心逻辑与未来路径
论文阅读·人工智能
苦瓜汤补钙8 天前
论文阅读——Segment Anything(Meta AI)——SAM
论文阅读·图像处理·人工智能·nlp·ai编程