mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
3837 字
10 分钟
实践学习方法论:偏差、优化与过拟合

本文整理实践方法论学习笔记,重点讨论模型训练中最常见的三类问题:偏差、优化困难与过拟合,并给出验证和诊断方法。

实践方法论:训练问题与诊断思路#

模型偏差(Model Bias)#

概念说明#

模型偏差(Model Bias) 指的是由于模型本身过于简单、表达能力有限,导致无法很好地拟合训练数据的情况。 即使经过训练,模型的预测结果与真实值仍存在系统性偏差。


形式化描述#

假设模型由一个带参数的函数族表示:

{fθ(x)θΘ}\{ f_\theta(x) \mid \theta \in \Theta \}

其中:

  • θ\theta:模型参数;
  • Θ\Theta​:参数空间;
  • fθ(x)f_\theta(x):模型的函数形式。

若该集合 过小(即模型过于简单),则即使找到最优参数 θ\theta^*, 也可能无法使损失函数达到理想的最小值,因为**“真正好的函数”不在模型可表示的函数空间中**。

换言之:

想在“海”里捞针(最优函数),但针根本不在这片海里。

(图2.1 模型太简单的问题)

1760343652971


偏差的成因#

  1. 模型容量不足 模型过于简单,无法表达真实规律。

  2. 特征信息不足 仅依赖少量输入特征(如“只用前一天观看数”预测未来),模型难以捕捉长期依赖或周期性趋势。

  3. 假设空间过窄 模型函数族 {fθ}\{f_\theta\}​ 不包含最优解对应的函数。


解决思路#

  1. 增加特征维度(feature expansion)

    • 例:将输入从“1 天数据”扩展为“56 天数据”;
    • 增加更多上下文信息,模型更灵活。
  2. 提升模型复杂度(model capacity)

    • 使用更复杂的函数形式(如多层网络);
    • 从线性模型扩展为深度神经网络模型。
  3. 采用深度学习方法(deep learning)

    • 引入非线性激活函数(ReLU、Sigmoid等);
    • 堆叠多层网络结构提升表达能力。

    1760344477445


补充说明#

需要注意: 训练损失大 ≠ 一定是模型偏差。 也可能是优化问题(例如梯度下降未收敛、学习率不合适等)导致的损失较高。 因此,在判断偏差问题时,应区分“模型能力不足”与“优化过程失败”。


优化问题(Optimization Problem)#

梯度下降的局限性#

在机器学习中,最常见的优化方法是梯度下降(Gradient Descent)。 虽然简单有效,但它也存在多种问题:

  1. 局部最小值(Local Minima)

    • 模型可能陷入局部最优点,无法找到真正使损失最小的参数。
    • 如图2.3(a) 所示,优化过程可能“卡”在局部低点。
  2. 算法收敛不充分

    • 即使模型足够复杂,梯度下降也可能找不到最优函数。
    • 如图2.3(b),蓝色区域表示模型可表示的函数集合,其中确实存在低损失函数,但优化算法未能将参数更新到对应位置。

类比:想在“海”里捞针,针确实在海里,但梯度下降的“捞针方法”不给力,没捞上来。

(图2.3 优化方法的问题)

1760344400708


模型偏差与优化问题的区别#

当训练损失高时,可能有两种原因:

  • 模型偏差(bias):模型太简单,函数族中不存在理想函数(针不在海里);
  • 优化问题(optimization issue):模型足够复杂,但优化算法没找到最优解(针在海里,但捞不到)。

判断模型是否足够大#

判断方法:比较不同规模模型的训练损失。

例:摘自论文 “Deep Residual Learning for Image Recognition” [1]

  • 网络结构:20 层 vs 56 层
  • 实验结果(图2.4):
    • 训练集上,20 层网络损失更低;
    • 测试集上,56 层网络损失反而更高。

分析:

  • 56 层网络的表达能力一定 ≥ 20 层;
  • 若优化成功,56 层应至少能达到 20 层同等或更低损失;
  • 实际却更高 ⇒ 说明 优化失败(非过拟合、非偏差)

(图2.4 残差网络的例子)

1760345010263


Q:如何知道是56 层的优化不给力,搞不好是模型偏差,搞不好是56层的网络的模型灵活性还不够大,它要156层才好,56层也许灵活性还不够大?
A:但是比较56层跟20层,20层的损失都已经可以做到这样了,56层的灵活性一定
比20 层更大。如果56 层的网络要做到20层的网络可以做到的事情,对它来说是轻而易举的。它只要前20层的参数,跟这个20层的网络一样,剩下36层就什么事都不做,复制前一层的输出就好了。如果优化成功,56层的网络应该要比20层的网络可以得到更低的损失。但结果在训练集上面没有,这个不是过拟合,这个也不是模型偏差,因为56层网络灵活性是够的,这个问题是优化不给力,优化做得不够好。

实践建议#

  1. 先训练简单模型作为基线

    • 可选线性模型、SVM 等优化相对稳定的模型;
    • 可快速得出“能力上限”以作比较。
  2. 再尝试更深或更复杂模型

    • 若深模型在训练集上损失高于浅模型 ⇒ 优化问题
    • 若深模型训练损失更低,但测试损失高 ⇒ 过拟合
    • 若深模型训练与测试损失均更低 ⇒ 模型改进有效

观看人数预测的优化实例#

以“预测未来观看人数”为例(图2.5):

1760345279681

网络层数训练集损失
1 层280
2 层180
3 层140
4 层100
5 层340

解释:

  • 4 层网络已能做到训练损失 100;
  • 5 层网络反而损失增大到 340;
  • ⇒ 说明优化失败(非模型偏差),训练过程未能正确收敛。

优化问题的判断流程#

现象可能原因诊断与应对
训练损失高、测试损失高模型偏差增加特征或模型复杂度
训练损失高、模型复杂优化问题调整学习率、初始化、批量大小等
训练损失低、测试损失高过拟合正则化、早停、数据增强
训练损失低、测试损失低模型良好✅ 模型稳定有效

总结#

  • 模型偏差:模型不够复杂 → 海里没针;
  • 优化问题:模型够复杂,但训练失败 → 针在海里,捞不起来;
  • 过拟合:模型记住了训练集,泛化差;
  • 良好模型:训练与测试损失均低。

在实际训练中,应先保证:

  1. 模型容量足够(避免偏差);
  2. 优化收敛(避免优化问题);
  3. 再关注泛化(防止过拟合)。

过拟合(Overfitting)#

什么是过拟合#

过拟合(overfitting) 是指模型在训练集上表现很好(损失极小),但在测试集上表现很差的现象。 模型在训练数据上“记住”了数据特征与噪声,而未能学习到真实的规律。


极端示例#

假设模型学到如下“无用函数”:

  • 若输入 xx 在训练集中出现,则输出训练集中对应的 yy
  • 若输入 xx 未出现,则随机输出一个值。

这种模型在训练集上:

Ltrain=0L_{\text{train}} = 0

但在测试集上损失极高。 说明它只是死记硬背训练数据,并没有“理解”数据的模式。


直观理解#

设真实关系是一个平滑的二次曲线(虚线),训练集是从这条曲线上随机采样的有限几个点(蓝点)。 若模型过于灵活(参数过多),它会强行通过所有训练点,得到一条极其“扭曲”的曲线(图2.6), 导致在测试点(橙点)上表现糟糕。

1760345703746

(图2.6 模型灵活导致的问题)


解决过拟合的两大方向#

增加训练数据#
  • 当数据点增多时,模型的“自由发挥空间”被限制。
  • 即使模型复杂,曲线也会更贴近真实分布。
  • 方法:
    • 采集更多数据
    • 数据增强(data augmentation):在原数据基础上,利用领域知识生成“等价样本”。(举个例子,在做图像识别的时候,常做的一个招式是,假设训练集里面有某一张图片,把它左右翻转)

(图2.7 增加数据)

1760345712306

⚠️ 注意:数据增强应合理。 例如图像识别中可左右翻转,但不应上下颠倒(那可能不是合理样本)。


限制模型复杂度#
  • 给模型“加约束”,减少过度灵活性,使其更贴近真实数据生成规律。

常见方法:

  1. 减少参数数量

    • 降低神经元或层数;
    • 使用参数共享(如 CNN(卷积神经网络));
    • CNN 相比全连接网络(FCN)更“受限”,在图像任务上反而表现更好。
  2. 减少特征数量

    • 例如从“前 3 天数据”减少为“前 2 天数据”。
  3. 正则化与早停

    • 正则化(regularization):限制权重大小(如 L1/L2);
    • 早停(early stopping):当验证集损失不再下降时停止训练;
    • 丢弃法(dropout):训练时随机屏蔽部分神经元,防止共适应。

(图2.8 对模型增加限制)

1760345719343


限制过多与模型偏差#

若模型限制太强(如线性模型拟合 3 个弯曲点),将导致:

  • 无法同时拟合所有训练点;
  • 训练和测试表现均差;
  • 出现**模型偏差(bias)**问题。

(图2.9 限制太大会导致模型偏差)

1760345725888


模型复杂度与损失关系#

随着模型复杂度增加:

  • 训练损失 LtrainL_{\text{train}} 不断下降;
  • 测试损失 LtestL_{\text{test}} 先下降、后上升;
  • 在复杂度过高时,出现过拟合点

(图2.10 模型复杂度与损失的关系)

理想模型应位于“中庸”位置:

既不过于简单(高偏差),也不过于复杂(高方差)。


模型选择的误区与Kaggle示例#

假设有多种模型,复杂度各异。若直接在公开测试集上挑选“分数最高”的模型, 则可能出现**“排行榜过拟合”**现象:

  • 公开测试集结果已知;
  • 不断上传随机模型,总有一个恰好表现好;
  • 但在**私人测试集(private test set)**上表现会急剧下降。

因此 Kaggle 等平台将测试集分为:

  • 公开测试集(public):比赛期间显示分数;
  • 私人测试集(private):截止后计算最终排名。

防止参赛者“对排行榜过拟合”。


小结#

现象原因解决方向
训练损失低、测试损失高模型过拟合增加数据或限制模型
训练损失高、测试损失高模型偏差提高模型复杂度
训练损失高、模型复杂优化问题改善梯度下降与超参
训练损失低、测试损失低模型良好✅ 最佳状态

过拟合的根源:模型能力过强 + 数据量不足。 解决关键:更多数据 + 合理约束 + 验证集选择

交叉验证#

  • 将训练数据分为两部分:训练集(training set)与验证集(validation set)。 例如:90% 作为训练集,10% 作为验证集。 在训练集上训练模型,再用验证集评估模型分数,据此挑选最佳模型。
  • 选出的模型可提交到 Kaggle 获取公开测试集分数。 由于模型是基于验证集选择的,因此公开测试集分数通常可以反映私人测试集分数
  • 若多次根据公开测试集反馈调整模型,可能会在公开测试集上过拟合,导致在私人测试集表现变差。 不过由于提交次数有限,可一定程度避免此类过拟合。

图 2.10 模型的复杂程度与损失的关系

1760347014126

  • 实际上,最好的做法是: 直接根据验证损失最小选择模型,而不参考公开测试集结果。 在已有较好基线(baseline)算法的前提下,不再频繁修改模型,可以有效避免在测试集上过拟合。
  • 但若随机划分验证集导致分布不均,模型结果可能波动较大。 此时可采用 k 折交叉验证(k-fold cross validation)(如 图 2.11 所示)提高评估稳定性。

图 2.11 k 折交叉验证

1760347022412

k 折交叉验证步骤(以 3 折为例)#

  1. 将训练集划分为 3 份。
  2. 重复 3 次训练与验证:
    • 第 1、2 份为训练集,第 3 份为验证集;
    • 第 1、3 份为训练集,第 2 份为验证集;
    • 第 2、3 份为训练集,第 1 份为验证集。
  3. 对每个模型在 3 种划分下均进行训练与验证,计算平均结果。
  4. 比较模型的平均结果,选择表现最好的模型。
  5. 将最佳模型(如模型 1)在全部训练集上重新训练,并用于测试集预测。

图 2.12 3 层网络的结果最好

1760347029449

不匹配#

图2.13 另一种错误形式:不匹配

1760347352847

横轴表示从2021年1月1日开始的时间序列,红线为真实数值,蓝线为预测结果。 2021年2月26日的观看人数达到全年最高点,预测误差为2580。 对比一层、两层、三层与四层网络的结果:

  • 两层与三层网络的错误率约为2000;
  • 一层与四层网络表现稍好,错误率约为1800;
  • 所有模型均错误地认为2月26日是低点,而实际上该日是峰值。

这种模型在关键点出现的判断错误被称为不匹配(mismatch)


不匹配的含义与特征#

  • 不匹配不同于过拟合。 过拟合可通过收集更多数据缓解,而不匹配指训练集与测试集分布不同
  • 当训练集和测试集来源于不同分布时,模型在测试集上的表现会显著下降。 例如:
    • 使用2020年数据作为训练集;
    • 使用2021年数据作为测试集;
    • 由于两年数据的分布差异显著,预测将变得极不准确。

图2.14 图像分类的不匹配问题

1760347363386


结论#

  • 增加训练数据无法解决不匹配问题;
  • 解决不匹配需依赖对数据来源与生成机制的深入理解
  • 只有了解训练集与测试集的生成方式,才能判断模型是否面临不匹配现象。
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

实践学习方法论:偏差、优化与过拟合
https://castorice.xin/posts/实践方法论/
作者
castorice
发布于
2026-03-05
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时