我正在尝试通过成比例的点积注意模型进行反向传播。 规模化点生产的注意力以Q(查询),K(键),V(值)作为输入并执行以下操作:
Attention(Q,K,V)= softmax((Q.transpose(K))/√dk)V
这里√dk是比例因子,是一个常数。
这里Q,K和V是张量。我现在假设Q = K = V。 因此,我针对Q区分了公式(softmax((Q.transpose(Q)))Q)。 我认为答案是:
softmax((Q.transpose(Q)))+ Q.derivativeOfSoftmax((Q.transpose(Q)))。(2 * transpose(Q))
因为我认为Q的Q.transpose(Q)的导数是2 * Q.transpose(Q)。
这是考虑张量演算规则的正确方法吗?如果不能的话,请告诉我如何进行。
在给定的论文中,可以参考按比例缩放点乘积的概念: https://arxiv.org/pdf/1706.03762.pdf
答案 0 :(得分:0)
我不确定张量演算是否正确。
选择向量的特定索引,例如索引j。然后针对该变量进行区分。对索引1、2、3等执行此操作,您将看到一个模式。让我举一个乘法的例子。与矩阵相乘有两种类型,矩阵相乘和hadamard积。 hadamard产品是一种直观的方法,您可以将两个相同维度的矩阵逐元素相乘。以类似的方式,您应该“按元素”区分softmax函数。