正则化

2020-06-26  本文已影响0人  yousa_

一句话概括:正则化(Regularization)是机器学习中一种常用策略,目的是降低模型复杂度,减小过拟合,通过在原目标损失函数中添加惩罚项,对复杂度高的模型进行惩罚来达到目的。常见的正则化方法有L1和L2正则。


我们经常听到有人把L1正则化、L2正则化与Lasso回归,岭回归(Ridge)相互混淆,其实有些许误解:L1、L2正则化并不等于Lasso回归、岭回归:
线性回归+L1正则化 = Lasso回归


线性回归+L2回归 = 岭回归

注意:这里其实是用了拉格朗日法,本质上是对损失函数引入了一个约束条件,即s.t.|w1+w2+..+wn|<=C 以及s.t.(w12+w22+..+wn^2)<=C

为什么可以减小过拟合?

添加了正则化后的损失函数可以写成下面的形式:


这里X,y是训练样本和标签,w是权重系数。J为目标函数,Ω即为损失函数,其中:


可以看出,加入了正则项相当于在损失函数中添加了惩罚项。因此可以理解为正则化是对模型参数做了约束,这样做的好处是可以防止参数波动剧烈,从而导致模型过拟合。
注意:通过下图我们可以看出,添加了正则化后的函数最优点不在Wlin了,而在新的W*,这也解释了为什么L1L2正则化可以减小过拟合:全局最优点偏移了并不是坏事,全局最优点仅仅是训练集上的全局最优解,如果完全拟合它,那就会产生过拟合,也就是数据仅在训练集上表现完美,在测试集上一塌糊涂。

为什么L1正则化可以产生稀疏回归系数,从而达到特征提取效果?

L1正则化相当于为参数定义了一个菱形的解空间。L2正则化相当于为参数定义了一个圆形的解空间。


L1
L2

对于L1正则化,如果原问题的目标函数最优解不是恰好落在棱形解空间内,那就一定是落在棱形解空间的边界上,而L1“棱角分明”的解空间显然更容易与目标函数等高线的角点碰撞,角点的参数值为0,从而产生稀疏解。

Lasso回归、Ridge回归与拉普拉斯分布、高斯分布的关系(从贝叶斯角度看L1与L2正则)?

正则化项即惩罚函数,该项对模型进行惩罚,从而避免单纯最小二乘问题的过拟合问题(正则化最初是为了解决多元线性回归中最小二乘的过拟合问题而提出的)。从贝叶斯角度出发,贝叶斯认为参数不是一个给定的值,而是一个随机变量,服从一个分布正则化本质上是一种先验信息,整个问题从贝叶斯观点看来是一种贝叶斯最大后验估计,其中正则化项对应其中的先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计,将它取对数,即进行极大似然估计,你就会发现问题立马变成了损失函数+正则化项的最优化问题形式。
从贝叶斯角度出发,L1正则相当于对损失函数添加了拉普拉斯先验,L2正则相当于对损失函数添加了高斯先验

什么是KKT条件?

总结

Lasso,全称是least absolute shrinkage and selection operator,译为最小绝对值收敛选择算子
L1和L2各有其优缺点和适用场景:首先二者都可以减小模型复杂度,防止过拟合。
L1优点:

L1缺点:

L2优点:

L2缺点:

最后,在实际生产中,可能大家用L2更频繁一些,因为它计算方便:可以通过求导直接得到损失函数求最小值时的参数情况。此外,L2一定只有一条最好的预测线,而L1因为其性质可能有多个最优解。
最后,我想说的是,其实正则化不止有L1和L2两种,常用的还有Dropout、BN也算正则化,其中dropout指在向前传播的时候,让某个神经元的激活值以一定的概率p停止工作,这样可以使模型的泛化性更强,因为它不会太依赖某些局部的特征;在进行推理(预测)的时候,这时不采用dropout,所有神经元都参与进来。本质上,dropout其实相当于集成学习。

上一篇 下一篇

猜你喜欢

热点阅读