← 返回题目列表

学习曲线是什么?怎么用它诊断过拟合和欠拟合?

高频 中等 第 9 / 25 题 更新于 2026/08/02
模型评估学习曲线过拟合欠拟合

简化版

学习曲线(Learning Curve) 是把训练集误差验证集误差随「训练样本数量」(或训练轮数)变化画出来的两条曲线,用来诊断模型当前是欠拟合还是过拟合。判断方法:① 欠拟合(高偏差)——训练误差和验证误差都高、且很接近(模型太简单,加数据也救不了);② 过拟合(高方差)——训练误差很低、验证误差,两者之间有明显的大间隙(模型背下了训练集但泛化差,加数据能缓解);③ 好模型——两条曲线都收敛到较低水平、间隙小。看出是哪种问题后,就能对症下药(欠拟合增强模型、过拟合加正则/加数据)。

详细版

学习曲线的两条线:

  • 训练误差:模型在训练集上的误差,随样本数增加通常上升(样本多了更难全背对)。
  • 验证误差:模型在验证集上的误差,随样本数增加通常下降(学到更多规律、泛化变好)。

三种典型形态:

形态训练误差验证误差间隙诊断
欠拟合(高偏差)小(都高且接近)模型太简单
过拟合(高方差)模型太复杂/数据少
良好拟合合适

对症下药:

  • 欠拟合:增加模型复杂度、加特征、减正则、训练更久——仅增加同分布数据通常收益有限
  • 过拟合:加数据(最有效)、加正则、简化模型、Dropout/早停、特征选择。

完整版教学

一、学习曲线在看什么

学习曲线把两条误差曲线画在一起:横轴是训练样本数量(也有版本用训练轮数/迭代次数),纵轴是误差(或准确率),两条线分别是:

  • 训练集误差:模型在它训练用的数据上的表现。
  • 验证集误差:模型在没见过的验证数据上的表现(泛化的代表)。

通过观察这两条曲线的高低它们之间的间隙,就能判断模型当前的「病症」——是欠拟合(高偏差) 还是过拟合(高方差),从而知道下一步该怎么改进。它是模型诊断最直观的工具。

这里通常指训练集规模—训练与验证得分,不要和 epoch—loss 的训练历史混为一谈。前者诊断数据量、偏差与方差,后者更多诊断优化、收敛与早停时机。

每个训练规模应重复抽样并展示均值与误差带;只取一次子样本,会把抽样偶然性误判成模型趋势。

二、两条曲线随样本数怎么变(正常趋势)

先理解正常趋势:

  • 训练误差随样本增多而上升:样本很少时,模型容易把它们全「背」对,训练误差极低;样本越多,越难完美拟合所有点,训练误差逐渐上升并趋于平稳。
  • 验证误差随样本增多而下降:样本越多,模型学到的规律越普适、泛化越好,验证误差逐渐下降并趋于平稳。

两条线最终会收敛靠拢到某个水平——收敛到的高度它们之间的间隙,就是诊断的关键。

趋势是期望意义上的,不要求每个采样点严格单调。样本难度、优化随机性和超参数未重调都会造成局部波动。

横轴:训练样本数
纵轴:训练与验证指标
附加:重复抽样均值 ± 标准差或置信区间

accuracy、AUC 等分数越大越好,而 loss 越小越好,回答时必须先说明纵轴定义。

三、诊断一:欠拟合(高偏差)——两线都高且接近

误差
 │\____验证误差____ 高
 │ ‾‾‾‾训练误差‾‾‾‾ 高    ← 两条线都停在高位、贴得很近

 └──────────────→ 训练样本数

特征:训练误差和验证误差都高,而且两者很接近、间隙小

含义:模型太简单,连训练集都拟合不好(训练误差就高),说明能力不足、高偏差、欠拟合

关键判断加更多数据也没用——曲线已经收敛且都停在高位,再多数据也降不下去(模型本身能力不够)。

对策(降偏差):增加模型复杂度、增加/构造特征、减少正则化、训练更久、换更强的模型。

四、诊断二:过拟合(高方差)——训练低、验证高、间隙大

误差
 │‾‾‾‾验证误差‾‾‾‾ 高
 │        ↕ 大间隙(gap)
 │____训练误差____ 低      ← 训练误差很低,验证误差高,中间隔很大

 └──────────────→ 训练样本数

特征:训练误差很低(几乎完美拟合训练集),但验证误差明显更高,两者之间有很大的间隙(gap)

含义:模型太复杂(或数据太少),把训练集的噪声细节都背下来了,但泛化差、高方差、过拟合

关键判断加更多数据通常有效——从曲线趋势看,随着样本增多,验证误差还在下降、间隙在缩小,说明再喂数据能继续缓解过拟合。

对策(降方差)增加训练数据(最有效)、加正则化、简化模型、Dropout/早停、特征选择、集成(Bagging)。

五、诊断三:良好的模型

特征:训练误差和验证误差都收敛到较低水平,且间隙小。说明模型复杂度和数据量匹配得好、拟合适当、泛化良好。这是我们调优要达到的目标状态。

训练与验证曲线接近只说明估计到的泛化间隙小,不代表绝对性能足够。两线都停在 60% 仍可能是高偏差;两线在 95% 是否好,还取决于基线、不可约误差与业务门槛。

还要检查独立测试集和分布漂移。若切分方式泄露实体或线上分布不同,漂亮的交叉验证曲线也不能迁移。

六、学习曲线的实用价值——决定「加数据还是改模型」

学习曲线最大的实用价值,是回答一个常见纠结:「效果不好,是该收集更多数据,还是该换/调模型?」

  • 如果是欠拟合(两线都高且接近)别浪费钱收集数据——仅增加同分布数据通常收益有限,应该增强模型(更复杂、更多特征、减正则)。
  • 如果是过拟合(间隙大、验证误差还在降)加数据是最有效的,同时配合正则化、简化模型。

这个判断能避免在错误的方向上投入资源——这正是学习曲线相对于「只看一个最终指标」的价值。

是否收集更多数据,要看验证曲线末端斜率、采集成本和新数据能否覆盖错误区域。高方差且验证分数仍随规模上升时,增加代表性数据较有希望;曲线已平台化时,改善标签、特征或模型假设往往更有效。

诊断优先实验
高偏差、两线接近且都差更强模型、特征、减弱正则
高方差、间隙较大更多代表性数据、正则、简化模型
两线波动很大重复采样、检查优化稳定性

这些是实验优先级,不是因果保证;每次只改一个主变量并用同一协议复验。

七、常见追问

  • 学习曲线横轴是什么? 训练样本数量(诊断偏差/方差),也有用训练轮数的版本(看训练过程、配合早停)。
  • 怎么看欠拟合? 训练误差和验证误差都高且接近——模型太简单,仅增加同分布数据通常收益有限。
  • 怎么看过拟合? 训练误差低、验证误差高、间隙大——加数据、加正则有效。
  • 加数据一定有用吗? 通常对高方差更有帮助;欠拟合(高偏差)仅增加同分布数据通常收益有限,要增强模型。
  • 和偏差-方差什么关系? 学习曲线是偏差-方差权衡的可视化诊断工具:两线都高=高偏差,间隙大=高方差。
  • 验证曲线(validation curve)是什么? 另一种曲线:横轴是某个超参数,看误差随超参数变化,用来调单个超参数。

八、用三档样本量区分平台期与仍可获益

假设同一模型在不同训练规模下得到以下交叉验证均值。训练误差从 0.08 升到 0.13,验证误差从 0.30 降到 0.18,间隙由 0.22 缩到 0.05,说明增加数据正在缓解方差;若两条曲线都在 0.30 左右早早平台,则应优先改特征或模型容量。

训练样本数训练误差验证误差间隙
5000.080.300.22
2,0000.110.220.11
8,0000.130.180.05
每个规模 m:
  从训练池抽 m 个样本
  在固定 CV/验证协议下重新拟合
  记录训练分数与验证分数的均值、误差条

训练误差“上升”、验证误差“下降”是期望趋势而非每个有限样本点的定律,抽样噪声会让曲线抖动。学习曲线横轴是数据量;横轴为 epoch 的训练/验证损失曲线主要用于看优化过程和早停,两者不要混称。

易错点:只有当曲线已形成稳定趋势和平台,才有资格说“加数据收益小”或“仍值得加数据”。

九、常见误区与追问

  • 误区:欠拟合时增加数据永远毫无价值。 在当前模型与表示已稳定平台时边际收益通常小,但新覆盖的分布仍可能有用。
  • 误区:训练误差必须随样本数严格单调上升。 这是期望上的常见趋势,有限抽样与优化随机性会产生波动。
  • 追问:曲线为什么要画误差条? 不同抽样或折的波动能判断表面差异是否稳定。
  • 追问:过拟合就一定优先收集数据吗? 还要比较采集成本与正则、特征、模型简化的收益。
  • 追问:验证曲线和学习曲线有什么区别? 验证曲线横轴通常是某个超参数,学习曲线横轴是训练规模。

十、加强记忆

学习曲线 = 训练误差和验证误差随训练样本数变化的两条曲线,用来诊断欠拟合/过拟合。正常趋势:训练误差随样本增多上升、验证误差下降,最终收敛。三种形态:① 欠拟合(高偏差)——两线都高且贴近、间隙小,模型太简单,仅增加同分布数据通常收益有限,要增强模型② 过拟合(高方差)——训练误差、验证误差高、间隙大,模型太复杂/数据少,加数据(最有效)+ 正则/简化/早停③ 良好——两线都低、间隙小。核心实用价值:判断「该加数据还是该改模型」——欠拟合改模型、过拟合加数据。它就是偏差-方差权衡的可视化诊断工具