什么是过拟合?
为了得到一致假设而使假设变得过度复杂称为过拟合(overfitting),过拟合表现在训练好的模型在训练集上效果很好,但是在测试集上效果差。
出现原因?
- 训练集的数量级和模型的复杂度不匹配。训练集的数量要小于模型的复杂度;
- 训练集和测试集特征分布不一致;
- 样本里的噪音数据干扰过大,大到模型过分记住了噪音特征,反而忽略了真实的输入输出间的关系;
- 权值学习迭代次数足够多(overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征。
怎么解决?
1.数据集扩增(Data Augmentation)
增加训练数据样本。训练集越多,过拟合的概率越小。
2.数据处理-清洗数据
丢弃一些不能帮助正确预测的特性。纠正错误的label,或者删除错误数据。
3.dropout方法
通过修改隐藏层神经元的个数来防止过拟合。
4.early stepping
是一种迭代次数截断的方法来防止过拟合。即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合。
5.正则化(Regularization) :L1和L2
保留所有特性,但是减少参数的大小。
L1和L2是正则化项,又叫做罚项,是为了限制模型的参数,防止模型过拟合而加载损失函数后面的一项。