欠拟合
解决方法:
1、添加其他特征项,或者添加模型的多项式特征
2、减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。
3、因数据量不够导致,重采样或者迁移学习
过拟合
解决方法:
数据层面:
1、重新清洗数据,导致过拟合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据。
2、增大数据的训练量,还有一个原因就是我们用于训练的数据量太小导致的,训练数据占总数据的比例过小。
3、因数据不平衡造成,重采样
方法层面:
1、提前终止
2、采用正则化方法
3、采用dropout、batch normalization和Soft weight-sharing方法
4、集成学习
不平衡数据的处理(某些数据少也可使用)
数据层面的方法:重采样技术,数据增强
算法层面:集成技术
正则化
概念
L0正则化的值是模型参数中非零参数的个数。
L1正则化表示各个参数绝对值之和。
L2正则化标识各个参数的平方的和的开方值。
频率学派:稀疏化,参数变少,模型得到简化,可解释性增加;参数数值小,模型简单。因为复杂模型波动大,表现为区间导数大,导数大则数值大
贝叶斯学派:加2范数正则等价于加了高斯分布的先验,加1范数正则相当于加拉普拉斯分布先验。
L0正则化
因为L0正则化很难求解,是个NP难问题,因此一般采用L1正则化。L1正则化是L0正则化的最优凸近似,比L0容易求解,并且也可以实现稀疏的效果。
L1正则化
L1正则化在实际中往往替代L0正则化,来防止过拟合,也人称稀疏算子(Lasso)。
1、特征选择(Feature Selection):L1能实现特征的自动选择。在预测新的样本时,没用的信息会被考虑,从而干扰了预测。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。
2、可解释性(Interpretability):当模型稀疏时,更容易解释
L2正则化
L2正则化可以防止过拟合的原因和L1正则化一样,但与L1范数不一样的是,它不会是每个元素为0,而只是接近于0。L2正则化称也称“岭回归”(Ridge),或权值衰减(weight decay)
1、学习理论的角度:从学习理论的角度来说,L2范数可以防止过拟合,提升模型的泛化能力。
2、优化计算的角度:从优化或者数值计算的角度来说,L2范数有助于处理 condition number不好的情况下矩阵求逆很困难的问题。即可以让优化求解变得稳定和快速
比较
L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。在所有特征中只有少数特征起重要作用的情况下,选择Lasso比较合适,因为它能自动选择特征。而如果所有特征中,大部分特征都能起作用,而且起的作用很平均,那么使用Ridge也许更合适。