机器学习基础

反向传播:错误怎么传回去

10 分钟

一个尴尬的问题

梯度下降要「沿坡度走」,可网络有百万个参数,怎么知道每个参数对总错误各负多少责?挨个改动再试,算到地老天荒也算不完。反向传播(backpropagation)解决的就是这个效率问题:从输出端的错误出发,顺着网络一层层往回,把「责任」按比例分给每个参数

像接力赛的复盘

接力队输了比赛,教练从最后一棒往回复盘:最后一棒慢了 2 秒,负主要责任;第三棒交接失误,间接拖累……每个人都知道自己下次该改什么。反向传播干的就是这件事,只不过用的是微积分里的链式法则——你不需要会推公式,知道「它能高效算出每个参数的梯度」就够了。

和梯度下降的分工

两者是搭档,别搞混:反向传播负责算梯度(每个参数该往哪边调、调多少),梯度下降负责迈出那一步(真的把参数更新掉)。一次训练 = 前向算出预测 → 反向算梯度 → 下降一步,循环几万次。

常见误区

反向传播不是一种新的「学习算法」,它只是「把梯度算得又快又省内存」的技巧。真正做决定的仍然是第一章的损失函数和梯度下降——它是引擎里的变速箱,不是方向盘。

练一练:用「接力赛复盘」向家长讲清:错误如何从最后一棒往前分配责任。

小纸条

用接力复盘的类比讲清反向传播,并说出它和梯度下降的分工。

登录 后可看答案