过拟合/欠拟合

对于一个监督学习模型来说,过小的特征集合使得模型过于简单,过大的特征集合使得模型过于复杂

对于特征集过小的情况,称之为欠拟合(underfitting)

对于特征集过大的情况,称之为过拟合(overfitting)

解决此类学习问题的方法:

1)       特征选择算法:一类自动化算法,在这类回归问题中选择用到的特征

2)       非参数学习算法:缓解对于选取特征的需求,引出局部加权回归

一、过拟合

概念
A model (e.g., network) that is too complex may fit the noise, not just the signal, leading to
overfitting.Produces excessive variance in the outputs.
过拟合反映的是在学习训练中,NN对学习样本达到非常高的逼近精度,但对非学习样本,如验证学习效果的样本
的逼近误差随着NN的训练次数而呈现先下降,后反而上升的奇异现象.

产生原因
究其原因,产生过拟合是因为:
1.由于对样本数据,可能存在隐单元的表示不唯一,即产生的分类的决策面不唯一.随着学习的进行, BP算法
使权值可能收敛过于复杂的决策面,并至极致.
2.权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征.

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

这是Ng机器学习课程第三课讲到的方法,即局部加权回归。

2.适当的stopping criterion

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

4.Cross-validation with some patterns
          交叉验证方法在可获得额外的数据提供验证集合时工作得很好,但是小训练集合的过度拟合问题
更为严重.
          k-fold交叉方法:
          把训练样例分成k份,然后进行k次交叉验证过程,每次使用不同的一份作为验证集合,其余k-1份合
并作为训练集合.每个样例会在一次实验中被用作验证样例,在k-1次实验中被用作训练样例;每次实验中,使
用上面讨论的交叉验证过程来决定在验证集合上取得最佳性能的迭代次数n*,然后计算这些迭代次数的均值;
最后,运行一次BP算法,训练所有m个实例并迭代n*次.

原文地址:https://www.cnblogs.com/lanying/p/4035092.html