相关博客:手把手教你用Pytorch代码实现Transformer模型(超详细的代码解读)

我们知道attention其实有很多种形式,而transformer论文中的attention是Scaled Dot-Porduct Attention,如下图所示:

在这里插入图片描述
在这里插入图片描述

那么问题来了,这里的attention为什么要做除以根号d_k呢?

一句话概括就是:如果不对softmax的输入做缩放,那么万一输入的数量级很大,softmax的梯度就会趋向于0,导致梯度消失。
在这里插入图片描述

在这里插入图片描述

证明

Attention is All You Need并没有对下面的话进行证明:
在这里插入图片描述

证明:
在这里插入图片描述

你想现在scaled后,q*k的均值为0,方差为1,那自然数值不会很大了。

(原来的方差是d_k,d_k如果很大,比如256,那softmax就容易出现梯度消失)

相关资料

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐