在模型评估与调整的过程中,往往会遇到“过拟合”和欠拟合现象,如何有效地识别“过拟合”和“欠拟合”现象,并有针对性地调整模型,是不断改进机器学习模型的关键。
过拟合
给定一个假设空间F,一个假设f 属于F,如果存在其他的假设f′ 也属于F, 使得在训练集上f 的损失比f′ 小,但在整个样本空间上f′ 比f 的损失小,那么就说假设f 过度拟合训练数据[Mitchell, 1997]。
根据大数定理可知,当训练集大小|D| 趋向于无穷大时,经验风险就趋向于期望风险。然而通常情况下,我们无法获取无限的训练样本,并且训练样本往往是真实数据的一个很小的子集或者包含一定的噪声数据,不能很好地反映全部数据的真实分布。经验风险最小化原则很容易导致模型在训练集上错误率很低,但是在未知数据上错误率很高。这就是所谓的过拟合(Overfitting)。
过拟合问题往往是由于训练数据少和噪声以及模型能力强等原因造成的。
为了解决过拟合问题,一般在经验风险最小化的基础上再引入参数的正则化
(Regularization),来限制模型能力,使其不要过度地最小化经验风险。这种
准则就是结构风险最小化(Structure Risk Minimization,SRM)准则。
其中||θ||是ℓ2 范数的正则化项,用来减少参数空间,避免过拟合;λ用来控制正则
化的强度。正则化项也可以使用其它函数,比如ℓ1 范数。ℓ1 范数的引入通常会使得参数有一定稀疏性,因此在很多算法中也经常使用。。在贝叶斯学习的角度来讲,正则化是假设了参数的先验分布,不完全依赖训练数据。
除了正则化,还可以从以下几个方面降低过拟合风险。
- 获取更多的训练数据。使用更多数据的训练模型时解决过拟合问题的有效手段。因为更多的样本可以使得模型学习到更多的有效特征,从而减小噪声的影响,提升泛化性能。
- 降低模型复杂度。训练数据量较少时,模型过于复杂时产生过拟合的主要因素,降低模型复杂度可以避免模型拟合过多的噪声。
- 集成学习。集成学习通过把多个模型集成在一起,来降低单个模型的过拟合风险。
欠拟合
和过拟合相反的一个概念是欠拟合(Underfitting),即模型不能很好地拟合
训练数据,在训练集的错误率比较高。欠拟合一般是由于模型能力不足造成的。
下图给出了欠拟合和过拟合的示例。
当出现欠拟合现象时,可以尝试冲以下几个方面入,降低欠拟合风险。
- 添加新特征。当特征不足或者特征的表征能力不强时,模型很容易出现欠拟合现象。因此,可以通过挖掘新特征的方式,或者优化特征工程过程,使得训练数据具有更丰富额特征。
- 增加模型复杂度。简单模型的学习能力较弱,通过增加模型的复杂度可以使模型具有更强的拟合能力。例如,在线性模型里添加高次项,在神经网络模型中增加网络层数或神经元个数等。
- 减小正则化系数。正则化是用来防止过拟合的,但当模型出现欠拟合时,应当有针对性地减小正则化系数。
总之,机器学习中的学习准则并不仅仅是拟合训练集上的数据,同时也要使得泛化错误最低。给定一个训练集,机器学习的目标是从假设空间中找到一个泛化错误较低的“理想”模型,以便更好地对未知的样本进行预测,特别是不在训练集中出现的样本。因此,机器学习可以看作是一个从有限、高维、有噪声的数据上得到更一般性规律的泛化问题。
参考:
- 邱锡鹏:《神经网络与深度学习》