981 字
5 分钟
02 bias 与损失:局部变化率与导数入门

复习提纲,对应 M2.4 局部变化率入门,以及 M2.1/M2.5 的预测与 MSE 应用;不是掌握记录,也不是练习答案。正式 chain rule 尚未讲,本课不等同 M3 通过。

1. 本课位置#

固定 X、w、y,只动一个标量参数 b,观察 MSE 怎样随它变化:先扫点看趋势,再用差商逼近斜率,最后用导数判断该往哪边挪一小步。

2. 术语#

  • bias b:本课固定数据中单独加减的标量参数,形状 (),给所有样本加同一个偏移。这里说的是本课的显式 bias,不是对所有模型中 bias 是否独立于 feature 的普遍断言。
  • shared shift:改 b 时每个预测一起平移,不是只改某一行。
  • 控制变量:X、w、y 全部固定,只让 b 变。
p = X @ w + b # (N, 1)
r = p - y # residual
b -> b + h => 每个 r_i 都增加 h

所以 residual 整体平移,MSE 是它们平方的平均。

3. 扫点:共享指标与单样本#

用本课固定数据扫 b:

b 4 5 6 7 8
L = MSE 6 3 2 3 6

测过的候选 4..8 中 b = 6 的 MSE 最低,两侧对称上升;全局最小见第 5 节。b = 5 时 residual 是 [1, -2, -2],b = 6 时是 [2, -1, -1]:MSE 从 3 降到 2,但第一个样本的 |r| 从 1 升到 2。共享指标变好,不代表每个样本都变好。

4. 差商与导数#

对这份固定数据,MSE 恰好是下面这个二次函数:

L(b) = 2 + (b - 6)^2
L'(b) = 2(b - 6)
[L(b + h) - L(b)] / h = 2(b - 6) + h, h != 0

h -> 0 时差商趋于导数。不能直接代 h = 0,那是除以 0;差商只是有限 h 上可算的近似。局部有 ΔL ≈ L'(b) Δb,只在小步长附近成立,不是全局恒等式。

b h=0.1 h=0.01 h=0.001 差商极限
5 -1.9 -1.99 -1.999 -2
6 0.1 0.01 0.001 0
7 2.1 2.01 2.001 2

以上展开由教师给出,不是学生证明。符号规则:L'(b) > 0 时 b 略减可降 L,L'(b) < 0 时 b 略增可降 L。前提是足够局部且可导,步长不能任意大;本课不教正式 gradient descent 算法。

5. 导数为零不等于最小#

b = 6 左侧取 Δb = -0.1 得 ΔL = +0.01、差商 -0.1;右侧取 Δb = +0.1 也得 ΔL = +0.01、差商 +0.1。两边 L 都升高,不是两边变化率都为正;导数 0 时 L 仍可按 h^2 变化。

L'(6) = 0 只说明该点切线水平,不保证最小值。教师给过的反例是 f(b) = -b^2 在 b = 0 取最大值。对这份固定 X、w、y,直接配方即可判定:

L(6 + h) = 2 + h^2 >= 2 = L(6)

所以 b = 6 是全局最小。但 L = 2 不是 0:residual 为 [2, -1, -1]。完美预测当且仅当所有 r_i = 0,不是导数等于 0。扫点只说明测过的候选里谁最好,不证明所有实数上都最好;有限 h 的差商是近似,不等于精确导数。

6. 实现易错点#

  • h = 0 那行只作基线,不能拿去除以 offset;基线必须配对同一个 b。
  • res[(bias - 4) * 4] 这种索引依赖起始值、循环顺序和每组 4 个 offset,条件一改就会取错基线。

7. 速查#

  • b 是共享偏移,增加 h 就给每个 residual 加 h。
  • 差商要求 h != 0,导数取 h -> 0;L'(b) 的符号只指示局部挪动方向。
  • L'(b) = 0 不保证最小,也不保证预测完美;判定最小值要看函数值比较。

来源:数组与广播基础沿用 NumPy: the absolute basics for beginners;本课的变化率、导数与二次函数推导为教师补充,未新增外部微积分来源。

上一课:01 前向预测与 MSE。

本文于2026-10-26整理公开,日期为导入日期。