一.所谓过拟合问题
为了得到一致假设而使假设变得过度复杂称为过拟合。一个过配的模型试图连误差(噪音)都去解释(而实际上噪音又是不需要解释的),导致繁华能力较差,显然过犹不及了。
A model (e.g., network) that is too complex may fit the noise, not just thesignal, leading to overfitting.Produces excessive variance in the outputs.过拟合反映的是在学习训练中,NN对学习样本达到非常高的逼近精度,但对非学习样本,如验证学习效果的样本的逼近误差随着NN的训练次数而呈现先下降,后反而上升的奇异现象.
二.过拟合的产生
究其原因,产生过拟合是因为:
1.由于对样本数据,可能存在隐单元的表示不唯一,即产生的分类的决策面不唯一.随着学习的进行, BP算法使权值可能收敛过于复杂的决策面,并至极致.
2.权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征.
三. 过度拟合解决方法
1.权值衰减.
2.适当的stopping criterion
3.验证数据
Stop training if validation error goes up
4.Cross-validation with some patterns
k-fold交叉方法:
5. 减少特征
人工选择,预留一些特征
利用算法选取一些比较好的特征
6. 正则化
这里有点疑问,正则化是为了防止过拟合还是为了解决过拟合。对部分无用的feature,定义其parameter(p3,p4)非常大,这样会导致训练结果w3,w4非常小,几乎为0,降低模型复杂度。这里也有个问题就是lamba很大会导致所有的wi都为0。矩阵分解中经常会用到。