首页 > > > 理解L1、L2正则化的正确姿势
先吐槽:

是的,就是这些等高线图,配合一个方框♦️一个圆圈⭕️ 。大多数博客都是摆上这么一张图就希望读者能够理解,这些图看似形象地不得了,吸引我们去看,结果看半天还是一头雾水。
第一个画出这种图的人,一定是高手,是神,因为他深刻掌握了L1和L2的精髓。但是,由于是神,他便离凡人远了些,这个图就是典型的“看似生动形象,实则高高在上”的图。
其实,只要对这些图,多画几笔,多讲几句话,我们就可以很容易理解了。下面我来给出我画的图,个人觉得更容易理解。
首先写出L1正则化和L2正则化的公式:

图中:
关键的关键:
那么就好理解了,我们可以发现:
当然,真正让我彻底理解的,是当我画出下面这个图的时候:


图中展示的都是达到最优的时候的两个等高线的关系。图注都写在图片里了,随着的增大,L1的蓝色的方框不断缩小,拉扯着J的绿色圆圈变大,第三张子图的时候,最优点到达了L1的顶点,后面如果继续增大的话,最优点会沿着纵坐标往下滑。所以,当超过某个阈值的时候,最优解中的w1就会总等于0.
L2理解起来就简单多了,两个圆一直都是相切的状态,切点永远到不了原点,也就没法让某个特征等于0。
这两张图,才真正展示了一般情况下的L1和L2正则化的特点,解释了为什么L1正则化会导致稀疏解。
只有从直觉上,道理上理解了L1和L2的特点,我们再去用数学推导才有意义。
要看是否会导致稀疏解,我们可以看0附近的导数是否导致0是其邻域内的极值点:


上面的推导表明,对于L1,0的邻域内,存在某种条件,使得导数先负后正,即函数先减后增,所以0是极值点。而条件是:原损失函数J在某参数为0处的导数在范围内。这个条件,说直白一点就是有没有某特征对损失函数影响不大。
而L2在0处的导数,就等于J在0处的导数。只有当原始优化问题的最优解本身就是稀疏解的时候,才会使得该参数为0,而这个显然不常见。
最后的最后补充一句,前面我一直说的“导致”稀疏解,搞的好像稀疏解是某种不好的后果一样,不是的。其实L1这个特点,经常被用来进行特征选择,因为它可以找出那些不重要的特征。
- EOF -
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3169043/ ,如需转载,请注明出处,否则将追究法律责任。