L1、L2正则化

一、什么是L1、L2正则化(Regularization)

参考文献:https://blog.csdn.net/jinping_shi/article/details/52433975
机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1-norm和ℓ2-norm,中文称作L1正则化和L2正则化,或者L1范数和L2范数。

L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。
对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归)。

L1正则化是指权值向量w中各个元素的绝对值之和,通常表示为 | | w | | 1
L2正则化是指权值向量w
中各个元素的平方和然后再求平方根(可以看到Ridge回归的L2正则化项有平方符号),通常表示为 | | w | | 2

L0正则化:非零参数的个数

二、正则化的作用是什么

  1. L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择
  2. L2正则化产生平滑解,获得值很小的参数,可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合

1)L1、L2怎么防止过拟合的?
L1会自动地选择很少一部分变量构造模型,将一些参数变为0,也就意味着最终的近似解只依赖很少的变量。通过简化模型防止过拟合。
L2控制所有特征的权重,每个参数值都会很小。一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象

2)参数值越小代表模型越简单吗?
L2拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』。

3)L0正则可以做特征选择吗
从直观上看,利用非零参数的个数,可以很好的来选择特征,实现特征稀疏的效果,具体操作时选择参数非零的特征即可。但因为L0正则化很难求解,是个NP难问题,因此一般采用L1正则化。L1正则化是L0正则化的最优凸近似,比L0容易求解,并且也可以实现稀疏的效果。

三、为什么L1可以产生稀疏解、L2可以产生平滑解

几何角度直观理解

参考文献
https://www.zhihu.com/question/37096933?sort=created

这里写图片描述
这里写图片描述
关于上面的等价,类似于拉格朗日乘子法,把约束变成无约束。
平方误差项在等值线的中心取到最小。
等值线越往外越大。
正则化项约束了参数不能随心所欲的取,即必须满足约束,解必须在蓝色区域内,而同时要使得等值线的值尽可能小,因此,最优解一定是在等值线与边界首次相交的地方。

等值线与角接触的机率会远大于与其它部位接触的机率,而在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型。
L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此等值线与L2等值线相交时使得w1或w2等于零的机率小了许多。
西瓜书上 p253图
这里写图片描述

凸优化角度理解

参考文献
https://www.zhihu.com/question/37096933?sort=created
这里写图片描述

x = 0 是一个极小值点只要保证施加L1后 x = 0 处左右两边导数异号就行。原函数用 f ( x ) 表示,则施加 L 1 x = 0 处左右两边导数分别是 f ( 0 ) C f ( 0 ) + C ,只要 C > | f ( 0 ) | 就能保证异号。
x = 0 是一个极小值点,对于 L 2 ,需要保证费用函数在0处的导数为0。 f ( 0 ) = 0
感受两个条件的强弱,就知道为什么 L 1 更容易得到稀疏解了。

先验知识角度理解

参考文献
https://www.zhihu.com/question/37096933?sort=created
L1,L2范式来自于对参数 w 的先验知识,模型参数考虑了数据先验,模型效果当然就更好。
参数w 的分布来自于高斯分布,那么就应该在代价函数中加入数据先验P(x),一般由于推导和计算方便会加入对数似然,也就是log(P(x))。如果你去看看高斯分布的概率密度函数P(x),你会发现取对数后的log(P(x))就剩下一个平方项了,这就是L2范式的由来–高斯先验.
参数w的分布是稀疏的,不妨就认为它来自某种laplace分布.不知你是否见过laplace分布的概率密度函数,我贴出一张维基上的图,
这里写图片描述
laplace分布是尖尖的分布,是不是很像一个pulse?从这张图上,你应该就能看出,服从laplace分布的数据就是稀疏的了(只有很小的概率有值,大部分概率值都很小或为0).
再看看laplace分布的概率密度函数
这里写图片描述
如果取对数,剩下的是一个一次项|x-u|,这就是L1范式.
所以用L1范式去正则,就假定了你的参数是laplace分布,是稀疏的.

猜你喜欢

转载自blog.csdn.net/csdn_lzw/article/details/80168196