前言在机器学习中,模型的拟合效果意味着对新数据的预测能力(泛化能力)的强弱。程序员在评估模型拟合效果时,常说“过拟合”和“欠拟合”。那么到底什么是过拟合/欠拟合呢?哪些指标可以判断装修效果?以及如何优化?欠拟合&过拟合的概念注:在机器学习或人工神经网络中,过拟合和欠拟合有时被称为“过度训练”和“训练不足”。本文不作专业术语区别区分。欠拟合是指与数据相比,模型参数太少或模型结构太简单,以至于无法学习到数据中的规律。过拟合是指模型只与特定的数据集过度匹配,以至于不能很好地拟合和预测其他数据。其本质是模型从训练数据中学习到统计噪声,由此分析影响因素:训练数据太偏,模型学习到与真实数据不匹配的噪声;训练数据的噪声数据干扰太大,模型太大。记住噪声特征,却忽略了输入和输出之间的真实关系;过于复杂的参数或结构模型(与数据相比),可以在“完美”适应数据的同时学到更多的噪声;如上图所示,模型的拟合效果通过虚线的区分效果形象地表现出来。Underfitting表示欠拟合模型,Overfitting表示过拟合模型,Good表示拟合良好的模型。拟合效果评价方法现实中,模型的学习程度和泛化能力通常通过训练误差和测试误差(泛化误差)来评价。欠拟合时,训练误差和测试误差都很高,并且随着训练时间和模型复杂度的增加而降低。达到最优拟合的临界点后,训练误差减小,测试误差增大,此时进入过拟合区域。它们的误差差异如下表所示:拟合效果深入分析对于拟合效果,除了通过训练和测试的误差来估计泛化误差和判断拟合程度外,我们往往还想理解为什么它有这样的泛化性能。统计学常用“偏差-方差分解”(bias-variancedecomposition)来分析模型的泛化性能:泛化误差是偏差、方差和噪声的总和。噪声(ε)表示任何学习算法在当前任务上所能达到的泛化误差的下界,即描述了学习问题本身的难度(客观存在)。偏差是指用所有可能的训练数据集训练出来的所有模型的输出值与真实值之间的差异,表征模型的拟合能力。偏差越小,模型的预测精度越高,模型的拟合度越高。方差是指不同训练数据集训练出的模型与预测样本输出值之间的差异,描述了训练数据扰动的影响。方差越大,模型预测值越不稳定,即模型的(过)拟合程度越高,训练集扰动的影响越大。不同方差和偏差下模型预测的差异用牛眼图表示如下:偏差越小,模型预测值与目标值的差异越小,预测值越准确;方差越小,表示不同训练数据集训练出的模型之间的差异越小。预测样本的预测值差异越小,预测值越集中;“bias-variancedecomposition”表明,模型拟合过程的泛化性能取决于学习算法的能力、数据的充分性以及学习任务本身的难度。模型欠拟合时:模型准确率不高(highbias),训练数据的扰动影响较小(lowvariance),泛化误差大主要是highbias造成的。当模型过拟合时:模型的准确率高(低偏差),模型容易学习到训练数据扰动的噪声(高方差),其泛化误差因高方差而大。拟合效果的优化方法可以结合交叉验证来评估模型的性能,可以更准确地判断拟合程度。在优化欠/过拟合现象方面,主要有以下几种方法:模型欠拟合增加特征维度:比如增加新的业务级特征,特征推导增加特征假设空间来增加特征表达能力;增加模型复杂度:如增加模型训练时间、结构复杂度、尝试复杂的非线性模型等,以增加模型的学习能力;模型过拟合增加数据:比如寻找更多训练数据样本,数据增强等,降低局部数据依赖;特征选择:通过过滤掉冗余特征,减少冗余特征带来的噪声干扰;降低模型复杂度:简化模型结构:比如减少神经网络的深度、决策树的数量等L1/L2正则化:通过在代价函数中加入一个正则项(整体权重的值)作为惩罚项,它限制了模型学习的权重。(扩展:通过在神经网络的网络层引入随机噪声,也有类似L2正则化的作用)早停(Earlystopping):通过截断迭代次数来限制模型学习权重的方法。组合多个模型:集成学习:例如随机森林(bagging方法)通过训练样本以替换抽样和随机特征选择的方式训练多个模型,综合决策,可以减少对某些数据/模型的依赖,减少方差和误差;Dropout:神经网络在前向传播过程中,每次按照一定的概率(比如50%)随机“暂停”一些神经元的功能。这类似于对各种网络结构模型进行baggingaverage决策,模型不依赖于某些局部特征,从而具有更好的泛化性能。关于作者欢迎来到「算法进阶」公众号,这里定期发布机器学习、深度学习等好的技术文章。欢迎一起学习交流进步!
