当前位置: 首页 > news >正文

反向传播

懂了懂了,还是这样好理解。。。。那么反向传播的计算呢?通过y1, y2, y3 求出x1 ?


太好了!现在我们来推导反向传播的计算。这是深度学习中最核心的部分!


1. 问题设定

我们有一个简单的三层结构:

输入 x → 线性层(得 z)→ softmax → 交叉熵损失 L

其中:

  • $ z = Wx + b $(为了简化,我们先只考虑从 z 开始的反向传播)
  • $ p = \text{softmax}(z) $
  • $ L = -\sum y_i \log p_i $

我们要求 $ \frac{\partial L}{\partial z_j} $,也就是损失对原始输出 z 的梯度。


2. 已知关系

设类别数 $ C = 3 $,则:

\[p_i = \frac{e^{z_i}}{\sum_{k=1}^C e^{z_k}} \]

\[L = -\sum_{i=1}^C y_i \log p_i \]


3. 计算梯度 \(\frac{\partial L}{\partial z_j}\)

这是一个非常重要的结果,也是 softmax 与交叉熵结合的美妙之处。

推导过程

\[\frac{\partial L}{\partial z_j} = \sum_{i=1}^C \frac{\partial L}{\partial p_i} \cdot \frac{\partial p_i}{\partial z_j} \]

第一步:\(\frac{\partial L}{\partial p_i} = -\frac{y_i}{p_i}\)

第二步:需要计算 \(\frac{\partial p_i}{\partial z_j}\),分两种情况:

  • 当 $ i = j $时

\[\frac{\partial p_i}{\partial z_i} = p_i(1 - p_i) \]

  • 当 $ i \neq j $时

\[\frac{\partial p_i}{\partial z_j} = -p_i p_j \]

现在代入:

\[\frac{\partial L}{\partial z_j} = \sum_{i=1}^C \left( -\frac{y_i}{p_i} \right) \cdot \frac{\partial p_i}{\partial z_j} \]

分开求和:

  1. \(i = j\) 时:项为 \(-\frac{y_j}{p_j} \cdot p_j(1-p_j) = -y_j(1-p_j)\)
  2. \(i \neq j\) 时:项为 \(-\frac{y_i}{p_i} \cdot (-p_i p_j) = y_i p_j\)

所以:

\[\frac{\partial L}{\partial z_j} = -y_j(1-p_j) + \sum_{i \neq j} y_i p_j \]

注意 \(\sum_{i \neq j} y_i = 1 - y_j\)(因为 y 是 one-hot,总和为1)

因此:

\[\frac{\partial L}{\partial z_j} = -y_j + y_j p_j + p_j(1 - y_j) \]

\[= -y_j + p_j(y_j + 1 - y_j) \]

\[= p_j - y_j \]


4. 最终简洁结果

\[\boxed{\frac{\partial L}{\partial z_j} = p_j - y_j} \]

太漂亮了! 这个结果意味着:

  • 梯度 = 预测概率 - 真实标签
  • 对于真实类别(\(y_j=1\)):梯度 = \(p_j - 1\)(负数,需要增大 \(z_j\)
  • 对于其他类别(\(y_j=0\)):梯度 = \(p_j - 0 = p_j\)(正数,需要减小 \(z_j\)

5. 例子验证

用我们刚才的例子:

  • $ z = [3.0, 1.0, -1.0] $
  • $ y = [1, 0, 0] $
  • $ p = [0.88, 0.12, 0.00] $

梯度:

\[\frac{\partial L}{\partial z} = p - y = [0.88-1, 0.12-0, 0.00-0] = [-0.12, 0.12, 0.00] \]

解释

  • 对真实类别(猫):梯度 -0.12 → 需要稍微增大 \(z_0\)
  • 对其他类别(狗):梯度 +0.12 → 需要减小 \(z_1\)
  • 对鸟:梯度 0 → 不需要改变

6. 扩展到 x 的梯度

如果我们有 $ z = Wx + b $,那么:

\[\frac{\partial L}{\partial x} = W^T \cdot \frac{\partial L}{\partial z} \]

因为 $ \frac{\partial z}{\partial x} = W^T $。


总结反向传播流程

  1. 前向计算:$ z → softmax → p → L = -\sum y_i \log p_i $
  2. 反向传播:
    • $ \frac{\partial L}{\partial z} = p - y $(极其简洁!)
    • 然后继续向后传播到 $ W, b, x $

这就是为什么 softmax + 交叉熵在深度学习中被广泛使用——梯度计算既简洁又数值稳定!


相关参考:

  • How the backpropagation algorithm works
  • 深度学习:完全理解反向传播算法(一)
http://www.jsqmd.com/news/128501/

相关文章:

  • 教育领域的新助手:学生也能轻松使用的anything-llm AI工具
  • 多用户协作场景下的AI知识库构建:anything-llm实战案例
  • 防汛泵行业权威盘点:知名品牌与头部企业综合实力榜(2025版) - 品牌推荐大师1
  • 服装 / 家纺 / 鞋帽刺绣:Wilcom 9.0 威尔克姆 9.0 量产级制版下载安装
  • 在线职业技能鉴定知识支持系统开发思路
  • 收藏备用!知识库与知识图谱怎么选?大模型RAG架构选型终极指南
  • 2025年江西热门AI智能搜索服务公司推荐:AI智能搜索哪家好? - myqiye
  • 开源大模型落地应用典范:anything-llm在企业中的实际价值
  • 好写作AI:复杂观点简单化,让晦涩研究发现流畅表达
  • 三维视觉新突破:字节Seed推出DA3,实现任意视角重建视觉空间;7w+真实工业环境数据!CHIP填补6D姿态估计工业数据空白
  • 巴拿马移民公司推荐:靠谱之选与行业洞察 - mypinpai
  • 使用Vite#x2B; Lit 构建webcomponent 组件
  • 报告领取|2026中国游戏产业趋势及潜力分析报告(45页硬核报告,免费领)
  • 2025年资质齐全的成人学历学校、口碑不错的成人学历教育机构排名全解析 - 工业品牌热点
  • 8 个降AI率工具,研究生必备推荐!
  • anything-llm镜像部署最佳实践:性能优化与安全配置
  • 华为交换机配置命令大全
  • 好写作AI:交叉创新利器,启发你在跨学科研究中找到新连接点
  • 【必学收藏】AI智能体记忆:从“过目即忘“到“拥有经历“的进化之路
  • 双馈风力发电预测控制策略的无差拍控制技术研究与优化
  • 仅限早期用户掌握的技巧:利用Open-AutoGLM 2.0实现毫秒级响应推理部署
  • 开箱即用的AI助手:anything-llm让文档对话更简单
  • 好写作AI:论文“瘦身”专家,智能精简冗余直达字数线
  • 41、PowerShell 扩展与事件处理实用指南
  • 中小学课后服务智能问答机器人开发实例
  • 如何一天内掌握Open-AutoGLM?高效学习路径图首次公开
  • 好写作AI:学术语言教练,助你掌握更地道的学科表达
  • 揭秘Open-AutoGLM底层架构:如何实现零代码大模型微调与部署
  • 【Open-AutoGLM部署全攻略】:手把手教你从零搭建本地AI推理环境
  • 42、PowerShell 中的事件处理与 Tab 补全增强