前言
- 过拟合:过多拟合训练数据,对于测试数据的拟合效果差.也就是模型在训练集上的表现很好,但在测试集和新数据上表现的较差的情况,过分地考虑了训练数据中的噪声等不必要的数据间的关联导致。
- 欠拟合:没有很好学到数据特征,导致拟合曲线无法拟合数据.模型在训练和预测时表现都不好的情况,成因大多是模型不够复杂,拟合函数的能力不够.
欠拟合
- 增加特征的多样性.
- 增加模型复杂度.
- 数据增强,增加训练集.
- 减少正则化参数.
过拟合
- 降低模型复杂度.降低模型复杂度可以避免模型过拟合的采样噪声.
- 数据清洗,噪声过大.
- 样本太单一,样本不均衡.增加训练数据,可以数据增强.
- 加入正则化,降低泛化误差.给模型的参数加上一定的正则约束,比如将权值的大小加入到损失函数中.
- 加入dropout,提前停止训练.
- 可使用BN缓解,但BN核心在于优化参数搜索空间,调整数据分布.
- 集成学习方法.集成学习是把多个模型集成在一起,来降低单一模型的过拟合风险,如Bagging方法.
- 多模型投票方法, 类似集成学习方法的思想,不同模型可能会从不同角度去拟合,互相之间取长补短,即使单独使用某个模型已出现过拟合,但综合起来却有可能减低过拟合程度,起到正则作用,提高了泛化效果.特别是使用多个非常简单的模型,更不容易产生过拟合.
正则化
给模型的参数加上一定的正则约束,比如将权值的大小加入到损失函数中.
使参数范数降低接近于0,从而降低模型复杂度,即使模型高次方前面的参数变小。
- L1正则化:在原先loss基础上加上L1正则化项,即权重之和.
l o s s = l o s s o + λ ∑ ∣ W i ∣ loss=loss_o+\lambda \sum |W_i| loss=losso+λ∑∣Wi∣
可稀疏化参数,使得权重趋于0,减少网络复杂度,防止过拟合. - L2正则化:在原先loss基础上加上L1正则化项,即权重平方之和.
l o s s = l o s s o + λ 2 ∑ W i 2 loss=loss_o+ \frac{\lambda}{2}\sum W_i^2 loss=losso+2λ∑Wi2
可降低参数的范数总和.
参考
https://blog.youkuaiyun.com/sleepinghm/article/details/105069716
正则化好文