Transformer模型最核心的算法便是注意力机制,但是我们发现其计算公式存在一个缩放系数,称之为缩放点积,为何需要缩放?这就要从注意力机制的问题说起
梯度消失问题:神经网络的权重与损失的梯度成比例地更新。问题是,在某些情况下,梯度会很小,有效地阻止了权重更新。这反过来又阻止了神经网络的训练。这通常被称为梯度消失问题。
Unnormalization softmax:考虑一个正态分布。分布的 softmax 值在很大程度上取决于它的标准差。由于标准偏差很大,softmax 只存在一个峰值,其他全部为0。这样就无法进行数据的前向传播与更新。
针对以上问题,我们可以随机生成一些数据来可视化一下,一个是没有缩放的数据,均值为0方差为100,一个是经过缩放的数据,均值为0,方差为1
可以看到其数据直方图是一样的,只是一个方差为100,一个为1,可以看到方差为100的softmax后,只有一个地方有数据,值为1.其它地方全部为0,这样的结果传递给前端模型后数据无法进行训练更新,而方差经过缩放后的softmax便打破了以上情况,使得模型可以进行前向传播
这也是为何transformer模型中其attention注意力机制的公式使用了一个缩放系数的原因吧#动图详解Transformer
...全文