00 / WHY CHANGE MATTERS
机器为什么需要知道“变化有多快”?
知道损失是 20 还不够。电脑更想知道:参数再增加一点,损失会变大还是变小?改变得快不快?这决定下一步往哪边走。
20
只看当前数值
只知道现在损失为 20,却不知道把参数调大以后会发生什么。
−6
再看变化率
导数为 −6,表示参数增加时损失正在下降;它提供了调整方向。
从生活速度,一步走到机器学习训练
路程变化平均速度描述一段路
图像斜率两点连线描述变化
切线导数描述某个位置的变化
损失导数指导模型参数更新
- 能区分变化量和变化率
- 能解释割线为什么会靠近切线
- 能用幂函数规则求简单导数
- 能根据导数正负判断模型调整方向
01 / AVERAGE RATE
平均变化率:变化了多少 ÷ 经过多少间隔
汽车 3 小时走了 240 千米,平均速度是 80 千米/小时。这里的 80 不是总路程,而是“每 1 小时平均增加多少距离”。
先分清两个问题:上半部的两个计时器夹住一整段路,回答“这段路平均多快”;下半部只圈出车轮经过的一个位置,回答“这一刻有多快”。平均变化率解决前者,导数要继续解决后者。再翻译成坐标图:生活中的整段平均速度,就是坐标图中两个时刻对应点的连线斜率。平均变化率 = y2−y1 ÷ x2−x1 = Δy / Δx
公式翻译:先计算纵向变化 Δy,再计算横向间隔 Δx,最后用纵向变化除以横向间隔。
Δ
RATE LAB / 两点变化率实验
修改起点和终点,立即观察变化量、间隔与斜率
纵向变化 Δy240
横向间隔 Δx3
平均变化率80
斜率为正:x 每增加 1,y 平均增加 80。
易错:“增加了 240”是变化量;“每小时增加 80”才是变化率。若 x₂=x₁,分母为 0,变化率不能这样计算。
02 / FUNCTION
f(x):把“输入经过规则得到输出”写清楚
函数不是一台神秘机器。它只是一个固定规则:给它一个输入 x,就得到相应输出 f(x)。
x 增加 h 时:平均变化率 = [f(x+h)−f(x)] / h
逐项翻译:原来的输入是 x,新输入是 x+h;输出从 f(x) 变为 f(x+h)。输出变化量除以输入间隔 h,就是这一小段的平均变化率。
a、b、c 可以是固定系数;x 是不断变化的输入。先分清“固定的数”和“正在变化的量”,后面求导才不会弄错。
03 / SECANT TO TANGENT
把间隔 h 缩小:从一段平均变化走向一个位置
两点连线叫割线,它描述一段区间。让第二个点不断靠近第一个点,割线逐渐贴近曲线的切线;切线斜率描述“此刻”的变化。
盯住三个颜色:黄色点不动,橙色点一步步靠近它,连接两点的橙线也跟着转动;最后它逼近青色切线的方向。下方三格就是 h 从大到小的连续过程。把斜坡故事翻译成数学图:h 越小,我们观察的范围越局部;平均变化率就越接近固定点的瞬时变化率。
h
SECANT LAB / 割线逼近实验
函数 f(x)=x²,固定 x=2,拖动 h 让第二个点靠近
h 接近 0,不等于直接令 h=0。若直接代入原来的分式,分母会变成 0。我们观察的是 h 越来越小时,整个变化率接近哪个值。
04 / DERIVATIVE
导数:每个位置都配一条“变化方向说明”
函数 f(x) 描述数值本身;导函数 f′(x) 描述每个 x 位置的切线斜率。求出 f′(x) 的过程叫微分。
f′(x) = limh→0 [f(x+h)−f(x)] / h
读成人话:让 h 越来越接近 0,观察平均变化率最终接近什么值。这个值就是 x 位置的切线斜率。
f′(2)一个具体数值
回答“x=2 这一点的斜率是多少”。
符号 ′ 读作 prime(撇)。f′(x) 可以读作“f prime x”。另一个常见写法是 dy/dx,本章先使用 f′(x)。
05 / POWER RULE
多项式求导:指数下来乘,指数再减一
理解导数的意义后,计算反而很短。对每一项分别操作即可。
1指数乘到前面
7x³ → 3×7x³
新系数是 21。
2指数减去 1
3×7x³ → 21x²
三次项变成二次项。
3常数项变成 0
10 → 0
常数始终不变,所以变化率为 0。
(a xn)′ = n·a xn−1
例:f(x)=x³−5x+6
(x³)′ = 3x²
(−5x)′ = −5
(6)′ = 0
所以 f′(x)=3x²−5
′
DERIVATIVE READER / 导数观察器
选择函数,再改变 x,区分导函数和某一点的导数值
x=2 处斜率为正,函数在这一点附近向右上升。
易错:x=x¹,所以 x′=1;5x 的导数是 5,不是 0。只有完全不含变量的常数项才变成 0。
06 / MACHINE LEARNING
机器学习怎样用导数调整参数?
把模型参数记作 w,把整体错误记作损失 L(w)。导数 L′(w) 告诉我们:w 增大一点时,损失会往哪边变化。
把模型想成谷里的机器人:橙色箭头表示导数指出的“损失上升方向”,所以训练要沿相反的青色箭头走;左右两边都会走向绿色谷底,也就是错误最小的位置。再用符号判断:导数为正就减小参数,导数为负就增大参数。统一写成 w←w−学习率×导数。参数更新:w新 = w旧 − 学习率 × L′(w)
为什么减去导数?导数指向函数上升最快的一侧;机器想让损失下降,所以朝相反方向走。学习率决定每一步有多大。
↓
TRAINING STEP / 一维训练实验
损失 L(w)=(w−3)²;最佳参数是 w=3
这是简化的一维例子。真实模型可能有成千上万个参数,会使用偏导数与梯度;但“计算变化方向,再让损失下降”的核心思想相同。
07 / MATH ARCADE
导数游戏厅:先玩出感觉,再说出原因
三个小游戏分别练习“整段与此刻”“割线逼近切线”和“沿导数反方向降低损失”。每次操作都会更新图形、数值和解释。
CHAPTER 04 / PLAY & LEARN变化方向训练场
完成不等于乱点成功:每局都要用数学关系达到目标。
已完成0 / 3
回合 1 / 5得分 0
🚲
整段路程240 km
整段时间3 h
此刻速度表65 km/h
这段路的平均速度是多少?
先判断问题范围。“整段”要用路程÷时间;“此刻”直接读速度表。
差距 ≤ 1.00差距 ≤ 0.40差距 ≤ 0.12
切线斜率 4.00割线斜率 6.00
当前差距是 2.00。让 h 变小,割线斜率 4+h 才会靠近切线斜率 4。
03损失山谷机器人
选择步长,并判断应该顺着还是反着导数走
寻找谷底
参数 w0.50
损失 L(w)6.25
导数 L′(w)−5.00
导数为负,导数方向指向左边;训练应走反方向。
目标:让损失小于 0.03。更新后比较新旧损失,亲自验证“减去导数”为什么有效。
玩完要能说出来:平均变化率处理一段区间;h 缩小时割线趋近切线;机器学习沿导数反方向更新参数,是为了让损失变小。
09 / CHECK
知识检测:选择后立即诊断
第一次选错会被记录;改对以后仍会提醒你复习曾经暴露的薄弱点。