欠拟合是机器学习中的一种现象,指模型未能捕捉用于训练的数据中的重要规律。欠拟合模型通常在训练数据和此前未见过的样本上都存在较大的误差。一个常见原因是,相对于所要学习的关系,模型的灵活性不足。欠拟合与过拟合相对:过拟合模型对训练样本拟合得很精确,却在新数据上表现较差。这两个概念都涉及泛化(机器学习),即模型对学习所用样本之外的数据进行预测的能力。(classic.d2l.ai)
统计含义
在监督学习中,模型学习从输入到目标值的映射。训练误差衡量模型在用于拟合的样本上的表现,而泛化误差则是模型在从同一底层分布中抽取的新样本上的误差的期望值。欠拟合模型通常具有较高的训练误差和验证误差,而两者之间的差距相对较小。因此,差距小本身并不能证明模型表现良好:这两种误差都可能仍然大到无法接受。(classic.d2l.ai)
欠拟合通常与偏差-方差权衡中的高偏差有关。这里,估计量的偏差指在各种可能的训练样本上得到的预测的平均值与目标关系之间的系统性差异。方差则反映模型对所用训练样本的敏感程度。在采用平方误差的条件下,预测误差可以分解为偏差的平方、方差和不可约噪声。限制较多的模型可能给出稳定的预测,但仍存在较大的系统性误差;稳定并不意味着准确。(scikit-learn.org)
原因
表示能力不足。 某类模型可能无法表示任务所需的关系。例如,仅使用截距和一个未经变换的预测变量的线性回归,无法表示弯曲的输入—输出关系。延长训练时间无法消除允许使用的函数族本身所施加的限制。因此,必须结合目标规律来判断模型复杂度是否合适,而不能脱离具体任务,将其简单归为足够或不足。(scikit-learn.org)
正则化过强。 正则化通过限制拟合来抑制过于复杂的解。一种常见的目标函数是
其中, 是损失函数, 用于惩罚复杂度, 控制惩罚强度。如果惩罚项占主导,训练过程可能倾向于选择过于简单的解,从而遗漏有意义的结构。合适的正则化强度取决于数据和任务。(developers.google.com)
训练受限。 早停法在迭代训练完全收敛之前终止训练,是正则化的一种形式。由于它可能使训练损失增大,过早停止训练会导致模型拟合不足。训练时长和正则化强度是两种不同的控制因素:增加迭代次数并不一定能克服过强的复杂度惩罚。(developers.google.cn)
示例说明
考虑由一个弯曲的函数生成的含噪观测数据。一次多项式只能产生一条直线,无法跟随曲线的弯曲变化,因而预测值与观测值之间会留下具有规律性的偏差。次数适中的多项式可以更准确地表示底层关系。次数高得多的多项式则可能转而追随观测数据中的偶然波动,虽然降低了训练误差,却使模型对留出样本的预测变差。(scikit-learn.org)
这个例子也说明了为什么“线性”不一定意味着“直线”。使用多项式特征进行拟合的线性回归,其拟合系数仍以线性形式参与模型,但预测值与原始输入之间可以是非线性关系。因此,通过特征工程改变输入的表示方式,可以在不更换系数拟合方法的情况下提高模型的表达能力。在 scikit-learn 的演示中,一次、四次和十五次多项式分别展示了欠拟合、合适的拟合和过拟合;这些次数仅适用于该示例,并非普遍适用的阈值。(scikit-learn.org)
检测与解读
验证集提供不参与参数拟合的样本。比较训练表现和验证表现,有助于区分拟合不足与泛化不足。交叉验证在不同的留出子集上重复这种比较。解读表现时必须考虑所用指标:较高的均方误差表示回归预测较差,而较低的准确率则表示分类表现较差。(classic.d2l.ai)
学习曲线(机器学习)展示训练表现和验证表现随训练集大小的变化。当两条曲线逐渐趋于相近且较差的表现时,在当前模型类别下,仅增加样本可能收效甚微。验证曲线则通过改变某个超参数(例如正则化强度),揭示哪些设置会导致拟合不足或过度拟合。这些曲线提供的是诊断依据,而不是对所有性能问题的自动解释。(scikit-learn.org)
通常的解读以训练数据和评估数据的分布具有可比性为前提。即使模型在训练数据上表现良好,分布偏移也可能损害预测效果,因此,仅凭模型在新数据上表现较差,不能断定存在欠拟合。用于评估的数据划分必须能够代表预期的预测场景,比较结果才有意义。(developers.google.com)
模型选择
应对欠拟合的方法包括使用表达能力更强的模型类别、扩展特征表示,或减弱过强的正则化。评估这些候选改动时,应依据验证表现,而不能只看训练误差。更灵活的模型可以更好地拟合观测数据,却不一定能提高预测能力,尤其是在数据有限的情况下。(scikit-learn.org)
另行保留的测试集用于评估最终选定的模型。反复依据同一组验证结果选择设置,可能使这些结果显得过于乐观;使用测试集进行选择,同样会破坏其独立性。因此,要判断表面上的改进是否意味着泛化能力真正提高,就必须区分训练、验证和最终测试。(scikit-learn.org)
参考来源
- 5. Validation curves: plotting scores to evaluate models — scikit-learn documentationscikit-learn.org
- Underfitting vs. Overfitting — scikit-learn documentationscikit-learn.org
- 4. Model Selection, Underfitting, and Overfitting — Dive into Deep Learningclassic.d2l.ai
- Overfitting: Model complexity — Google for Developersdevelopers.google.com
- Overfitting: L2 regularization — Google for Developersdevelopers.google.cn
- Overfitting — Google for Developersdevelopers.google.com