机器学习模型训练完成后,表现不好通常有两种典型原因。

一种是模型没有学到足够有效的规律,训练集和新样本上都表现较差;另一种是模型对训练数据适应得过于具体,训练集上很好,面对新样本却明显失效。

前者称为欠拟合,后者称为过拟合

判断模型属于哪一种失败,比盲目增加网络规模、训练轮数或数据数量更重要。因为两类问题的表现不同,解决方法甚至可能完全相反。


一、欠拟合:模型没有学会

欠拟合是指模型的表达能力或训练程度不足,不能充分描述数据中的主要规律。

典型表现是:

  • 训练集误差较大;
  • 验证集和测试集误差也较大;
  • 预测结果过于平滑或简单;
  • 重要变化趋势没有被捕捉;
  • 增加训练轮数后,误差仍然较高。

例如,用一个过于简单的线性模型预测具有多重谐振和强非线性特征的电磁响应,模型可能只能拟合总体趋势,却无法描述局部峰值和突变。

这不是模型“太谨慎”,而是模型根本没有足够能力表示目标关系。

欠拟合常见原因包括:

  1. 模型过于简单;
  2. 输入特征不足;
  3. 训练时间不够;
  4. 优化过程没有有效收敛;
  5. 正则化过强;
  6. 数据本身不能支持任务;
  7. 输入与输出之间不存在稳定、可辨识的映射。

需要注意,最后一种情况不能仅靠扩大模型解决。

如果输出还受到大量未观测变量影响,那么即使模型非常复杂,也不可能仅根据当前输入准确预测结果。


二、过拟合:模型把训练数据学得过于具体

过拟合是指模型在训练数据上表现很好,但对未参与训练的新样本表现明显下降。

典型表现是:

  • 训练误差持续降低;
  • 验证误差先降低,随后开始上升;
  • 训练集和测试集性能差距较大;
  • 模型对噪声和细微扰动非常敏感;
  • 少量输入变化可能引起不合理输出变化。

例如,一个参数量很大的神经网络使用少量天线样本训练,可能记住每个训练样本附近的局部特征,在训练集上得到极低误差。但面对新的结构组合时,预测误差迅速增大。

模型看起来“学得很好”,实际上学得过于具体。

过拟合常见原因包括:

  1. 模型复杂度相对于数据规模过高;
  2. 训练数据数量不足;
  3. 数据覆盖范围狭窄;
  4. 数据中存在噪声或错误标签;
  5. 训练时间过长;
  6. 反复根据验证结果调整,导致验证集也被过度适应;
  7. 数据泄漏使性能看起来虚高。

因此,过拟合不是简单的“模型太大”,而是模型能力、数据条件与训练过程之间不匹配。


三、如何从训练曲线判断问题

训练误差和验证误差的变化,可以帮助判断模型状态。

情况一:训练误差和验证误差都高

通常说明模型欠拟合。

可能原因包括:

  • 模型容量不足;
  • 训练不充分;
  • 输入信息不足;
  • 优化设置不合理。

情况二:训练误差低,验证误差高

通常说明模型过拟合。

模型已经很好地适应训练样本,但没有形成可推广的规律。

情况三:训练误差和验证误差都较低,差距不大

通常是理想状态。

但这仍然不能替代最终独立测试,还需要检查:

  • 测试集是否真正独立;
  • 是否存在数据泄漏;
  • 是否覆盖实际应用范围;
  • 最大误差是否可接受。

训练曲线是诊断工具,不是最终质量证明。


四、偏差与方差的工程直觉

欠拟合和过拟合常用偏差与方差来解释。

高偏差

高偏差表示模型过于简单,对不同数据集都会得到相似但不够准确的结果。

直观上看,模型带有过强的预设,无法充分适应真实规律。

高偏差通常对应欠拟合。

高方差

高方差表示模型对训练数据变化过于敏感。

如果更换一批训练样本,模型结果可能发生较大变化。它没有学到稳定规律,而是依赖具体样本细节。

高方差通常对应过拟合。

可以简单理解为:

欠拟合:模型过于僵硬,重要规律也学不到

过拟合:模型过于灵活,把偶然细节也当成规律

机器学习需要在二者之间取得平衡。

但偏差—方差不是要求我们找到一个抽象的数学最优点,而是帮助判断:

当前误差主要来自模型能力不足,还是来自模型对有限数据过度敏感?


五、怎样处理欠拟合

当模型欠拟合时,可以考虑:

  • 增加模型容量;
  • 增加有效输入特征;
  • 延长训练;
  • 调整学习率和优化方法;
  • 减弱过强正则化;
  • 重新定义任务;
  • 检查数据和标签是否存在错误。

但不能机械地扩大网络。

如果问题本身定义不合理,例如输入中缺少决定输出的重要变量,扩大模型只会增加复杂度,并不能补回缺失信息。

因此,处理欠拟合前应先确认:

  1. 任务是否可学习;
  2. 输入是否包含足够信息;
  3. 数据是否正确;
  4. 模型是否真的完成有效训练。

六、怎样处理过拟合

处理过拟合的核心,是减少模型对训练样本偶然细节的依赖。

常见方法包括:

  • 增加具有覆盖性的新数据;
  • 降低模型复杂度;
  • 使用正则化;
  • 提前停止训练;
  • 改善数据划分;
  • 减少无效或噪声特征;
  • 使用数据增强;
  • 对多个模型进行集成;
  • 加入合理的物理约束。

其中最容易被误解的是“增加数据”。

增加大量高度相似的样本,未必能有效缓解过拟合。真正有帮助的是增加能够扩展设计空间、覆盖困难区域和代表实际应用的数据。

对于电磁问题,合理物理约束也可能降低模型自由度,排除明显不合理的映射。但物理约束是否有效,仍取决于约束本身是否正确。


七、模型越复杂越好吗

模型复杂度提高,通常能够更好地拟合训练数据。

但训练误差持续下降,并不意味着模型质量持续提高。

一个复杂模型可能:

  • 更准确地描述真实规律;
  • 也可能更准确地记住噪声;
  • 需要更多数据;
  • 增加训练成本;
  • 降低可解释性;
  • 提高部署和维护难度。

因此,选择模型不能以参数量作为先进性的标准。

更合理的原则是:

在满足工程精度和可靠性要求的前提下,优先使用能够稳定泛化的最简单模型。

如果简单模型已经达到目标,就没有必要使用更复杂的网络。


八、学习者认识的修正

初步认识: 模型太小会欠拟合,模型太大、样本太少会过拟合。

这个判断是正确的基本直觉,但还不完整。

欠拟合和过拟合不仅由模型大小决定,还受到以下因素影响:

  • 输入信息;
  • 数据质量;
  • 数据覆盖;
  • 噪声;
  • 正则化;
  • 训练时间;
  • 优化过程;
  • 任务可辨识性。

因此,更准确的判断是:

欠拟合和过拟合反映的是模型能力、数据条件和训练过程之间是否匹配,而不能只根据网络大小作出结论。


九、本节小结

欠拟合和过拟合是模型失败的两种典型形式。

需要记住:

  1. 欠拟合表现为训练集和新数据都较差;
  2. 过拟合表现为训练集很好、新数据较差;
  3. 高偏差通常对应欠拟合,高方差通常对应过拟合;
  4. 模型复杂度不是越高越好;
  5. 解决问题前,应先判断误差来自模型能力不足,还是对有限样本过度适应。

下一节将讨论另一个常见误区:

模型训练时优化的损失函数,是否真正等于工程应用关心的性能?