夜雨聆风学习资料网

ARTICLE · 1158306

AI小课堂42:反向传播——错分的账,怎么一笔笔传回上亿个参数?

AI小课堂42:反向传播——错分的账,怎么一笔笔传回上亿个参数?

AI 小课堂 · 第 042 期

问:上亿个参数的梯度,一次反向传播怎么全拿到?——把错分的账,一笔一笔传回去

“从最后一张罚单到每个参数的路费”——1986 年的老算法,撑起今天所有大模型的训练

⚡ 一句话回答:上一期说训练 = 沿着最陡下坡迈小步,但“哪个方向最陡”要给上亿个参数各算一个梯度。反向传播就是干这个的:先正向把损失(罚单)算出来,再把罚单从输出层往输入层倒着传,路上用链式法则逐层分账——每层只回答“传到我这的错,有多少该往上游记”,就能把账拆下去。一次反向,全部到手。前向算错、反向记账、按梯度迈步——三步闭环,深度学习的训练就这一件事。

💬 大白话:流水线追责

把网络想成一条流水线:原料进来,工位一层层加工,出厂时质检给了张罚单(损失)。现在要追责:每个参数该扣多少?笨办法是挨个参数试一遍、看罚单变不变——上亿参数,试不起。聪明的办法是顺着流水线往回查:罚单先找最后一道工序算账,最后一道再把自己上游该背的部分往回传。数学上这叫链式法则:每层只用到两样东西——进来的是什么、这层怎么算的——就能把责任一层层拆下去。

于是训练的分工彻底明确:正向传播管“把错算出来”,反向传播管“把错分下去”,上一期的梯度下降管“按分到的错改自己”。三个角色,一次循环——这就是训练日志里 loss 下降的全部原理。

🎯 一句话原理:反向传播 = 链式法则的逐层接力:罚单从输出层倒着传,每层拆一次账,上亿参数的梯度一次全拿到。

🧠 深入一层:1986 年的 Nature 论文

反向传播真正“封神”是在 1986 年:Rumelhart、Hinton 和 Williams 在《Nature》上发表《Learning representations by back-propagating errors》(323 卷 533–536 页,1986-10-09 刊出)。摘要说得很克制:这套流程反复调整连接权重,使网络实际输出与期望输出之差最小;结果是不在输入输出层的“隐藏单元”,自己学会了表达任务的重要特征——这正是它与更早的感知机收敛方法的本质区别。链式法则本是微积分的老工具,真正的突破是把它用在多层网络上:中间层不再需要人工指定答案,而是自己“造特征”。深度学习的“深度”,从这一刻起才真正可行。

它有多核心?2015 年 2 月 Ioffe 和 Szegedy 挂出 Batch Normalization(arXiv 1502.03167,2015-02-11),开篇就在描述反向传播带来的麻烦:前面层的参数一变,后面每层输入的分布也跟着变,训练于是变慢、变得挑剔。BN 用归一化稳住每层输入,同等精度下训练步数降到原来的 1/14,ImageNet top-5 验证错误率压到 4.9%。注意因果:不是反向传播不灵了,恰恰是它太灵——账传得越准,前面层“风吹草动”的代价就看得越清楚,稳住输入才能放心训练。

🎯 一句话账本:1986 年《Nature》让隐藏层学会自己造特征;BN 把步数省到 1/14,恰恰说明反向传播传的账有多敏感。

🛠️ 你也能用:看懂“梯度消失”

反向传播的软肋藏在“接力”里:很多层会把传来的账越乘越小——像传话游戏,每一棒只传达九成,传到十几棒之后几乎归零。靠前的参数分不到错、学不到东西,网络越深反而越差。1994 年 Bengio 等人在 IEEE Transactions on Neural Networks(1994-03-01 刊出)上专门证明:用梯度下降学“长程依赖”之所以难,病根就在这。1997 年 Hochreiter 和 Schmidhuber 的 LSTM(Neural Computation 9 卷 8 期)给出第一条出路:给网络装“门”,让该记的账原样通过。第二条路——给梯度开高速公路——就是下一期的主角。

自己炼丹、微调时也用得上:loss 长期纹丝不动,别只怪学习率,先怀疑梯度消失——检查参数初始化、每层的归一化、激活函数(ReLU 比 sigmoid 更不容易把账乘没);网络一深,就上残差结构。

🎯 一句话上手:loss 卡住先查梯度是不是“消失了”——靠前层分不到账;换门控(LSTM)或加捷径(残差)。

💡 记住这三句

1️⃣ 反向传播 = 链式法则逐层分账:一次反向,上亿参数的梯度全到手

2️⃣ 1986 年《Nature》论文让隐藏层学会“造特征”,深度学习从此可行

3️⃣ 账会越传越小:梯度消失的出路是门控(LSTM)或捷径(残差)

📚 参考资料

· Rumelhart, Hinton & Williams《Learning representations by back-propagating errors》(Nature 323:533-536, 1986-10-09 刊出;反向传播开山作:反复调权最小化误差,隐藏单元学出任务特征)https://www.nature.com/articles/323533a0· Ioffe & Szegedy《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》(arXiv 1502.03167,2015-02-11 挂出;同等精度训练步数 1/14、ImageNet top-5 4.9%)https://arxiv.org/abs/1502.03167· Bengio, Simard & Frasconi《Learning long-term dependencies with gradient descent is difficult》(IEEE Transactions on Neural Networks, 1994-03-01 刊出;梯度消失的理论证明)https://doi.org/10.1109/72.279181· Hochreiter & Schmidhuber《Long Short-Term Memory》(Neural Computation 9(8):1735-1780, 1997-11;门控记忆单元对抗梯度消失)https://doi.org/10.1162/neco.1997.9.8.1735

— 明日预告 —

❓ 网络越深应该越聪明,可加到几十层反而越训越差?下一期讲残差连接 ResNet:给梯度开一条高速公路——152 层的网络,8 倍于 VGG,误差反而更低。

AI 小课堂 · 每天一个小概念 · 关注不迷路

相关学习资料