@ProfTomYeh:手动反向传播 ~ 下面11个步骤详解 反向传播是真正训练神经网络的算法…
摘要
通过矩阵乘法手动演练一个3层网络的反向传播,展示从梯度到权重更新的全部11个步骤。
查看缓存全文
缓存时间: 2026/07/20 23:33
手工反向传播 ~ 以下11步详解
反向传播是真正训练神经网络的算法,也是大多数人开始跟不上的地方。它并不是你学不会的微积分,而是矩阵乘法——从后往前,逐层推进。
于是我亲手绘制并计算了整个过程。
目标:将损失梯度反向传播过一个3层网络,为每一个权重和偏置更新出新值。
= 1. 已知条件 =
一个3层感知机,输入 X,预测值 Ypred = [0.5, 0.5, 0],真实值 Ytarget = [0, 1, 0]。
= 2. 反向传播梯度单元格 =
我们先为每一个即将计算的梯度画出空单元格。答案的形状先出来。
= 3. 第3层 softmax =
直接从 Ypred 减去 Ytarget 得到 dL/dz3 = [0.5, -0.5, 0]。无需链式法则,这个捷径正是 softmax 与交叉熵配对使用的全部理由。
= 4. 第3层权重和偏置 =
将 dL/dz3 与 [a2 | 1] 相乘。一次乘法即可同时得到 W3 和 b3 的梯度。
= 5. 第2层激活值 =
将 dL/dz3 与 W3 相乘得到 dL/da2。梯度向后穿过一层的方式,与信号向前传播的方式相同。
= 6. 第2层 ReLU =
让它通过门控:在激活值为正的地方保留梯度,其他地方置零。
= 7. 第2层权重和偏置 =
将 dL/dz2 与 [a1 | 1] 相乘。与步骤4相同的图形,向上移一层。
= 8. 第1层激活值 =
将 dL/dz2 与 W2 相乘。
= 9. 第1层 ReLU =
再次应用相同的门控,这次是在 a1 上。
= 10. 第1层权重和偏置 =
将 dL/dz1 与 [x | 1] 相乘,至此网络中每个权重都有了梯度。
= 11. 更新 =
减去梯度,网络就学到了一步。实践中学习率会缩放这一步。
梯度: dL/dz3 = [0.5, -0.5, 0] dL/da1 = [1, -2, 2, -1] dL/dz1 = [0, -2, 2, -1]
要点:你只需要矩阵乘法。与前向传播一样,反向传播从头到尾都是矩阵乘法。你可以一步一步手算,慢一些、不完美也没关系——这正是 GPU 快速运算的能力对深度学习至关重要的原因。
收藏这篇帖子吧!
相似文章
@ProfTomYeh: 手动解析Transformer ~ 6步详解如下 学习Transformer架构就像打开汽车的引擎盖……
通过手动计算注意力加权和前馈网络,逐步讲解Transformer架构的核心组件,以说明Transformer的工作原理。
@antoniolupetti: "计算神经网络梯度"是对反向传播和梯度计算背后数学的清晰介绍…
斯坦福CS224N课程笔记清晰地介绍了神经网络中反向传播和梯度计算的数学原理,涵盖链式法则、计算图和向量化导数。
@ProfTomYeh: 自编码器手绘交互图示。访问 https://byhand.ai/autoencoder ~ Tom Yeh 教授
Tom Yeh 教授分享了一个交互图示,用于学习自编码器,这是他专注于多层感知器的'AI by Hand'系列的一部分。
@ProfTomYeh: 手把手拆解 Switch Transformer ~ 以下 13 步讲解 Switch Transformer(Fedus、Zoph 和 Shazeer 于 2022 年提出)是……
一篇 13 步的可视化讲解,解释 Switch Transformer 的工作原理,涵盖稀疏混合专家路由,以及为什么 GPT-4、Claude、DeepSeek-V3 和 Kimi 等模型使用这种架构来保持高效。
@DanKornas: 当你能逐单元格查看数学时,神经网络更容易理解。ai-by-hand-excel是一个Excel练习集合……
ai-by-hand-excel是一个开源的Excel工作簿集合,通过让用户逐单元格查看数学运算来教授神经网络、反向传播和transformers等AI概念,使模型内部机制更直观。