文章

02 Bias(偏差)与 Variance(方差)

02 Bias(偏差)与 Variance(方差)

一、核心概念:偏差与方差

  在机器学习中,模型的泛化误差(Generalization Error)可分解为三部分:

\[\text{总误差} = \text{偏差}^2 + \text{方差} + \text{不可约误差(噪声)}\]
  • 偏差(Bias) :模型对训练数据的拟合能力不足,即“欠拟合”(Underfitting)。
  • 方差(Variance) :模型对训练数据过度敏感,导致在新数据上表现差,即“过拟合”(Overfitting)。
  • 不可约误差(Irreducible Error) :由数据本身的噪声决定,无法通过模型消除。

在理想情况下(人类性能接近 0% 错误),我们假设最优误差(Bayes Error 或 Base Error)≈ 0%,此时可通过训练误差和开发集误差判断偏差与方差。


二、如何诊断偏差与方差?

假设条件:

  • 训练集与开发集(Dev Set)来自同一分布;
  • 最优误差(Base Error)≈ 0%(例如人类几乎能完美分类猫图)。

诊断指标:

  • 训练误差(Train Error) → 反映偏差
  • 开发集误差(Dev Error) → 结合训练误差反映方差
情况训练误差开发误差诊断
1很低(如 1%)显著更高(如 11%)高方差(过拟合)
2很高(如 15%)略高(如 16%)高偏差(欠拟合)
3很高(15%)更高(30%)高偏差 + 高方差(最差情况)
4很低(0.5%)很低(1%)低偏差 + 低方差(理想)

关键判断逻辑

  • 训练误差高 → 高偏差;
  • 开发误差远高于训练误差 → 高方差。

三、可视化理解(2D 示例)

  • 高偏差:用线性模型拟合非线性数据(如直线拟合弯曲边界)→ 欠拟合。
  • 高方差:用极复杂模型(如深度神经网络)完美拟合训练点,但决策边界扭曲 → 过拟合。
  • “Just Right” :中等复杂度模型,合理拟合数据趋势。

💡 在高维空间无法可视化,因此依赖 训练/开发误差数值分析


四、特殊情况:当 Base Error 不为 0

  若任务本身困难(如图像极度模糊),人类也无法准确判断,则 Base Error 可能较高(如 15%)

  此时判断标准需调整:

  • 若训练误差 ≈ Base Error → 偏差低
  • 若开发误差 ≈ 训练误差 → 方差低

例如:Base Error = 15%,训练误差 = 15%,开发误差 = 16% → 实际是良好模型,而非高偏差!

⚠️ 此时不能直接用绝对误差值判断,而应看 相对于 Base Error 的差距


五、高偏差 + 高方差的混合情况

  虽然在 2D 中看起来“人为构造”,但在高维真实场景中确实存在:

  • 模型整体过于简单(如线性)→ 高偏差
  • 但在某些局部区域过度拟合噪声或异常点 → 高方差

  例如:一个大致线性的分类器,却在中间区域“绕弯”去拟合两个离群点。

这说明:偏差和方差不是互斥的,一个模型可能同时存在两种问题。


六、实践启示:下一步该怎么做?

  根据诊断结果,采取不同策略:

问题类型可能的解决方案
高偏差(欠拟合)- 增加模型容量(更深/更宽网络)
- 改进特征工程
- 减少正则化
- 训练更长时间
高方差(过拟合)- 获取更多训练数据
- 正则化(L2、Dropout)
- 减少模型复杂度
- 数据增强
高偏差 + 高方差- 需要平衡:先解决偏差(提升模型能力),再控制方差(加正则化/更多数据)

🔜 吴恩达将在下一节介绍 “机器学习基本配方”(Basic Recipe for ML) ,系统化指导调优流程。


七、重要前提回顾

  1. 训练集与开发集同分布:否则误差比较无意义;
  2. Base Error 已知或可估计:通常用人 类性能近似;
  3. 误差指标一致:如都用分类错误率。

  若这些前提不成立,需更复杂的分析(后续课程讲解)。


总结口诀(便于记忆)

  • 训练错得多 → 偏差高(模型太弱)
  • 训练好、开发差 → 方差高(模型太飘)
  • 两者都差 → 又弱又飘(最糟)
  • 两者都好 → 刚刚好(目标)
本文由作者按照 CC BY 4.0 进行授权