论文地址: https://arxiv.org/pdf/2201.12329
- 文章通过前人的经验得出,导致 DETR 训练速度慢的原因很大可能是因为 decoder 中 cross attention 这个模块,由上面的对比可以看出其与 self attention 的区别主要就在于query的不同。文章猜想两个原因: query比较难学 和 query 的位置编码方式不对。
文章分别进行了实验:
- 使用训练好的 query 来进行实验,发现并没有加快收敛;
- 对 decoder 的 位置编码改为正弦位置编码,并让 query 中的一个 embedding 关注一个位置发现收敛变快。最终得到下述的网络框架,通过编码的 anchor 会和 query、key 结合,当然这种情况仅限与 DETR 相比的改动,在 Deformable DETR 里面仅仅对位置编码进行重新调整了一下。
Focus:
- 它告诉了我们 decoder 里面的 query 到底在学什么?就是位置的先验,最后出来的也是有多少 embedding 就有多少的框。这是文章最重要的意义,也指引后面的工作可以朝着这个方向去努力。