
上一期已经对反向传播有了直观感受,看计算过程的第一感觉就是反向传播一点都不玄乎,它的核心逻辑,就是一个迭代往复修改错误的过程,其实就是每天都在做的一件事——「知错就改」,只不过机器把这个过程做得更精准、更高效而已。
一直拖着这个下期没更新,是因为再往下讲有点驾驭不住了,一方面需要触及数学生怕自己讲错,另一方面又怕晦涩难懂,另外就是做视频太耗时,暂时也不会用龙虾搞搞,还是先码文字吧。总之今天的内容需要借助课本来补充下知识,我也是花功夫又仔细补了补数学知识,当然,为了便于理解,上来我先抛弃公式和术语,就用「学生备考」这个最常见的场景,把反向传播的底层逻辑说透。——你摸索着控制孩子的早读、作业、休息、辅导班时间,想提高他的成绩,这个过程,就是反向传播的精髓,保证你看完就能跟朋友聊明白。先搞懂:没有反向传播,你就是“瞎调整”
咱们先把场景摆清楚:孩子正在中考备考,每天的学习时间是固定的(比如每天可支配学习+休息时间10小时),你要控制4个核心“变量”,来帮他提高成绩:早读时间、作业时间、休息时间、辅导班时间。这4个变量相互影响,比如作业时间太长,休息时间就会减少;辅导班时间太晚影响睡觉,早读时间就会被压缩。另外每个时间段对考试成绩的影响不同,早读侧重记忆,直接影响基础题的得分,特别是语文和英语注重长期积累,辅导班时间主要用来理解和专项技能不足的提高。第一步:你凭感觉调整(对应神经网络「前向传播」)
一开始你没有任何经验,只能瞎摸索:给孩子安排每天1小时早读、3小时作业、7小时休息、2小时辅导班,剩下的时间自由安排。坚持1个月后,孩子参加摸底考试,成绩出来了——580分(目标是650分),离目标还差70分。第二步:明确“差距”(对应「计算损失/误差」)
这次摸底考试的成绩,就是“孩子的输出结果”,650分的目标分,就是“正确答案”,两者的差距70分,就是我们说的「误差」——说白了,就是“目前的时间安排,离目标还差多少”。重点来了:你知道成绩没达标,也知道要调整那4个时间变量,但你不知道「该调哪个、调多少」——是早读时间太短?还是作业时间太长导致疲劳?是休息不够影响效率?还是辅导班没用浪费时间?如果没有方法,你下次可能随便调整:比如把早读增加到2小时,作业增加到4小时,休息减少到6小时,辅导班不变。结果孩子更疲劳,下次摸底成绩可能只考570分,反而倒退。而「反向传播」,就是帮你「从成绩差距出发,倒着找问题、精准调整变量」的方法,让每一次调整,都能往650分的目标靠近。反向传播核心:从成绩倒推,精准调整4个时间变量
还是这个中考备考场景,咱们用反向传播的思路,一步步教你调整时间、提高成绩,你就懂机器是怎么学习的了——核心就是“从误差(成绩差距)倒推,找到问题变量,再针对性调整”。第一步:先定“错多少”——算出总误差
首先明确,总误差是70分(孩子摸底成绩580分 - 目标成绩650分 = -70分,负号代表没达标)。这个总误差,就是我们要“消灭”的目标——就像你心里清楚,“孩子现在的状态,离中考目标还差70分,咱们得通过调整时间,把这70分补回来”。第二步:倒着找“谁该背锅”——分配误差(找问题变量)
反向传播的关键,就是「从结果(成绩)往回推」,看4个时间变量(早读、作业、休息、辅导班),哪个对“成绩差距”的影响最大,也就是“哪个变量没安排好,导致分数没上去”,这就是「误差分配」。咱们从成绩差距出发,倒着分析这4个变量的影响(就像你复盘孩子的备考状态):- 早读时间(1小时):孩子反馈,早读时间太短,英语单词、语文古诗文记不牢,每次考试这两块都要丢20分——这是一个明显的误差来源;
- 作业时间(3小时):孩子说作业太多,很多重复题浪费时间,重点错题的覆盖率很低,针对性差,同时写到深夜很疲劳,第二天上课走神,数学、物理的基础题会丢15分——这是第二个误差来源;
- 休息时间(7小时):看似休息充足,但孩子熬夜写作业,实际深度睡眠只有4小时,白天效率低,间接影响所有科目,大概丢10分——第三个误差来源;
- 辅导班时间(2小时):辅导班讲的内容太基础,孩子已经掌握,相当于浪费时间,还占用了自主复习的时间,大概丢25分——这是影响最大的误差来源。
这样一来,我们就把总误差70分,精准分配到4个变量上:辅导班(25分)> 早读(20分)> 作业(15分)> 休息(10分)。相当于明确了“谁的问题最大”,不用再盲目调整,这就是反向传播的核心——找到每个变量对误差的影响,精准定位问题。第三步:精准改错——调整每一个变量(对应更新参数)
找到每个变量的问题和对误差的影响后,就可以针对性调整了(这一步,对应神经网络里「更新参数」,4个时间变量,就是神经网络的“参数”),调整的原则是:影响越大,调整幅度越大,同时兼顾变量之间的平衡(比如减少辅导班时间,就能增加早读或休息时间)。- 辅导班时间(影响最大,丢25分):从2小时减少到0.5小时,只保留薄弱科目(比如化学)的辅导,剩下1.5小时,一部分给早读,一部分给休息;
- 早读时间(丢20分):从1小时增加到1.5小时,重点背诵英语单词、语文古诗文,解决基础丢分问题;
- 作业时间(丢15分):从3小时减少到2.5小时,筛选掉重复题、基础题,重点做错题和拔高题,避免浪费时间;
- 休息时间(丢10分):保持7小时总休息时间,调整作息,保证孩子23点前睡觉,增加深度睡眠,提高白天学习效率。
调整后,每天的时间分配更合理:1.5小时早读、2.5小时作业、7小时休息、0.5小时辅导班,剩下4.5小时给孩子自主复习,既解决了每个变量的问题,又保证了整体平衡——这就是反向传播“精准调整参数”的过程,不是瞎改,而是有依据地调。第四步:重复迭代——越调越准(对应神经网络训练)
一次调整不够,就像孩子备考需要一轮轮复习、一次次摸底,反向传播也需要“反复迭代”,直到误差(成绩差距)越来越小,最终达到目标。- 再测试(前向传播):按新的时间安排,孩子坚持1个月,参加第二次摸底考试,成绩提升到630分,误差从70分缩小到20分;
- 倒着找错(反向传播):再次复盘,发现误差只剩下20分,主要来自:早读时间还是不够(丢8分)、作业里的拔高题没练够(丢7分)、休息时间虽够但白天专注力不足(丢5分),辅导班已经没问题;
- 再微调(更新参数):早读增加到1.8小时,作业增加0.2小时专门练拔高题,调整孩子白天的学习节奏(每学习1小时休息10分钟),辅导班保持0.5小时;
就这么反复迭代——每一轮摸底(测试)→ 复盘误差(找问题)→ 调整变量(改参数),孩子的成绩会一步步提升:630分→645分→652分,逐渐接近甚至超过650分的目标。但随着中考越来越近,新的问题出现了:孩子开始出现明显焦虑情绪,平时随堂考试成绩忽高忽低、很不稳定,这就相当于神经网络训练中,出现了“参数调整到位,但输出仍不稳定”的情况,需要新增变量、进一步优化。这时我们果断调整:在原有时间分配基础上,消减晚上半小时作业时间,新增半小时运动时间(缓解疲劳、释放压力)和半小时聊天心理建设时间(疏导焦虑、稳定心态)。这个新增变量、针对性调整的过程,依然是反向传播的延伸——从“成绩不稳定”这个新的误差出发,倒推问题根源(焦虑),再新增并调整相关变量,确保最终输出(中考成绩)稳定达标。这个完整的过程,和机器通过反向传播,反复修正参数、解决新问题、不断逼近“正确结果”,完全一模一样。对应到神经网络,其实就是这么回事
可能有人会问,这跟神经网络有啥关系?咱们把中考备考的场景,对应到神经网络的核心部分,你一看就懂,一点都不玄乎:- 你控制的「4个时间变量」(早读、作业、休息、辅导班)→ 神经网络的「每一层参数」(机器用来计算、预测的核心依据);
- 孩子的「摸底考试成绩」→ 神经网络的「预测结果」(机器根据参数,算出的答案);
- 「650分的目标成绩」→ 我们给机器的「真实标签」(比如图片里是猫,就告诉机器正确答案是猫);
- 「成绩差距(误差)」→ 神经网络的「损失值」(预测结果和真实答案的差距);
- 「反向传播」→ 从成绩差距(误差)出发,倒着分析每个时间变量(参数)的影响,再针对性调整,让下次摸底成绩(预测结果)更接近目标(真实标签)。
比如我们让AI识别猫和狗,一开始AI会瞎猜(就像你一开始瞎调整时间),把狗当成猫(误差大);然后通过反向传播,倒着查“哪一层参数设置错了”(就像你倒着查哪个时间变量没安排好),再调整每一层的参数(就像你调整时间);重复无数次后,AI就能精准分清猫和狗了——和你陪孩子中考备考,反复调整时间、提高成绩,逻辑完全一致。反向传播,就是机器的“备考复盘法”
它不是什么高深的技术,就是让机器拥有「复盘调整」的能力——就像你陪孩子中考备考,先凭着经验安排时间(机器凭现有参数预测),再通过摸底成绩看差距(算误差),倒着找每个变量的问题(分配误差),然后针对性调整(更新参数),反复迭代,直到达到目标。没有反向传播,神经网络就是一个只会瞎猜的“笨蛋”(就像你瞎调整时间,越调越差);有了反向传播,它才能像你陪孩子备考一样,不断复盘、不断调整,慢慢学会精准预测、高效完成任务——不管是识别图片、听懂语音,还是写出文案,本质都是这样“反复调整、越做越好”的过程。下次再听到「反向传播」,就想想“陪孩子中考备考”的场景——从成绩倒推问题,精准调整变量,反复迭代提升,就是这么简单~那么回到Excel大模型系类,如何修正参数,就是靠右边几个蓝色矩阵,不过很可惜,Tom老师没接着。需要你自己动手添加两个表格。看下边截图,对照文字应该能看懂。
从右下角,损失对输出层线性变换结果的梯度开始定义,记dL3 = ∂L/∂Z₃,该值即为损失函数对 Z₃的梯度。这里需要说明的是,若输出层激活函数为 Softmax,推导中直接将 dL3 简化为预测值与真实值的差值,这一简化并非随意处理,而是由 Softmax 函数结合交叉熵损失的数学特性所决定 —— 二者联合求导后会消去复杂的指数项,最终梯度形式可直接简化为差值,大幅降低计算复杂度。
得到 dL3 后,继续向上游推导权重参数的梯度:将 dL3 做转置变换(仅调整矩阵维度以匹配运算要求,不改变数据本身),再与前一层的输出 A₂做矩阵乘法,即可得到损失对输出层权重 W3 的梯度,即dW3 = ∂L/∂W₃,该值直观反映了权重 W3 的微小变化对整体损失的影响程度,是参数更新的核心依据。
接下来是关键的参数修正步骤:以 W3 的更新为例,先将梯度矩阵 dW3 做转置(与原始 W3 矩阵形状保持一致,对应推导中绿色 ,蓝色矩阵的维度匹配要求),再将其乘以学习率 η(本次示例中 η=0.1),最后用权重原始值减去该乘积(注:梯度下降法为原值 - 学习率 × 梯度,而非相加,核心是沿着损失降低的方向更新),即可得到修正后的新权重 W3',公式为:W3' = W3 - η × dW3ᵀ
按此规则对示例中参数逐一更新:首个参数保持 0 不变,第二个参数从 1 更新为 - 0.9,0.5 更新为 2.06,0.2 更新为 5.02。从更新结果能明显看出,参数数值变化幅度过大,这意味着学习率 0.1 的设置偏高—— 学习率过大易导致参数在最优解附近震荡,甚至无法收敛,因此实际训练中需将学习率适当降低(如调整为 0.01、0.001 等),让参数以更平缓的节奏向最优值逼近。
将更新后的新参数重新代入网络进行前向传播,模型输出会随之改变,该结果可能尚未达到预期,但神经网络的训练本就是多轮迭代循环的过程:每一轮都按 “计算梯度→更新参数→验证输出” 的逻辑反复优化,通过数十、数百甚至数千轮迭代,参数会逐步收敛到最优值,最终让模型输出贴合真实目标。
参考书籍推荐(清华大学出版社,适配深度学习梯度推导 / 参数优化知识补充)
结合你提供的清华社链接(https://www.tup.tsinghua.edu.cn/upload/books/yz/088732-01.pdf),该文档为《深度学习与交通大数据实战》核心章节,其中3.1 反向传播算法部分(124-132 页)详细讲解了梯度计算、权值更新的数学推导与 NumPy 实现,与本次的损失梯度、参数更新知识点高度契合,可作为核心参考;
若需更系统的深度学习基础补充,推荐清华社同系列 / 同领域经典教材:
- 《深度学习入门:基于 Python 的理论与实现》(斋藤康毅 著,清华社引进):零基础讲解反向传播、梯度下降的数学原理,配套极简代码实现,适合理解参数更新的底层逻辑;
- 《深度学习框架 PyTorch:入门与实践》(陈云 著,清华社):第 3-4 章详细讲解神经网络参数优化、学习率调优策略,包含大量实战案例,适配工程化落地;
- 《神经网络与深度学习》(邱锡鹏 著,清华社):第 2-3 章对 Softmax + 交叉熵损失的梯度简化、梯度下降变种(SGD/Adam)做了严谨的数学证明,适合深入研究理论细节。
以上书籍均可在清华大学出版社官网(tup.tsinghua.edu.cn) 检索电子版 / 纸质版,也可通过知网、超星等平台查阅相关章节。
