在学习器训练过程中经常会遇到过拟合的情况,模型记录噪声和不相关特征,在新数据面前训练效果不佳。这样的学习器没有从训练数据中学习真正有意义的模式,而只是记录了它所看到的一切,解决此问题的一种解决方法是正则化[4]。
一、正则化概念
1、基础概念
正则化一般具有如下形式[1]
其中第一项为经验风险,第二项为正则化项(regularizer)也称为惩罚项(penalty term),为调整两者之间关系的系数。
正则化的作用是选择经验风险和模型复杂度同时较小的模型。正则化项一般是模型复杂度单调递增函数,模型越复杂,值越大。给模型的参数加上一定的正则约束,这样在优化目标函数的同时能够避免权值过大带来过拟合的风险。
正则化是模型防止过拟合的核心技术之一。
2、可控参数lambda
正则项系数lambda,调整经验误差项和正则项之间的系数。
当lamba=0时,相当于公式没有正则项,模型全力讨好第一项,将经验误差进行最小化,往往也是最容易发生过拟合的时候。随着lamba的增大,正则化项在模型中的话语权越来越大,对模型复杂性的惩罚因子也越来越厉害。
3、公式地位
该公式是有监督学习的核心原理,是机器学习中最核心、最关键、最能概述监督学习的核心思想原理。
会发现80%的单一机器学习模型都是这个公式可以解释的,无非是对经验风险、正则化项变着法换样子而已。
扩展第一项的经验风险,探究常见的机器学习模型与对应经验风险关系【暂放】
二、常见的正则化项
正则化项的可选择比较多的,比较常见的是L1、L2正则项
1、L1正则化[2]
采用L1范数的正则化又称为lasso,比如在sklearn.linear_mode下的Lasso,LassoCV, LassoLarsCV就是线性回归与L1正则项的组合,LassoCV, LassoLarsCV使用交叉验证等方式获得最优的值
使用L1范数作为正则化项,下面公式称为lasso
可用于特征选择,降低特征维度
2、L2正则化[2]
使用L2范数作为正则化项,下面公式称为ridge
L2是正则化中的天选之子,在各种防止过拟合和正则化处理过程中,L2正则化可谓风头无两
由于偏导方面的优势,L2正则化项的复杂度比L1要好。
3、Elastic-Net正则化
Elastic-Net正则化是岭回归和Lasso回归的组合,Zou和 Hastie (2005) 引入了 Elastic Net 正则化,可以通过参数调节L1正则化和L2正则化的权重
补充:范数
范数可以理解为距离度量的方法。
向量空间中的向量都是有大小的,这个大小如何度量,就是用范数来度量的,不同的范数都可以来度量这个大小,就好比米和尺都可以来度量远近一样
当p=1时就是L1范数,p=2时就是L2范数
参考资料
[1] 李航《统计学习方法》
[2] 周志华《机器学习》
[3] L1正则化引起稀疏解的多种解释:https://zhuanlan.zhihu.com/p/50142573
[4] L1正则化的稀疏性:https://vimsky.com/article/3852.html