- 文档
- 教程
【免费下载链接】machine-learning-yearning-cn
Machine Learning Yearning 中文版 - 《机器学习训练秘籍》 - Andrew Ng 著
本文聚焦《Machine Learning Yearning(机器学习训练秘籍)》中学习曲线解读的进阶场景:当训练误差与开发误差同时出现在一张图上时,如何通过两者的相对位置与间隙,准确区分算法处于高偏差(欠拟合)、高方差(过拟合)还是偏差方差双高状态。读完本文,你将掌握一套可复用的诊断流程:先绘制学习曲线,再依据两条曲线的走势与间距判定误差来源,最后选择"加数据"或"改模型"的正确行动方向。
一、回顾:学习曲线是什么,为什么不能只看开发误差
在进入本章"其它情况"之前,有必要先回顾学习曲线的基本绘制方法(详见 ch28 与 ch29)。
绘制学习曲线需要设置不同大小的训练集分别运行算法。例如有 1000 个样本,可以分别用 100、200、300……1000 个样本训练,然后得到开发集误差随训练集规模变化的曲线。核心观测结果有两个:
- 开发集(和测试集)误差通常随训练集规模增大而下降;
- 训练误差往往会随之上升——因为样本越少,算法越容易"记住"训练集,训练错误率可以低至 0%;样本越多,训练集本身越难被完全拟合(例如 100 个样本中可能混有模糊、误标注的样本)。
把两条曲线画在同一张图上,并叠加一条代表"期望错误率"(如人类水平错误率、产品体验所需错误率)的参考线,就构成了完整的诊断工具。训练误差曲线的作用尤为关键:它比开发误差曲线更平滑、更易外推,能帮你判断"继续加数据到底有没有用"(详见 ch30)。
二、第一种情况:低训练误差 + 高开发误差 = 高方差
第一种需要解读的情况如上图所示:
- 蓝色训练误差曲线相对较低;
- 红色开发误差曲线比训练误差高得多。
结论很明确:偏差很小,但方差很大。算法已经能很好地在训练集上拟合,却没有成功泛化到开发集上——这正是典型的过拟合(overfitting)信号。
此时,添加更多的训练数据是有望奏效的,因为它可能有助于缩小开发误差与训练误差之间的差距。这背后的直觉是:方差来自模型对特定训练样本的过度记忆,扩大数据规模能让模型学到更普适的规律,从而压低开发集上的误差。
三、第二种情况:高训练误差 + 更高的开发误差 = 偏差方差双高
第二种情况更为棘手,如上图所示:
- 训练误差很大,比期望性能水平高得多(远离绿色参考线);
- 开发误差比训练误差还要大。
此时结论是:学习算法同时存在明显的偏差和方差。它不仅没能拟合好训练集(高偏差),而且从训练集泛化到开发集的能力也很差(高方差)。
这种状态与 ch21 中"训练错误率 15%、开发错误率 30%"的例子完全对应:估算偏差约 15%、方差约 15%。由于分类器既过拟合又欠拟合,"过拟合/欠拟合"这类单一标签很难准确描述它。
针对这种双高状态,你必须同时寻找减少偏差和减少方差的方法:既要在训练集上做得更好(如加大模型规模),又要提升泛化能力(如增加数据、正则化),单方面行动都无法解决全部问题。
四、两种情况的解读依据与决策逻辑
把两种情况并排对比,可以提炼出两条普适的解读规则:
| 观测到的曲线形态 | 诊断结论 | 优先行动方向 |
|---|---|---|
| 训练误差低,开发误差远高于训练误差 | 低偏差、高方差(过拟合) | 增加训练数据,缩小两条曲线间的差距 |
| 训练误差高,开发误差更高 | 高偏差 + 高方差 | 同时降低偏差(如扩大模型)与方差(如增加数据、正则化) |
其背后的推理来自 ch20 对偏差、方差的非正式定义:
- 偏差≈ 算法在训练集上的错误率;
- 方差≈ 算法在开发/测试集上的表现低于训练集的程度。
再结合 ch22 的更精细分解——将总误差拆分为最优错误率(不可避免偏差)、可避免偏差(训练误差与最优错误率的差值)和方差(开发误差与训练误差的差值)——可以更精确地定位改进空间:当可避免偏差大时优先加大模型规模,当方差大时优先增加数据量(详见 ch23)。
需要特别注意的是:开发误差曲线通常严格位于训练误差曲线之上。因此,只要训练误差已经高于期望性能水平,通过加数据让开发误差降到期望值以下就基本没有可能——这正是"高偏差"学习曲线(见 ch30)给出的关键结论。而 ch31 的两种情况正好覆盖了"训练误差低"与"训练误差高"这两种截然不同的起点,形成完整的诊断闭环。
五、实操补充:绘制学习曲线时的噪声与成本控制
学习曲线解读的前提是曲线本身可信。结合 ch32,实际绘制时有两点值得注意:
小样本下的噪声处理:只用 10 个随机样本训练,可能恰好抽到"糟糕"子集(含模糊或误标注样本),也可能抽到特别"棒"的子集,导致训练/开发误差随机波动。当训练集偏向某个类(如 80% 负样本、20% 正样本)或类别很多时,抽到非代表性子集的概率更大。两种解决方案:一是做多次随机有放回抽样(如 3–10 批 10 样本),训练多个模型后取平均误差;二是选取"平衡"子集,让每个类的样本比例尽量接近原始训练集的总体比例。注意,只有当曲线确实嘈杂到看不清趋势时才需要这些技巧——训练集超过 10000 个样本且类别分布不倾斜时通常不需要。
计算成本控制:绘制学习曲线可能需要训练多个模型(如 10 个不同规模的模型)。小数据集训练快得多,因此可以用 1000、2000、4000、6000、10000 这样的非线性间隔替代线性均匀间隔(1000、2000……10000),既能看清趋势,又避免不必要的算力开销。只有训练额外模型的计算成本足够重要时,这种技术才有意义。
六、小结:一套完整的偏差/方差诊断流程
结合 ch28 至 ch32 五章内容,可以归纳出如下端到端诊断流程:
- 设定期望错误率:人类水平、产品体验所需水平或基于经验的主观预期;
- 绘制学习曲线:用递增的训练集规模训练多个模型,同时记录训练误差与开发误差,并叠加期望性能参考线;
- 解读曲线形态:训练误差低而开发误差高 → 高方差,加数据;训练误差高、开发误差更高 → 偏差方差双高,需双管齐下;训练误差高而两条曲线贴近 → 高偏差,应优先改模型(详见 ch30);
- 采取行动:高可避免偏差时加大模型规模(注意配合正则化),高方差时增加数据量(详见 ch23)。
学习曲线的价值在于:它能在你投入数月收集训练数据之前,提前告诉你"加数据这条路是否值得走"。而 ch31 给出的两种典型形态,正是帮助你在最短时间内完成这条路径判断的核心工具。
- 文档
- 教程
【免费下载链接】machine-learning-yearning-cn
Machine Learning Yearning 中文版 - 《机器学习训练秘籍》 - Andrew Ng 著
相关推荐
Astryx 主题所有权与物化(Materialization)系统规格:Follow/Own 生命周期、Detach/Freeze 与可验证的原子写入
Astryx 主题所有权与物化(Materialization)系统规格:Follow/Own 生命周期、Detach/Freeze 与可验证的原子写入 本指南
文档教程Forza Painter:专业车辆涂装转换工具在《极限竞速》中的高效应用
Forza Painter:专业车辆涂装转换工具在《极限竞速》中的高效应用 Forza Painter是一款专为《极限竞速:地平线》系列游戏设计的专业车辆涂装转
游戏开发图像处理Devanagari_PP-OCRv5_mobile_rec_onnx错误排查指南:常见问题与解决方案大全
Devanagari_PP OCRv5_mobile_rec_onnx错误排查指南:常见问题与解决方案大全 想要快速解决Devanagari文字识别模型部署中的
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考