本文是《大模型从0到精通》系列第一卷“奠基篇”的第五章,也是奠基篇的收官之作。前四章我们建立了完整框架:模型→损失→优化→网络结构。但神经网络有那么多参数,当预测出错时,怎么知道该调整哪个参数?本章将深入讲解反向传播——神经网络中的“责任追溯”系统,这是梯度下降能在深度网络中实现的关键算法。
一、深度网络的“责任分配”难题
我们的两层神经网络有10个参数:
- 第一层:a₁,b₁, a₂,b₂, a₃,b₃
- 第二层:c₁,c₂,c₃,d
当最终预测出错时(损失很大),我们面临核心难题:
该拧动第一层的哪个旋钮?还是第二层的哪个旋钮?每个旋钮该为错误负多少“责任”?
类比:公司业绩复盘
一家公司季度业绩不达标(损失很大):
- CEO(输出层)决策错误
- 但错误可能源于:A总监报告有误 → B经理数据有问题 → C员工收集错误
- 需要一套系统,将总误差公平地“分摊”给每个责任人
这就是反向传播要解决的问题:将输出层的总误差,沿着网络连接反向追溯,精确计算每个参数的“责任梯度”。
二、前向传播复习:数据如何流动
网络结构回顾
输入 x → 第一层:h₁ = a₁x+b₁ → r₁ = ReLU(h₁) h₂ = a₂x+b₂ → r₂ = ReLU(h₂) h₃ = a₃x+b₃ → r₃ = ReLU(h₃) 第二层:y = c₁r₁ + c₂r₂ + c₃r₃ + d 输出 y前向传播:执行计算
给定输入x=25(气温25℃):
- 第一层计算:
h₁ = a₁×25 + b₁ → r₁ = ReLU(h₁) h₂ = a₂×25 + b₂ → r₂ = ReLU(h₂) h₃ = a₃×25 + b₃ → r₃ = ReLU(h₃) - 第二层计算:
y = c₁×r₁ + c₂×r₂ + c₃×r₃ + d - 得到预测值y_pred
就像公司项目执行:数据从基层上报,经中层处理,CEO做出决策。
三、反向传播核心:链式法则
数学工具:链式求导
复合函数求导法则:
如果 z = f(y), y = g(x) 那么 dz/dx = dz/dy × dy/dx直观理解:误差传播就像多米诺骨牌,每层都对最终误差有“贡献度”。
神经网络中的链式法则
我们的网络:损失L → 依赖于y → 依赖于c₁,c₂,c₃,d,r₁,r₂,r₃ → 依赖于a₁,b₁,a₂,b₂,a₃,b₃ → 依赖于x
要计算 ∂L/∂a₁(损失对参数a