Bias-Variance Tradeoff

补充笔记 · 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 选择,都是平行的「构造估计量」选择。

相关推荐
掘金小豆1 小时前
Spring AI 实战:从一次可运行的模型调用到 RAG 体系
后端·程序员·ai编程
前端小万1 小时前
探索副业五个月,最终以放弃告终
前端·后端·面试
今天早睡1 小时前
TypedDict 还是 Pydantic?
后端
木易 士心1 小时前
Java 后端驱动远程手机自动化:ADB + Python + 内网穿透实战全解
java·后端·智能手机·自动化
薛定谔的悦1 小时前
从论文公式到 BMS 固件:FreeRTOS 与 EKF SOC 的工程结合
后端
用户1494484813201 小时前
从入口拦截到最终对账:我如何设计一套高并发秒杀系统
后端·架构
Jeromefromhk1 小时前
把服务器当代码管
后端
闽林致远1 小时前
C++ 插件化后台服务架构实践
后端
用户125758524361 小时前
GoFrame Vue3开源后台管理系统推荐:数据库与Worker要求怎么验
数据库·后端·go