补充笔记 · Bias-Variance Tradeoff(金字塔结构梳理)
来源:Unit 2 additional-readings 延伸讨论 + 跨场景梳理(RL / LLM / 经典 ML) 用途:复习 bias-variance 的统一框架。按金字塔原理组织:塔尖=核心结论,塔身=支撑论点,塔基=细节例子。
🔺 塔尖:核心结论(一句话)
bias/variance 是「用数据估计未知量」这件事的两个属性:bias = 准不准(系统性偏离真值),variance = 稳不稳(换批样本波动多大)。它们是【整个估计流程】的属性,不是模型大小或训练方法单独的------模型大小、回归目标(MC/TD)、损失函数、数据量、正则化都是改变估计量的「旋钮」,拧任何一个都会动 bias/variance。不同领域谈不同旋钮,只因为那里主导杠杆不同。
🔹 塔身:四个支撑论点
论点一:精确定义------bias 和 variance 都是「跨样本」的统计量
bias = 系统性偏离(准不准)
ini
bias = E[估计值] − 真值
- 跨很多批样本 取平均后还偏 = 高 bias
- 直观(打靶):弹着点整体偏离靶心
variance = 波动(稳不稳)
ini
variance = E[(估计值 − E[估计值])²]
- 跨很多批样本 ,估计值彼此散布多大(围绕自己的平均,不是围绕真值)
- 直观(打靶):弹着点散开多远
关键区分:变样 ≠ 偏,不变样 ≠ 准
- 个体波动大(高 variance)但平均可能准(低 bias)------随机波动会抵消
- 个体稳定(低 variance)但平均可能偏(高 bias)------稳定地偏同一方向
数字例子(真值 f(x) = 5)
| 模型 | 5 批数据的预测 | 平均 | bias | variance |
|---|---|---|---|---|
| 复杂模型 | 2, 8, 4, 9, 2 | 5(=真值) | 低(平均准) | 高(散布大) |
| 简单模型 | 3.0, 3.1, 2.9, 3.0, 3.2 | 3.04(≠5) | 高(平均偏) | 低(散布小) |
复杂模型个体都「不准」(2≠5, 8≠5),但随机分布在 5 两边 → 平均=5 → bias 低。 简单模型个体都「稳定」(~3),但系统性偏 → 平均=3.04≠5 → bias 高。
打靶四象限
| bias 低 | bias 高 | |
|---|---|---|
| variance 低 | 密集在靶心 ✅ | 密集在靶心外(整体偏) |
| variance 高 | 散开但中心=靶心 | 散开且中心偏 ❌ |
论点二:四个旋钮统一框架------bias/variance 是整个估计流程的属性
估计量 = 模型类 ∘ 回归目标 ∘ 损失函数 ∘ 数据 ∘ 正则化
css
一个估计量(estimator)由五部分构成,拧任何一个都改 bias/variance:
旋钮 A:模型类(大小/复杂度) → 改变「能表示什么」
旋钮 B:回归目标(MC/TD, OLS/Ridge)→ 改变「用什么当 target」
旋钮 E:损失函数(MSE/MAE/Huber) → 改变「用什么误差度量去优化」
旋钮 C:数据(量/质量) → 改变「多少随机样本」
旋钮 D:正则化(dropout/KL/early stop)→ 改变「约束多强」
旋钮 E(损失函数)单独说明
同一个回归目标,换 loss 会得到不同的估计量:
| Loss | 估计的是 | bias/variance |
|---|---|---|
| MSE(L2) | 条件均值 | 高斯噪声下无偏;对 outlier 极敏感 → 有 outlier 时 variance 暴涨 |
| MAE(L1) | 条件中位数 | 对 outlier 鲁棒 → 重尾下 variance 低;噪声不对称时有 bias |
| Huber | 两者拼接 | δ 参数 = 字面上的 bias-variance 拨盘(小误差二次无偏、大误差线性鲁棒) |
实际例子:
- LLM label smoothing:故意引入 bias(软标签)换 variance 下降(不过度自信/不过拟合标签噪声)
- DQN 用 Huber 代替 MSE:压制大 TD error 的剧烈拉动 → 训练更稳(variance 低)
- 深层点 :经典分解
测试误差 = bias² + variance + 噪声只对 squared loss 精确成立;换 0-1/cross-entropy 要用广义分解(ambiguity decomposition)。loss 还决定了这个框架以什么形式适用。
平行性:MC/TD = OLS/Ridge = 小/大模型
| 领域 | 旋钮 B(回归目标)的两个选择 | bias/variance |
|---|---|---|
| RL | MC(用 G_t)vs TD(用 R+γV(S')) | MC 低 bias 高 variance;TD 高 bias 低 variance |
| 回归 | OLS(无约束)vs Ridge(加 L2) | OLS 低 bias 高 variance;Ridge 高 bias 低 variance |
| LLM | 小模型 vs 大模型 | 小模型高 bias 低 variance;大模型低 bias 高 variance |
MC/TD 之于 RL,就像 OLS/Ridge 之于回归、小/大模型之于 LLM------都是「怎么构造估计量」的不同选择,数学上完全平行。
为什么不同领域谈不同旋钮
| 场景 | 主导旋钮 | 为什么 | 你听到的说法 |
|---|---|---|---|
| 经典 ML / LLM | A 模型大小 | 算法固定(SGD),数据固定,能调的主要是模型多大 | 「越大 variance 越高」「U 形曲线」 |
| RL(MC vs TD) | B 估计公式 | 模型常固定(Q 表/固定网络),能调的主要是用 G_t 还是 R+γV' | 「TD 低 variance」「MC 高 variance」 |
| 数据科学 | C 数据量 | 模型算法固定,能调的是收多少数据 | 「数据越多 variance 越低」 |
| 正则化调参 | D 约束强度 | 显式拨盘 | 「正则化用 bias 换 variance」 |
不是「有时看模型、有时看方法」,而是「模型和方法都是估计量的组成部分,改哪个都改 bias/variance,不同场景主导杠杆不同」。
论点三:经典图像 vs 现代修正
经典 U 形曲线(bias-variance tradeoff)
模型复杂度 低 ────────────────→ 高
bias 高(够不到真值) 低(能拟合任何东西)
variance 低(被约束,换数据也差不多) 高(对噪声敏感,换数据就变样)
总误差 高 → 最低点 → 高(U 形)
- 欠拟合 = 高 bias + 低 variance(笨得稳定)
- 过拟合 = 低 bias + 高 variance(聪明但敏感)
- 调复杂度 = 在 bias 和 variance 之间找平衡
现代修正:double descent(双下降)
markdown
测试误差
|\
| \ /\ ← 插值阈值(峰值:模型刚好能完美拟合训练数据)
| \ / \
| \ / \________ ← 第二次下降
| \ /
| \/ ← 经典 U 形最低点
+──────────────────────→ 复杂度
关键纠正(常见误解):
- ❌ 不是「达到多少 B 参数进入第二次下降」
- ✅ 是「越过插值阈值 后再降」,阈值取决于数据量和模型家族,不是固定 B 数
- x 轴是复杂度 (参数量 / epoch 数 / 特征数 / 正则化倒数),不只是参数量
- epoch-wise 双下降:不加参数、只训更久也能出现 → 证明和绝对参数量无关
- LLM 极度过参数化 → 早就在第二下降区 → 经验上「bigger is better」,没有「到 XB 才触发」一说
- 机制仍是活跃研究(benign overfitting、NTK 等),不是 settled 规则
论点四:两个场景的具体样子(落地)
RL 游戏(Frozen Lake / Lunar Lander / Atari)
被估计的是 Q 值 / V 值(及导出的 policy)。
| bias 大 | bias 小 | variance 大 | variance 小 | |
|---|---|---|---|---|
| 症状 | 自信地一直犯同一个错(Q 系统性偏) | 大方向对(Q 平均准) | 同状态行为忽对忽错、训练曲线锯齿震荡 | 行为一致、曲线平滑上升 |
| Frozen Lake | 一直不往右走(Q(右) 被系统性低估,bootstrapping 用了 V=0) | 多局平均能到终点 | Q(起点,右) 被 MC 更新得忽高忽低(G_t 在 −10~+10 摆) | TD 更新小步微调,成功率稳步到 100% |
| Lunar Lander | value 系统性低估着陆价值 → 一直提前坠毁 | 大多数局能着陆 | ep_rew_mean 大幅震荡(−50→+100→−80) | ep_rew_mean 平滑上升 |
| 最佳 | --- | --- | --- | 训练充分后 bias 低 + variance 低 ✅ |
Q-Learning(TD)受欢迎的原因:低 variance 让训练稳定,bias 靠多训练慢慢减小。
LLM 微调(LoRA)
被估计的是任务能力。
| bias 大(欠拟合) | bias 小 | variance 大(过拟合) | variance 小 | |
|---|---|---|---|---|
| 原因 | rank 太小 / epoch 太少 | rank 够大 | rank 太大 + 数据太少 | rank 适中 + 数据够 + 正则化 |
| 症状 | 系统性学不会,换数据也一样差;训练测试都差 | 有能力学会任务 | 训练集完美但测试集崩;换数据微调「性格」大变;输出不稳定 | 稳定可复现,泛化好 |
| LoRA 例子 | r=1 微调医疗问答 → 还是泛泛而谈,系统答不准 | r 适中 → 大多数问题答对 | r=256 + 50 条数据 → 死记硬背,新问题胡言乱语;换 50 条重训行为全变 | r 适中 + 数据多样 + dropout → 换数据微调行为稳定 |
调 LoRA rank r = 在 bias-variance 之间找平衡:r 小→高 bias(学不动);r 大→高 variance(过拟合)。
共同骨架
- bias = 系统性偏:RL「一直犯同一个错」/ LLM「一直学不会」
- variance = 对随机样本敏感:RL「行为忽对忽错、曲线抖」/ LLM「换数据就变样、输出不稳定」
🔻 塔基:实用结论(这个 tradeoff 现在还活跃吗)
| 领域 | 活跃吗 | 工作中怎么碰到 |
|---|---|---|
| RL(游戏/控制) | ✅ 显式核心 | 调 PPO 的 gae_lambda/gamma(λ→0 偏 TD,λ→1 偏 MC,就是 bias-variance 拨盘);Double Q 治 maximization bias |
| LLM 监督微调 | ⚠️ 概念在、术语淡出 | 调 LoRA rank、epochs、数据量、正则化;口语说「过拟合/泛化」而非「variance」 |
| RLHF(RL+LLM) | ✅ 非常活跃 | KL penalty = 用 bias 换 variance;reward model 过拟合 = variance 失控;PPO+GAE 又回到 λ 拨盘 |
| 现代 DL 理论 | 🔄 被修正中 | double descent、benign overfitting 让经典 U 形变微妙,但核心区分仍根本 |
一句话 :bias-variance 没过时。RL 里是显式旋钮(你跑 PPO 已在调),LLM 里换了口语词(过拟合/泛化/正则化)但概念无处不在,RLHF 里两者合流最活跃。只是现代超大模型让「复杂度→variance」的经典映射变微妙(double descent)。
关键术语对照
| 中文 | English |
|---|---|
| 偏差 / 方差 | bias / variance |
| 偏差-方差权衡 | bias-variance tradeoff |
| 估计量 | estimator |
| 系统性偏离 | systematic deviation |
| 波动 / 散布 | fluctuation / spread |
| 欠拟合 / 过拟合 | underfitting / overfitting |
| 插值阈值 | interpolation threshold |
| 双下降 | double descent |
| 良性过拟合 | benign overfitting |
| 模型类 / 假设空间 | hypothesis class / hypothesis space |
| 自举 | bootstrapping |
| 正则化 | regularization |
| 岭回归 | Ridge regression |
| 普通最小二乘 | OLS (Ordinary Least Squares) |
| 广义优势估计 | GAE (Generalized Advantage Estimation) |
| 低秩适配 | LoRA (Low-Rank Adaptation) |
一句话记忆(塔尖浓缩)
bias = 准不准(平均偏离真值);variance = 稳不稳(对抽到哪批数据敏感)。 两者都是【整个估计流程】的属性------模型大小、回归目标(MC/TD)、损失函数(MSE/MAE/Huber)、数据量、正则化都是改它的旋钮,拧哪个都动 bias/variance,不同场景主导杠杆不同。 变样 ≠ 偏,不变样 ≠ 准:个体波动大但平均可能准(低 bias 高 variance),个体稳定但平均可能偏(高 bias 低 variance)。 MC/TD 之于 RL = OLS/Ridge 之于回归 = 小/大模型之于 LLM = MSE/MAE 之于 loss 选择,都是平行的「构造估计量」选择。