00 / WHY A CHAIN
结果经过三道加工,最初的旋钮该怎样负责?
如果原料先切片、再烘烤、最后称重,最终重量的变化会经过每一道工序。神经网络也是如此:一个参数先影响中间值,中间值再影响输出,输出最后影响损失。
向前
计算结果
输入依次通过每个函数,最终得到预测与损失。
向后
追踪影响
从损失倒着走,计算每一段局部变化率的乘积。
链式法则解决的问题
函数嵌套上一段输出喂给下一段
局部导数每一段只负责自己的变化
沿路相乘得到最初输入的总影响
训练网络把误差传到每个权重
- 能识别复合函数的内外层
- 能说明组合顺序不可随便交换
- 能用链式法则求简单导数
- 能解释反向传播为什么需要链式法则
01 / COMPOSITE FUNCTIONS
复合函数:前一个答案,成为后一个输入
先用 f 处理 x 得到 y,再用 g 处理 y 得到 z,就写作 z=g(f(x))。
输入
x
→
内层 f
y=f(x)
→
外层 g
z=g(y)
f(x)=2x+4,g(y)=3y−1 → g(f(x))=3(2x+4)−1=6x+11
代入顺序:先算括号最里面的 f(x),再把整个结果放进 g 的输入位置。g(f(x)) 不是 g×f×x。
x最初输入
例如原始特征。
y=f(x)中间结果
既是上一层输出,也是下一层输入。
z=g(y)最终输出
所有加工后的结果。
02 / ORDER MATTERS
先 f 后 g,通常不等于先 g 后 f
函数像操作步骤。先穿袜子再穿鞋,不能交换成先穿鞋再穿袜子。
g(f(x))
6x+11
先做 f(x)=2x+4,再做 g(y)=3y−1。
f(g(x))
6x+2
先做 g(x)=3x−1,再做 f(y)=2y+4。
COMPOSITION CHECK / 复合顺序实验
拖动 x,对比两种顺序
x
→
f(x)
→
g(f(x))
交换顺序:先 g 再 f,得到 f(g(1))=8。
17 与 8 不同,所以组合顺序不能交换。
03 / CHAIN RULE
链式法则:总变化率=每一段局部变化率相乘
若 y=f(x)、z=g(y),x 改一点会先改变 y,再由 y 改变 z。两个影响接力相乘。
dz/dx = dz/dy × dy/dx 或 [g(f(x))]′ = g′(f(x))·f′(x)
外层响应
dz/dy
×
内层响应
dy/dx
=
总响应
dz/dx
它们不是普通分数。“dy 可以约掉”是帮助记忆路径的写法;真正依据是复合函数求导规则。变量名称能提醒你每一段从哪里到哪里。
- 给中间结果取名字:令 y=f(x),z=g(y)。
- 求外层导数:计算 dz/dy,暂时把 y 当输入。
- 求内层导数:计算 dy/dx。
- 相乘并代回:把 y 替换成 f(x),得到只含 x 的答案。
04 / CHAIN LAB
把一条长导数拆成两段短导数
原文例子:y=3x²+4,z=y²。直接展开可以算,但链式法则能保持每一层结构。
LOCAL SLOPES / 局部变化率实验
z=(3x²+4)²
x
→
y=3x²+4
→
z=y²
dz/dy14.00
dy/dx6.00
dz/dx84.00
14 × 6 = 84
外层每变 1 倍放大 14,内层每变 1 倍放大 6,总影响是 84。
dz/dx = 2y·6x = 2(3x²+4)·6x = 36x³+48x
05 / FORWARD PASS
神经网络前向传播,就是许多函数连续复合
一个神经元通常先做加权求和,再通过激活函数;多层网络把这种步骤反复连接。
权重 w 和偏差 b 是要学习的参数。激活函数让网络能表示非线性关系。整条从参数到损失的计算链,是一个很深的复合函数。
06 / BACKPROPAGATION
反向传播:从最终错误倒着计算每个参数的责任
本实验使用一个简化网络:输入 x=1,u=w×x+1,预测 ŷ=u²,目标 t=9,损失 L=(ŷ−t)²。
dL/dw = dL/dŷ × dŷ/du × du/dw
BACKPROP TRAINER / 反向传播训练器
每点一次,让 w 沿总导数反方向移动
w
→
u=w+1
→
ŷ=u²
dL/dŷ−16.00
dŷ/du2.00
du/dw1.00
损失 L64.000
总导数 dL/dw−32.000
总导数为负,应增大 w。
这是教学用的单参数复合函数。真实网络有更多层和参数,但反向传播仍是在计算图上重复“接收上游梯度 × 本地导数”。
07 / XOR & ACTIVATION
XOR:为什么神经网络需要多层与非线性?
XOR 的规则是“两个输入不同时输出 1,相同时输出 0”。一条直线无法把这四种情况正确分开,多层网络可以通过中间组合完成。
输入 0,0输出 0
输入 0,1输出 1
输入 1,0输出 1
输入 1,1输出 0
激活函数不是装饰。若每层都只做线性运算,再多层最终仍可合并成一层线性运算。ReLU、sigmoid 等非线性激活让网络能表达弯曲、分段的复杂规律。
阶跃函数的训练困难:它几乎处处导数为 0,误差信号难以传回。因此训练网络通常使用更适合求导的激活函数。
08 / RECAP
把复合函数到反向传播连成四步
向前复合上一层输出给下一层
z=g(f(x))
拆局部导数每段只算自己的斜率
dz/dy, dy/dx
沿链相乘得到总变化率
dz/dx=dz/dy·dy/dx
反向传播把损失传回每个参数
w←w−η∂L/∂w
09 / CHECK
知识检测:选择后立即诊断
题目覆盖复合顺序、链式计算和神经网络中的迁移理解。
题目—
已作答0
当前答对0
首次薄弱点0
历史最好—
0 分
VISUAL FIRST · 一图读懂
神经网络为什么要“向前算、向后追”?
蓝色信号负责得到预测,橙色信号负责把最终误差沿原路倒着分配给每一层。
读图顺序
蓝线向前
上一层的输出进入下一层,最后形成模型预测。
橙线向后
从最终误差出发,反向寻找每一层应承担的责任。
齿轮依次相乘
链式法则把沿途的局部变化率连乘成总变化率。