机器学习数学 · 09
0% READ
课程首页
JUNIOR ML MATH / CHAIN RULE

链式法则把变化一层层传回去

神经网络像一台多段机器:前一层的输出成为后一层的输入。链式法则把每一段的局部变化率相乘,让最终错误能够沿原路找到每个参数。

复合函数运算顺序链式法则反向传播实验
LEARNING ROUTE① 函数套函数② 拆成局部变化③ 沿链相乘④ 把误差传回参数
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,对比两种顺序
x1
f(x)6
g(f(x))17

交换顺序:先 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 可以约掉”是帮助记忆路径的写法;真正依据是复合函数求导规则。变量名称能提醒你每一段从哪里到哪里。
  1. 给中间结果取名字:令 y=f(x),z=g(y)。
  2. 求外层导数:计算 dz/dy,暂时把 y 当输入。
  3. 求内层导数:计算 dy/dx。
  4. 相乘并代回:把 y 替换成 f(x),得到只含 x 的答案。
04 / CHAIN LAB

把一条长导数拆成两段短导数

原文例子:y=3x²+4z=y²。直接展开可以算,但链式法则能保持每一层结构。

dz
LOCAL SLOPES / 局部变化率实验
z=(3x²+4)²
x1.00
y=3x²+47.00
z=y²49.00
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

神经网络前向传播,就是许多函数连续复合

一个神经元通常先做加权求和,再通过激活函数;多层网络把这种步骤反复连接。

输入 x特征加权和u=wx+b激活a=σ(u)预测→ 损失反向传播:损失的影响沿原路返回
权重 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 沿总导数反方向移动
w0.000
u=w+11.000
ŷ=u²1.000
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
历史最好
1. g(f(x)) 表示什么?
2. f(x)=2x+1,g(y)=y²,则 g(f(3)) 等于?
3. 关于 g(f(x)) 与 f(g(x)),哪句话正确?
4. 若 y=f(x)、z=g(y),dz/dx 等于?
5. dz/dy 在链式法则中描述什么?
6. y=2x+1、z=y²,则 dz/dx 是?
7. z=(3x²+4)² 的导数是?
8. 神经网络前向传播主要做什么?
9. 反向传播为什么使用链式法则?
10. 若 dL/dw 为负,为降低损失通常怎样小步调整 w?
11. 神经网络为什么需要非线性激活函数?
12. 链式法则在神经网络训练中的核心用途是?
0

VISUAL FIRST · 一图读懂

神经网络为什么要“向前算、向后追”?

蓝色信号负责得到预测,橙色信号负责把最终误差沿原路倒着分配给每一层。

三个齿轮中蓝色信号向前传播而橙色误差信号反向传播的无文字插图
HOW TO READ
读图顺序
蓝线向前

上一层的输出进入下一层,最后形成模型预测。

橙线向后

从最终误差出发,反向寻找每一层应承担的责任。

齿轮依次相乘

链式法则把沿途的局部变化率连乘成总变化率。