前段时间在看transformer的时候,看到他的self-attention机制的公式里需要除以维度的算术平方根,想了一会没有想明白。
回去看原论文。作者认为,当d较大时,点积的幅度也就变大,容易进入softmax函数的梯度消失区域。
什么叫点积的幅度变大?这里作者指的应该是方差会变大。点积之后,数据的方差会改变,不等同于原分布。这就需要我们进行一个操作使方差等同于原分布。假设原分布是标准正态分布,那为什么需要除以根号d来归一化到标准正态分布呢?我尝试自己推导一下公式:

波浪线那块我是直接将各个qi*ki之间看成是相互独立的,但是,并没有严格的证明过程。(要是有懂的大佬可以在评论区教我一下)
综上,除以维度的算术平方根会使得分布重新归一化到数据原分布,防止出现梯度消失。
版权声明:本文为weixin_45610907原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。