transformer中的缩放点积注意力为什么要除以根号d

前段时间在看transformer的时候,看到他的self-attention机制的公式里需要除以维度的算术平方根,想了一会没有想明白。

回去看原论文。作者认为,当d较大时,点积的幅度也就变大,容易进入softmax函数的梯度消失区域。

什么叫点积的幅度变大?这里作者指的应该是方差会变大。点积之后,数据的方差会改变,不等同于原分布。这就需要我们进行一个操作使方差等同于原分布。假设原分布是标准正态分布,那为什么需要除以根号d来归一化到标准正态分布呢?我尝试自己推导一下公式:

transformer中的缩放点积注意力为什么要除以根号d_第1张图片

波浪线那块我是直接将各个qi*ki之间看成是相互独立的,但是,并没有严格的证明过程。(要是有懂的大佬可以在评论区教我一下) 

综上,除以维度的算术平方根会使得分布重新归一化到数据原分布,防止出现梯度消失。

你可能感兴趣的:(transformer,深度学习)