机器学习与正则化

在学习器训练过程中经常会遇到过拟合的情况,模型记录噪声和不相关特征,在新数据面前训练效果不佳。这样的学习器没有从训练数据中学习真正有意义的模式,而只是记录了它所看到的一切,解决此问题的一种解决方法是正则化[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

[5] 深度学习中的正则化:https://github.com/MingchaoZhu/DeepLearning/blob/master/7%20%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E4%B8%AD%E7%9A%84%E6%AD%A3%E5%88%99%E5%8C%96.pdf

你可能感兴趣的:(机器学习与正则化)