
从零实现反向传播ai-engineering-from-scratch Phase 3数学推导与代码实战【免费下载链接】ai-engineering-from-scratchLearn it. Build it. Ship it for others.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-from-scratch反向传播Backpropagation是让神经网络真正学会的算法。没有它神经网络只是一个昂贵的随机数生成器。本文带你走进开源课程ai-engineering-from-scratch的 Phase 3 深度学习核心阶段用最少的代码、最清晰的数学推导从零理解并亲手实现反向传播——一次看懂链式法则、计算图与梯度消失三大核心概念。为什么需要反向传播先看一个现实场景你的网络有 768 个输入、3072 个隐藏输出共235 万个权重。它预测错了——但到底是谁的错方法代价逐个扰动法微扰每个权重再前向一次235 万次前向传播反向传播1 次前向 1 次反向算出全部梯度这不只是优化技巧而是可训练与不可能的分界线。反向传播的本质就是把微积分中的链式法则系统性地应用到计算图上。核心机制链式法则与计算图链式法则回顾若y f(g(x))则dy/dx f(g(x)) * g(x)——沿链条相乘导数。在神经网络中链条就是从输入到损失函数的操作序列前向传播值从左到右流动每个节点计算结果并存下中间值反向传播梯度从右到左流动每个节点只做一件事——接住上游传来的梯度 × 自己的局部导数 传给下游的梯度这种用内存换速度的设计存激活值换一次反向遍历正是反向传播的核心权衡。完整数学推导一个两层网络以下是一个经典两层网络sigmoid 激活 MSE 损失的完整梯度推导前向传播 z1 W1 * x b1 a1 sigmoid(z1) z2 W2 * a1 b2 a2 sigmoid(z2) L (a2 - y)^2 反向传播链式法则逐步展开 dL/da2 2(a2 - y) dL/dz2 dL/da2 * a2 * (1 - a2) dL/dW2 dL/dz2 * a1 dL/db2 dL/dz2 dL/dz1 (dL/dz2 * W2) * a1 * (1 - a1) dL/dW1 dL/dz1 * x dL/db1 dL/dz1每个梯度都是从损失函数回溯的局部导数之积——这就是反向传播的全部。梯度消失深网络的隐形陷阱 ⚠️sigmoid 的输出在 [0, 1] 之间其导数a(1-a)最大只有 0.25a 0.5 时。这意味着梯度每穿过一层最多保留 1/43 层深梯度最多剩 0.25³ ≈0.015610 层深梯度最多剩 0.25¹⁰ ≈0.000001早期层几乎收不到梯度自然学不动。这就是梯度消失问题——反向传播算法本身完美无损问题出在它穿过的激活函数上这正是后续 ReLU 登场的原因。代码实战7 步从零实现项目中的完整实现位于 code/main.pyJulia 版本见 code/main.jl核心只有 6 步Value 节点每个数字存三样东西——值data、梯度grad、以及我是怎么被算出来的运算即图节点加法和乘法各生成新节点并在闭包里定义自己的反向函数乘法的关键d(a·b)/da bsigmoid 与损失反向时复用前向算好的s零额外开销backward()拓扑排序保证梯度攒齐了再传播从损失节点grad1.0出发倒序遍历Neuron → Layer → Network神经元 加权和 偏置 sigmoid三层封装即得网络训练循环zero_grad() → backward() → 参数按p - lr * p.grad 更新一个容易忽视的细节累加梯度时必须用而不是因为一个值可能参与多个运算总梯度是所有路径的和。动手验证XOR 与圆形分类 跑一遍 code/main.pypython3 phases/03-deep-learning-core/03-backpropagation/code/main.py你会看到两个实验XOR 问题2→4→1 网络损失从随机水平一路降到接近 04 个输入全部输出正确圆形分类2→8→1 网络在线 SGD 每轮洗牌网络不靠任何手工调参自己发现圆形决策边界准确率稳步上升而 PyTorch 里的loss.backward()、optimizer.step()、zero_grad()和你在上面写的三步完全是同一套算法——工业级封装之下链式法则从未改变。继续学习与项目资料资源路径本课完整讲义概念/推导/练习phases/03-deep-learning-core/03-backpropagation/docs/en.mdPython 实现含 XOR 与圆形训练phases/03-deep-learning-core/03-backpropagation/code/main.py课前/课后自测题phases/03-deep-learning-core/03-backpropagation/quiz.jsonPhase 3 阶段入口与前置要求phases/03-deep-learning-core/README.md全课程路线图ROADMAP.md本课要点回顾反向传播 链式法则 计算图 拓扑排序一次反向遍历算出全部梯度梯度消失的元凶是激活函数而非算法本身。完成本课练习给 Value 加relu并对比 XOR 收敛速度后就可以进入 04-activation-functions看 ReLU 如何拯救深层网络。【免费下载链接】ai-engineering-from-scratchLearn it. Build it. Ship it for others.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-from-scratch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考