1. Self-attention的原理 Self-attention是一种用于计算序列中各个元素之间关联度的机制。在Transformer模型中,self-attention层用于对输入序列中各个位置的元素进行加权求和,以捕捉元素之间的依赖关系。其计算过程可以简单描述为:对于输入序列中的每个位置i,通过计算输入序列中其他位置j与位置i的关联度得到一个权重值
Self-Attention包括三个步骤:相似度计算,softmax和加权平均 step1: 相似度计算可以看作大小为(n,d)和(d,n)的两个矩阵相乘:( , )∗( , )= ( ^2⋅ ) ,得到一个 (n,n) 的矩阵. step2: softmax就是直接计算了,时间复杂度为 ( ^2) step3: 加权平均可以看作大小为 (n,n) 和(n,d) 的两个...
总体的计算复杂度就是 O(Nq×C2+Nk×C2+NqNkC) . 在DETR 中,Transformer encoder 的 query 和 key 元素就是特征图上的像素点,假设输入特征图的宽度和高度分别是 W 和H。 Encoder 中的 self-attention 的计算复杂度就是 O(H2W2C) . Decoder 包括了 self attention 和 cross attention,输入包括来自于 encod...