Cross-attention Module理解

浅理解一下
通过读DETR & Conditional DETR中引发对cross-attention的理解。

  • 目标端(decoder)中的query(object query)是需要被表达的,而encoder输出的key和value是用于表达的。

  • key和query content部分(content embedding)的好坏极大影响最终的预测。DETR的实验(从第二个decoder层开始将key和object query的positional embedding移除)发现AP只轻微下降,这证明了模型的表现对key、query的content embedding的依赖性很高,对spatial embedding(positional embedding)的依赖较少。换句话说,content embedding太忙了,不仅要负责外观(识别),还要定位物体的 extremity 区域。

  • Cross-attention中spatial attention map

    我们可以看到,每个 head 的 spatial attention map 都在尝试找物体的一个 extremity 区域,例如: 围绕物体的 bounding box 的某条边。训练了 500 epoch 的 DETR 基本能够找准 extremity 区域的大概位置,然而只训练了 50 epoch 的 DETR 却找不准。这是因为:
    1.spatial embedding query没发挥定位作用,可以说没什么事要做;
    2.query上的content query得需要更多轮训练才能更好匹配spatial keys。

    我们认为,DETR 在计算 cross-attention 时,query 中的 content embedding 要同时和 key 中的 content embedding 以及 key 中的 spatial embedding 做匹配,这就对 content embedding query的质量要求非常高。而训练了 50 epoch 的DETR,因为 content embedding 质量不高,无法准确地缩小搜寻物体的范围,导致收敛缓慢。那得让spatial embedding query干活呀,不能啥活(识别、定位)都给content embedding query干呀。

  • 所以,Conditional DETR提出了一种新型query,同时将cross-attention解耦,spatial query只关注spatial key,content query只关注content key。让他们自己做自己该做的事–各司其职让他们都有事做,这样就减少了content embedding query的依赖。

  • 引发思考:能不能改变positional embedding key来让他表达更好,更容易被positional embedding query Match到呢?

更新No.1
Anchor DETR有异曲同工之妙,通过重新设计object query来让其关注特定的位置,也能加快收敛,这也意味着影响DETR收敛慢的最大原因是 匹配定位 ,也就是找目标。

【Cross-attention in DETR】相关推荐

  1. 【篮球】【横移,握鸡蛋的手指感觉运球】【手指掌根手腕运球】【声东击西】【口诀屈膝贴地】【弯腰手臂降低护球手】【胯下护球脚】【后撤拉扯】

    口诀:先看脚步攻击后摇,重心降低刚柔并济. 转身赶紧护球手攻击后摇,普通运球护球手攻击后 攻击后摇,护球手跟随突破球的手同步运动,打开掏球手. 转身赶紧护球手攻击后摇,普通运球护球手攻击后摇. 利用打 ...

  2. 【超参数寻优】交叉验证(Cross Validation)超参数寻优的python实现:多参数寻优

    [超参数寻优]交叉验证(Cross Validation)超参数寻优的python实现:多参数寻优 一.网格搜索原理 二.网格搜索+交叉验证用于多参数寻优的python实现 1.训练模型及待寻优参数 ...

  3. 【超参数寻优】交叉验证(Cross Validation)超参数寻优的python实现:单一参数寻优

    [超参数寻优]交叉验证(Cross Validation)超参数寻优的python实现:单一参数寻优 一.交叉验证的意义 二.常用的交叉验证方法 1.Hold one method 2.K-flod ...

  4. 【区块链之技术进阶】Attention please!区块链技术的风险!

    不知不觉咱们在[区块链之技术进阶]部分已经分享了七篇文章了,通过之前的七篇文章大家对于区块链技术的理解是不是上升了一个高度呢?这七篇文章,告诉我们区块链是互联网时代的通往第二纪元--信任纪元的革命,这 ...

  5. 【菜鸡读论文】AU-assisted Graph Attention Convolutional Network for Micro-Expression Recognition

    [菜鸡读论文]AU-assisted Graph Attention Convolutional Network for Micro-Expression Recognition 芜湖!又到了每周分享 ...

  6. 【动手深度学习-笔记】注意力机制(四)自注意力、交叉注意力和位置编码

    文章目录 自注意力(Self-Attention) 例子 Self-Attention vs Convolution Self-Attention vs RNN 交叉注意力(Cross Attenti ...

  7. 【每周NLP论文推荐】 介绍语义匹配中的经典文章

    欢迎来到<每周NLP论文推荐>.在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的. 语义匹配也是NLP中比较基础的任务,它的主 ...

  8. 【国际大厂招人啦】PayPal专场招聘直播,立即占位!

    当当当当!万众期待的!福布斯全球企业榜上有名的!PayPal直播招聘!终于登场啦! 进大厂算什么梦想,走向国际才是王道.外资公司的好(壕),只有去了才知道! 各种职位供你选择,北京上海均有机会! 戳这 ...

  9. 【20210109期 AI周报】该重视 Vision Transformer 了

    当你还在研究目标检测中one2one的时候,当你还在死磕模型lantency的时候,当你还在折腾模型NPU部署的时候,当...,我不得不提一下:该重视Vision Transformer了.自2020 ...

  10. 【AI绘图学习笔记】transformer

    台大李宏毅21年机器学习课程 self-attention和transformer 文章目录 Seq2seq 实现原理 Encoder Decoder Autoregressive自回归解码器 Non ...

最新文章

  1. Android之自定义ViewPager实现图片的无线轮播
  2. ListActivity的onListItemClick不响应的解决办法
  3. day36 Pyhton 网络编程03
  4. linux服务器健康检查,Linux 检查硬盘健康状态
  5. iPhone 13系列将首发A15芯片:采用增强版5nm工艺 性能提升20%
  6. c语言,成绩输出直方图,编写一个程序,打印输入中单词长度的直方图
  7. mysql id div 1000000,mysql – 如何使用随机数据生成1000000行?
  8. 速学堂java面试题_速学堂JAVA300集 第四章作业练习题
  9. 华为手机的分类有何区别_华为手机有多少种型号,几个系列?
  10. 设计模式常用的七大原则之③【依赖倒转】原则
  11. 计算机组成原理推荐书籍
  12. oracle 11g duplicate database基于备份复制数据库(一)
  13. LEETCODE838java
  14. python输出图形效果的代码_python打印图形大全(详解)
  15. code回归采访哭 ladies_LADIES’CODE再次提到高恩妃和权梨世的车祸事故 在节目中流泪...
  16. 计算机视觉学习路线—计算机视觉入门必读的20本书
  17. C语言各章学习心得,小节
  18. 浏览器F12控制台简述Network
  19. 用Python制作mini翻译器
  20. matlab机器人轨迹规划仿真程序,基于MATLAB_Robotics工具箱的工业机器人轨迹规划及仿真研究...

热门文章

  1. Redis数据库基本操作
  2. XSP12 USB PD受电端快充协议芯片
  3. Wasm 玩出花?在浏览器中运行虚拟机!
  4. 【JAVA SE】总览概要
  5. 近7个月的专业学习总体计划
  6. 如何集成华为推送的详细步骤流程
  7. 微带线馈电矩形天线分析附matlab代码
  8. Temporal Latent Auto-Encoder: A Method for Probabilistic Multivariate Time Series Forecasting翻译
  9. 强关系若因果,趋势胜过精准度,证伪而非证实的方法论,
  10. 一、python+PIL给图片添加文字水印