为什么要除以根号dk?

在Self-Attention机制中,除以根号dk(即Key向量的维度)是为了防止点积结果过大,从而导致梯度消失或爆炸的问题。具体来说,有以下几个原因:

  1. 缩放点积结果

    • 当Key和Query向量的维度较大时,它们的点积结果可能会非常大。这会导致Softmax函数的输入值变得非常大,从而使梯度变得不稳定,容易出现梯度消失或梯度爆炸的问题。
    • 通过除以dk,可以将点积结果缩放到一个合理的范围内,使得Softmax函数的输出更加稳定。
  2. 保持数值稳定性

    • Softmax函数的输入值如果过大,会导致数值计算上的不稳定。例如,当输入值非常大时,指数函数的结果可能会超出浮点数的表示范围,导致溢出。
    • 通过缩放点积结果,可以避免这种情况,确保数值计算的稳定性。
  3. 理论依据

    • 在原始的Transformer论文《Attention is All You Need》中,作者提到这种缩放方法是基于理论分析得出的。具体来说,假设Query和Key向量是独立同分布的随机变量,那么它们的点积结果的方差会随着维度的增加而线性增加。为了保持点积结果的方差不变,需要除以dk。

公式解释

Scaled Attention Scores=QKTdk

  • Q 是Query矩阵
  • K 是Key矩阵
  • dk 是Key向量的维度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值