0

我试图弄清楚如何通过缩放点积注意力模型进行反向传播。缩放点生成注意力以 Q(Queries)、K(Keys)、V(Values) 作为输入,并执行以下操作:

注意(Q,K,V) = softmax((Q.transpose(K))/√dk)V

这里 √dk 是比例因子,是一个常数。

这里 Q,K 和 V 是张量。我现在假设 Q=K=V。所以我将公式 (softmax((Q.transpose(Q)))Q) 与 Q 区分开来。我认为答案是:

softmax((Q.transpose(Q))) + Q.derivativeOfSoftmax((Q.transpose(Q))).(2*transpose(Q))

因为我认为 Q.transpose(Q) wrt Q 的导数是 2*Q.transpose(Q)。

考虑到张量演算的规则,这是正确的方法吗?如果不是请告诉我如何进行。

可以参考给定论文中缩放点积注意力的概念: https ://arxiv.org/pdf/1706.03762.pdf

4

1 回答 1

0

我不确定张量演算是正确的术语。

选择向量的特定索引,例如索引 j。然后对该变量进行微分。对索引 1、2、3 等执行此操作,您将看到一个模式。让我举一个乘法的例子。矩阵乘法有两种类型,矩阵乘法和哈达玛乘积。hadamard 乘积是一种直观的方法,您可以将两个相同维度的矩阵逐元素相乘。以类似的方式,您应该“按元素”区分您的 softmax 函数。

于 2019-04-20T05:40:18.443 回答