胡慧华
菜单
首页人工智能机器学习深度学习智能体项目实践关于我
跳至课程正文
← 返回深度学习课程

DEEP LEARNING · COURSE 05

错误,如何逐层传回?

从输出端往回追踪,理解每一层参数如何获得调整依据。

进阶约 35–40 分钟7 个学习环节
错误信号从输出层逐层回传的反向传播概念图
本课学习重点
  • 前向传播
  • 局部梯度
  • 链式法则
01

先从一个具体问题出发

一张数字图片被错认成了 8

网络已经完成预测,也通过损失函数知道自己错了。但网络里有成千上万个权重:究竟该改哪一个、改多少?反向传播负责把最终错误转换成每个参数的调整依据。
LEARNING TO LEARN

通过一条微型神经网络和梯度链实验,理解局部梯度、链式法则与反向传播。

这一课要回答:反向传播:错误如何逐层传回
02

建立必要的基础概念

先认识三个关键词

先看每个概念负责什么,再把它们放回完整流程。无需先记公式,先建立直觉。
01 · 前向传播

先保存计算过程

输入从前往后经过每一层,同时保存中间值,为之后追溯错误做准备。

02 · 局部梯度

每一步只回答局部问题

某个输入轻微变化时,这一步的输出会变化多少?每个运算都能独立回答。

03 · 链式法则

把沿途影响相乘

后层的错误乘以前层的局部梯度,就能得到更早参数对最终损失的影响。

03

把概念连接成流程

一次反向传播分成四步

按顺序走一遍,观察每一步的输入、动作与输出。
  1. 01

    完成预测

    输入依次穿过隐藏层与输出层。

  2. 02

    计算损失

    把预测概率与正确答案比较。

  3. 03

    从后往前求梯度

    输出层先收到误差信号,再按计算路径传向前层。

  4. 04

    统一更新参数

    优化器使用各参数的梯度完成一步更新。

04

互动实验 · 动手建立直觉

沿计算链追踪一个梯度

选择一层,观察最终误差怎样乘上沿途的局部梯度。越早的层通常要经过更长的路径。

沿途局部梯度0.8最终梯度 = 0.80

05

知道模型能做什么,也知道不能做什么

三个容易忽略的边界

技术名词描述的是一种计算方法。真正用于产品时,还要检查数据、指标、成本与使用场景。
01

反向传播不是训练的全部

它高效计算梯度;优化器才根据梯度更新参数。

02

梯度可能消失或爆炸

许多小数或大数连乘,会让早期层收到过弱或过强的信号。

03

计算图决定回传路径

只有实际影响损失的运算,才会获得对应梯度。

06

可选代码实践 · 逐行理解

让框架自动计算梯度

代码只呈现本课最关键的计算路径。先根据注释理解每一步,再放进完整项目。
course-05.py
import torch

w = torch.tensor(0.5, requires_grad=True)
x, target = torch.tensor(2.0), torch.tensor(3.0)
prediction = w * x
loss = (prediction - target) ** 2
loss.backward()

print(w.grad)       # -8:损失对 w 的梯度
with torch.no_grad():
    w -= 0.1 * w.grad
  1. 步骤 1

    requires_grad=True 表示需要追踪这个参数的计算。

  2. 步骤 2

    loss.backward() 从损失出发,按计算图反向累积梯度。

  3. 步骤 3

    更新参数时关闭梯度追踪,避免把更新动作也加入计算图。

07

知识检查与课程总结

确认你能把概念讲清楚

完成三个问题,再用五句话回顾本课主线。

已回答 0 / 3 题 · 当前答对 0 题

01反向传播直接计算的是什么?
02链式法则在这里做什么?
03得到梯度后,谁负责更新参数?
  1. 前向传播保存预测所需的中间值。
  2. 反向传播从损失开始,沿计算图逆向求梯度。
  3. 链式法则把多步运算的局部影响连接起来。
  4. 梯度表示调整方向,优化器完成参数更新。
  5. 深层网络需要关注梯度消失与爆炸。

下一课 · COURSE 06

模型训练与评估

学会调整参数后,继续判断模型是否真正学会了可泛化的规律。

继续下一课 ↗