面试常问系列(一)-神经网络参数初始化-之-softmax

背景

本文内容还是对之前关于面试题transformer的一个延伸,详细讲解一下softmax
面试常问系列(二)-神经网络参数初始化之自注意力机制-CSDN博客

Softmax函数的梯度特性与输入值的幅度密切相关,这是Transformer中自注意力机制需要缩放点积结果的关键原因。以下从数学角度展开分析:

1. Softmax 函数回顾

给定输入向量 z = z₁, z₂, ..., zₖ,Softmax 输出概率为:

其中 S 是归一化因子。

2. 梯度计算目标

计算 Softmax 对输入 z 的梯度,即 对所有 i,j∈{1,...,k}。

3. 梯度推导

根据链式法则,对 σi​ 关于 zj​ 求导:

具体推到过程就不展示了,感兴趣的有需要的可以评论下。因为本次重点不是通用的softmax分析,而是偏实战分析。

4. 与交叉熵损失结合的梯度

在实际应用中,Softmax 通常与交叉熵损失 结合使用。此时梯度计算更简单:

其中 是真实标签的 one-hot 编码。

5. 推导

  1. 交叉熵损失对 的梯度:
  1. 通过链式法则:
  1. 代入在上面求解出的
  • 时,
  • 时,

4.合并上述结果

6. 梯度消失问题

  • 极端输入值 :若远大于其他,则,其他。此时:
    • 的梯度:(若yk=1,梯度接近0)。
    • 对其他zi的梯度:,梯度趋近于0。
  • 后果:梯度消失导致参数更新困难,模型难以训练。

7. 缩放的作用

在Transformer中,点积结果除以dk​​后:

  • 输入值范围受限 :缩放后的方差为1,避免极端值。
  • 梯度稳定性提升分布更均匀,不会趋近于0,梯度保持有效。

5. 直观示例

  • 未缩放:若dk=512,点积标准差结果可能达±22,Softmax输出接近0或1,梯度消失。
  • 缩放后:点积结果范围约±5,σ(zi)分布平缓,梯度稳定。
  • 这个示例在最开始的跳转链接有详细解释,可以参考。

总结

Softmax的梯度对输入值敏感,过大输入会导致梯度消失。Transformer通过除以dk​​控制点积方差,确保Softmax输入值合理,从而保持梯度稳定,提升训练效率。这一设计是深度学习中处理高维数据时的重要技巧。

相关推荐
叩码以求索10 分钟前
浅谈:前序遍历反转法求解N叉树的后序遍历
算法
Web3&Basketball12 分钟前
vLLM部署开源大模型实战:显存、命令与成本核算
人工智能·深度学习·大模型·ai技术·vllm
lancyu20 分钟前
关于多轮对话机器人的上下文Token优化和解决方案
人工智能·python·深度学习·机器学习·chatgpt·机器人·prompt
xier_ran20 分钟前
【infra之路】GPU 执行与存储层次全景关系图
人工智能·深度学习·cuda
单词记忆方法研究35 分钟前
大学英语单词:我踩过的坑,和你该走的路
机器学习·小程序·学习方法
官乐1 小时前
AI面试指南(多agent开发流程)
人工智能·面试·职场和发展
老郑聊AI业财智造1 小时前
Transformer 技术架构与源码分析
人工智能·python·深度学习·语言模型·架构·transformer·软件工程
北风toto1 小时前
中缀、前缀、后缀表达式
算法·软件设计师
听取WA声一片(无恶意)1 小时前
CSP-J/CSP-S 深度优先搜索(DFS)完全讲义
c++·算法·深度优先
码匠许师傅1 小时前
【C++ 面试真题】27. 聊聊 C++ 的内存泄漏与内存布局
java·c++·面试