当前位置:   article > 正文

[算法面试]_01_L1和L2正则化,为什么L1正则化更容易导致稀疏?

[算法面试]_01_L1和L2正则化,为什么L1正则化更容易导致稀疏?

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。
整理成了面试系列,由于时间有限,每天整理一点,后续会陆续分享出来,感兴趣的朋友可关注+收藏

同时,也欢迎查看开发面试经验合集:
Java、Android面试高频系列文章合集

1. L1和L2正则化

这篇讲得非常好:https://zhuanlan.zhihu.com/p/376000306
两者是用来控制模型复杂度和防止过拟合的常见手段,其公式如下:
在这里插入图片描述
其中L1正则化是加上参数的绝对值的和,而L2正则化是加上参数的平方和。

(1)L1正则化
L1正则化通过向损失函数添加参数的绝对值之和来惩罚模型的复杂度。L1正则化倾向于使一些参数变为0,从而可以用于特征选择,即自动减少不重要的特征。这使得模型更具稀疏性,有助于降低特征维度和模型复杂度。

(2)L2正则化
L2正则化通过向损失函数添加参数的平方之和来惩罚模型的复杂度。与L1正则化不同,L2正则化不会强制使参数变为零,但会让参数逐渐趋近于零。L2正则化会使各参数相对更加平滑,提高模型的稳定性。

2. 为什么L1正则化会导致稀疏呢?

对公式求导,就可以看0附近的导数是否导致0是其邻域内的极值点,如下所示:
在这里插入图片描述
在这里插入图片描述
上面的推导表明,对于L1,0的邻域内,存在某种条件,使得导数先负后正,即函数先减后增,所以0是极值点。而条件是:原损失函数J在某参数为0处的导数在(−a/n,a/n)范围内。这个条件,说直白一点就是有没有某特征对损失函数影响不大。

而L2在0处的导数,就等于J在0处的导数。只有当原始优化问题的最优解本身就是稀疏解的时候,才会使得该参数为0,而这个显然不常见。

基于此当极值点是wi=0时,在反向传播时就会更倾向于将将wi优化至0.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/560033
推荐阅读
相关标签
  

闽ICP备14008679号