machine learning--L1 ,L2 norm
Posted halo_vagabond
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了machine learning--L1 ,L2 norm相关的知识,希望对你有一定的参考价值。
关于L1范数和L2范数的内容和图示,感觉已经看过千百遍,刚刚看完此大牛博客http://blog.csdn.net/zouxy09/article/details/24971995/,此时此刻终于弄懂了那么一丢丢,赶紧“趁热”记录一番!
从两个方面看L1 norm和L2 norm的不同:
1.下降速度:
L1和L2都是规则化的方式,我们将权值参数 w 用L1或者L2范数的方式加到目标函数中。然后模型就会尝试去最小化这些权值参数。
通用目标函数形式:
而这个最小化就像一个下坡的过程,L1和L2的差别就在于这个“坡”不同,如下图:
L1就是按绝对值函数的“坡”下降的,而L2是按二次函数的“坡”下降。所以实际上在0附近,L1的下降速度比L2的下降速度要快。所以会非常快得降到0。
L1 在民间人称Lasso,L2 人称Ridge。在《机器学习实战》一书中chapter 8介绍回归的章节中介绍“缩减法”时有提到岭回归和Lasso.
2.模型空间的限制:
实际上,对于L1和L2规则化的损失函数来说,我们可以写成以下形式:
也就是说,我们将模型空间限制在w的一个L1-ball 中。为了便于可视化,我们考虑两维的情况,在(w1, w2)平面上可以画出目标函数的等高线,而约束条件则成为平面上半径为C的一个 norm ball 。等高线与 norm ball 首次相交的地方就是最优解:
可以看到,L1-ball 与L2-ball 的不同就在于L1在和每个坐标轴相交的地方都有“角”出现,而目标函数的测地线除非位置摆得非常好,大部分时候都会在角的地方相交。注意到在角的位置就会产生稀疏性,例如图中的相交点就有w1=0,而更高维的时候(想象一下三维的L1-ball 是什么样的?)除了角点以外,还有很多边的轮廓也是既有很大的概率成为第一次相交的地方,又会产生稀疏性。
相比之下,L2-ball 就没有这样的性质,因为没有角,所以第一次相交的地方出现在具有稀疏性的位置的概率就变得非常小了。这就从直观上来解释了为什么L1-regularization 能产生稀疏性,而L2-regularization 不行的原因了。
因此,一句话总结就是:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。
以上是关于machine learning--L1 ,L2 norm的主要内容,如果未能解决你的问题,请参考以下文章
L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误
TensorFlow中的L2正则化函数:tf.nn.l2_loss()与tf.contrib.layers.l2_regularizerd()的用法与异同