关于模型选择、过拟合、欠拟合
机器学习的目标是发现模式,而不是简单地记住数据。只有当模型真正发现了一种泛化模式时(这些模式捕获到了训练集潜在的总体规律时,才能作出有效的预测。如何发现可以泛化的模式是机器学习的根本问题。
1 过拟合与欠拟合
1.1 训练误差与泛化误差
- 训练误差是指模型在训练数据集上计算得到的误差;
- 泛化误差是模型应用在同样从原始样本的分布中抽取的无限多数据样本时,模型误差的期望。(由于不可能有无限多的样本,因此不可能准确计算出泛化误差,在实际应用中通过将模型应用于一个独立的测试集来估计泛化误差,该测试集由随机抽取的、未曾在训练集中出现的数据样本构成。)
1.2 模型过拟合
- 模型在训练数据集上拟合的比在潜在分布中更接近的现象称为过拟合;
- 当训练误差明显小于验证误差的时候要小心,这表明严重的过拟合。但要注意,在深度学习领域,最好的预测模型在训练数据集上的表现往往比在保留(验证)数据上好得多,我们通常更关注验证误差,而不是训练误差和验证误差之间的差距。
模型过拟合的可能原因:
- 训练数据中噪声干扰过大,使得学习器认为部分噪音是特征从而扰乱学习规则。
- 建模样本选取有误,抽样方法错误,样本label错误等,导致样本不能代表整体。
- 模型不合理,或假设成立的条件与实际不符。
- 训练样本的数量。即使模型很简单,也很容易过拟合只包含一两个样本的数据集。而过拟合一个有数百万个样本的数据集则需要一个极其灵活的模型。
1.3 模型欠拟合
- 欠拟合是指对训练样本的一般性质尚未学好。在训练集及测试集上的表现都不好。
- 当训练误差和验证误差都很大,两者之间仅有一点差距时,如果模型不能减小训练误 差,可能意味着模型简单(表达能力不足),无法捕获试图学习的模式。此外,由于训练误 差和验证误差之间的泛化误差很小,有理由相信有一个更复杂的模型可以减小训练误差,这种现象称为欠拟合。
模型欠拟合的可能原因:
- 可调整参数的数量。当可调整参数的数量(自由度)很大时,模型往往更容易过拟合;
- 参数的取值。当权重的取值范围较大时,模型可能更容易过拟合。
2 模型过拟合与欠拟合问题的排查
- 训练集损失大:
- 模型偏差(model bias):重新选择合适的模型;
- 模型优化不充分:调整优化算法设置;
- 训练集损失小:
- 测试集损失大:
- 过拟合:降低模型复杂度或增加训练数据集容量;
- mismatch:训练集与测试集服从的数据分布不一致。
- 测试集损失大: