L1与L2正则(转)

概念: 

L0范数表示向量中非零元素的个数:NP问题,但可以用L1近似代替。

L1范数表示向量中每个元素绝对值的和:

L1范数的解通常是稀疏性的,倾向于选择:1. 数目较少的一些非常大的值  2. 数目较多的insignificant的小值。faster-RCNN里面的smooth-L1 loss就是L1的平滑版本

L2范数即欧氏距离:

L2范数越小,可以使得w的每个元素都很小,接近于0,但L1范数不同的是他不会让它等于0而是接近于0。

从贝叶斯先验角度看:

L1则相当于设置一个Laplacean先验,去选择MAP(maximum a posteriori)假设。而L2则类似于Gaussian先验

先假设参数 \omega 服从一种先验分布 P(\omega) ,那么根据贝叶斯公式利用极大似然估计求参数 \omega 的时候,现在我们的极大似然函数就变成了:

L1范数:

假设我们让 \omega 服从的分布为标准拉普拉斯分布,即概率密度函数为 1/2*exp(-|x|) ,那么式子(7)多出的项就变成了 C||\omega||_{1} ,其中C为常数了,重写式子:

L2范数:

假设我们让 \omega 服从的分布为标准正太分布,即概率密度为 1/\sqrt{2\pi}*exp(-(x)^{2}/2) ,那么式子(7)多出的项就成了 C||\omega||_{2}^{2} ,其中C为常数,重写式子:

 

 上图中L1后w取0的概率大,L2后w取0附近的概率大。

两种几何上直观的解析

L1和L2的差别,为什么一个让绝对值最小,一个让平方最小,会有那么大的差别呢?

1)下降速度:

       我们知道,L1和L2都是规则化的方式,我们将权值参数以L1或者L2的方式放到代价函数里面去。然后模型就会尝试去最小化这些权值参数。而这个最小化就像一个下坡的过程,L1和L2的差别就在于这个“坡”不同,如下图:L1就是按绝对值函数的“坡”下降的,而L2是按二次函数的“坡”下降。所以实际上在0附近根据其梯度,L1的下降速度比L2的下降速度要快。

       L1在江湖上人称Lasso,L2人称Ridge。

2)模型空间的限制:

       实际上,对于L1和L2规则化的代价函数来说,我们可以写成以下形式:

       也就是说,我们将模型空间限制在w的一个L1-ball 中。为了便于可视化,我们考虑两维的情况(假设X为一个二维样本,那么要求解参数 \omega 也是二维)目标函数曲线等高线(同颜色曲线上,每一组 \omega_{1} ,\omega_{2} 带入值都相同),凸函数3维空间里像一口锅,而约束条件则成为平面上半径为C的一个 norm ball 。等高线与 norm ball 首次相交的地方就是最优解:

       可以看到,L1-ball 与L2-ball 的不同就在于L1在和每个坐标轴相交的地方都有“角”出现,而目标函数大部分时候都会在角的地方相交。注意到在角的位置就会产生稀疏性,例如图中的相交点就有w1=0,而更高维的时候(想象一下三维的L1-ball 是什么样的?)除了角点以外,还有很多边的轮廓也是既有很大的概率成为第一次相交的地方,又会产生稀疏性。

       相比之下,L2-ball 就没有这样的性质,因为没有角,所以第一次相交的地方出现在具有稀疏性的位置的概率就变得非常小了。这就从直观上来解释了为什么L1-regularization 能产生稀疏性,而L2-regularization 不行的原因了。

   如果不加L1和L2正则化时,对于线性回归这种目标函数凸函数的话,我们最终的结果就是最里边的紫色的小圈圈等高线上的点(锅底)。

的图像是一个菱形,现在的目标是不仅是原曲线算得值要小(越来越接近中心的紫色圈圈),还要使得这个菱形越小越好(F越小越好)

   两种 regularization 能不能把最优的 x 变成 0,取决于原先的费用函数在 0 点处的导数。如果本来导数不为 0,那么施加 L2 regularization 后导数依然不为 0,最优的 x 也不会变成 0。而施加 L1 regularization 时,只要 regularization 项的系数 C 大于原先费用函数在 0 点处的导数的绝对值,x = 0 就会变成一个极小值点。极小值点的条件是 L1后x=0处左右两边导数异号就行。原函数用f(x)表示,则施加L1后x=0处左右两边导数分别是f'(0)-C和f'(0)+C,只要C>|f'(0)|就能保证异号。事实上 L1 regularization 会使得许多参数的最优值变成 0,这样模型就稀疏了。

       因此:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。

转自:zouxy09

   bingo酱

   王赟 Maigo

posted @ 2018-08-07 14:10  demianzhang  阅读(1208)  评论(0编辑  收藏  举报