过拟合及解决方案

1.定义
标准定义:给定一个假设空间H,一个假设h属于H,如果存在其他的假设h’属于H,使得在训练样例上h的错误率比h'小,但在整个实例分布上h’比h的错误率小,那么就说假设h过度拟合训练数据。 —-《Machine Learning》Tom M.Mitchell

2.出现过拟合的一些原因
(1)建模样本抽取错误,包括(但不限于)样本数量太少,抽样方法错误,抽样时没有足够正确考虑业务场景或业务特点,等等导致抽出的样本数据不能有效足够代表业务逻辑或业务场景;
(2)样本里的噪音数据干扰过大,大到模型过分记住了噪音特征,反而忽略了真实的输入输出间的关系;
(3)建模时的“逻辑假设”到了模型应用时已经不能成立了。任何预测模型都是在假设的基础上才可以搭建和应用的,常用的假设包括:假设历史数据可以推测未来,假设业务环节没有发生显著变化,假设建模数据与后来的应用数据是相似的,等等。如果上述假设违反了业务场景的话,根据这些假设搭建的模型当然是无法有效应用的。
(4)参数太多、模型复杂度高
(5)决策树模型。如果我们对于决策树的生长没有合理的限制和修剪的话,决策树的自由生长有可能每片叶子里只包含单纯的事件数据(event)或非事件数据(no event),可以想象,这种决策树当然可以完美匹配(拟合)训练数据,但是一旦应用到新的业务真实数据时,效果是一塌糊涂。
(6)神经网络模型。
a.由于对样本数据,可能存在隐单元的表示不唯一,即产生的分类的决策面不唯一.随着学习的进行, BP算法使权值可能收敛过于复杂的决策面,并至极致.
b.权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征.

3.解决方案及原理
(1)权值衰减. 主要应用在神经网络模型中
它在每次迭代过程中以某个小因子降低每个权值,这等效于修改E的定义,加入一个与网络权值的总量相应的
惩罚项,此方法的动机是保持权值较小,避免weight decay,从而使学习过程向着复杂决策面的反方向偏。

(2)适当的stopping criterion

在二次误差函数的情况下,关于早停止和权值衰减类似结果的原因说明。椭圆给出了常数误差函数的轮廓线,Wml表示误差函数的最小值。如果权向量的起始点为原点,按照局部负梯度的方向移动,那么它会沿着曲线给出的路径移动。通过对训练过程早停止,我们找到了一个权值向量w。定性地说,它类似于使用检点的权值衰减正则化项,然后最小化正则化误差函数的方法得到的权值。

(3)验证数据
一个最成功的方法是在训练数据外再为算法提供一套验证数据,应该使用在验证集合上产生最小误差
的迭代次数,不是总能明显地确定验证集合何时达到最小误差.
Typically 30% of training patterns;Validation set error is checked each epoch;
Stop training if validation error goes up

(4)交叉验证
交叉验证方法在可获得额外的数据提供验证集合时工作得很好,但是小训练集合的过度拟合问题更为严重.
原理图

(5)添加正则项。L1正则更加容易产生稀疏解、L2正则倾向于让参数w趋向于0.

(6)针对树模型

a.在树过于大之前便停止生长
每个叶中至少需要多少个数据(threshold)
如何判断这个阈值(threshold)是重点【可以考虑用假设检验/P-值】

b.等树生长到足够大之后进行修剪
修剪枝叶,直到任何改动都会降低正确率

4.Tip
(1)增加样本的全面性和数量;
(2)控制模型的复杂度;
(3)不要过度训练
(4)模型融合本质上也是一种提高泛化能力的方法

->模型上:

神经网络:加dropout,batch normalization
基于树的模型:限制深度,加入正则化项等
设置提前终止条件
->数据上:

增加数据集
对数据集进行增强处理(augmentation)

posted @ 2021-05-06 17:35  Marklong  阅读(444)  评论(0编辑  收藏  举报