Ch05 评估与特征工程

过拟合与欠拟合 (Overfitting & Underfitting)

一句话理解

过拟合 = 死记硬背训练数据,泛化能力差; 欠拟合 = 连训练数据都没学好,模型能力不足。两者都是模型学习失败的表现,需要不同的策略应对。

零基础比喻

比喻学生考试机器学习模型
过拟合把所有做过的题背下来,但换一道同类型的新题就不会做训练集loss很低,验证集loss很高
欠拟合上课没听,连最简单的题都做不对训练集loss也很高,模型根本没学会
理想状态理解了原理,做过的题会做,没做过的也会训练集和验证集loss都低,且差距小

检测方法

训练集 vs 验证集 Loss 曲线

过拟合的典型特征:

  • 训练loss持续下降,验证loss先降后升(形成”U形”或”对勾形”)
  • 训练loss远低于验证loss
  • 训练集准确率接近100%,验证集准确率停滞不前

欠拟合的典型特征:

  • 训练loss和验证loss都高,且差距不大
  • 两条曲线都趋于平缓但仍在高位
  • 训练集准确率本身就不高

学习曲线诊断表

观察现象诊断结论方向
训练loss高 + 验证loss高欠拟合增加模型复杂度
训练loss低 + 验证loss高过拟合减少复杂度/增加正则化
训练loss高 + 验证loss更高欠拟合+轻微过拟合先解决欠拟合
训练loss低 + 验证loss低良好保持

解决方案对比

应对过拟合的方法

方法原理效果计算成本适用场景
L1/L2正则化约束权重大小,限制模型复杂度中等低线性模型,神经网络
Dropout训练时随机丢弃神经元,相当于集成多个子网络强低全连接层,Transformer
早停 (Early Stopping)验证loss不再下降时停止训练强低(节省训练时间)几乎所有深度学习模型
数据增强 (Data Augmentation)通过变换生成更多训练样本很强中等CV(翻转/旋转), NLP(回译/替换)
更多训练数据增加数据多样性,覆盖更多情况最强高(数据采集成本)所有场景
降低模型复杂度减少层数/神经元/参数中等低(减少训练时间)小数据集
批归一化 (BatchNorm)稳定训练,隐式正则化轻度低CNN
权重衰减 (Weight Decay)等价于L2正则化,但实现更高效中等低所有神经网络

应对欠拟合的方法

方法原理效果适用场景
增加模型复杂度更多层/更多神经元/更多参数强模型容量不足
训练更久更多epoch中等训练不充分
降低正则化强度减少Dropout率/减少权重衰减中等正则化过强
特征工程构造更好的特征中等特征不足以表达模式
更换模型架构选择更适合任务的架构强架构与任务不匹配
调整学习率提高或降低学习率中等优化器配置不当

偏差-方差权衡 (Bias-Variance Tradeoff)

概念含义与过拟合/欠拟合的关系
偏差 (Bias)模型预测的期望与真实值的差距高偏差 → 欠拟合(模型太简单,学不到模式)
方差 (Variance)模型对训练数据微小变化的敏感度高方差 → 过拟合(模型太敏感,学到了噪声)
不可约误差 (Irreducible Error)数据本身的噪声,任何模型都无法消除数据质量的上限

偏差-方差分解:

  • 模型复杂度低: 高偏差,低方差(欠拟合)
  • 模型复杂度高: 低偏差,高方差(过拟合)
  • 最优复杂度: 偏差和方差之和最小

2026年视角: 过参数化模型的”双下降”现象

经典偏差-方差权衡认为模型太大(参数远多于样本)会过拟合。但现代深度学习观察到了双下降 (Double Descent) 现象:

阶段模型参数量测试误差现象
欠参数化远小于样本数随参数增加而下降经典偏差-方差
临界点约等于样本数峰值刚好能拟合所有训练数据
过参数化远超样本数再次下降!打破经典理论

解释: 过参数化模型通过隐式正则化(如SGD的隐式偏好)找到了泛化能力好的解。这也是为什么GPT-4等超大模型虽然有海量参数但不过拟合的原因之一。

相关笔记

来源

关联15

知识图谱

局部图谱 · 点节点跳转