1.过拟合和欠拟合的相关概念:在训练模型时可能会出现两个问题:信号不足或噪声过多。
- 过拟合(Overfitting)是指由于模型学习了太多噪声造成损失没有达到应有的水平。
- 欠拟合(Underfitting)是指由于模型没有学习到足够的信号导致损失没有达到应有的水平。
2.如何判断欠拟合和过拟合(不考虑训练损失和验证损失一开始就上升的奇葩情况)
2.1对于训练前后训练损失变化不大,也就是常说的训练损失降不下去,那么一定是欠拟合。
2.2对于训练前后训练损失变化大的,定义A1为训练损失一直下降,A2为训练损失先下降后平稳。B1为验证损失一直下降,B2为验证损失先下降后上升,B3为先下降后平稳。下面表示具体情况,可以发现与训练损失基本无关,只看验证损失就能得出
- A1B1 欠拟合
- A1B2 过拟合
- A1B3 刚刚好
- A2B1欠拟合
- A2B2过拟合
- A2B3刚刚好
3.导致过拟合和欠拟合的原因及解决方案
3.1欠拟合
模型过于简单,连信号都学不太全:解决方案是提高算法模型复杂度(即提高模型的容量)
- 去掉或降低正则化(Regularization):L1和L2
- 去掉dropout
- 使用更复杂的模型
由于模型容量不足,所以只能通过改善信号和噪声的比例
- 增加新特征,可以考虑加入进特征组合、高次特征,来增大假设空间
- 添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强
其他