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没发挥定位作用,可以说没什么