赞
踩
本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。
整理成了面试系列,由于时间有限,每天整理一点,后续会陆续分享出来,感兴趣的朋友可关注+收藏
同时,也欢迎查看开发面试经验合集:
Java、Android面试高频系列文章合集
这篇讲得非常好:https://zhuanlan.zhihu.com/p/376000306
两者是用来控制模型复杂度和防止过拟合的常见手段,其公式如下:
其中L1正则化是加上参数的绝对值的和,而L2正则化是加上参数的平方和。
(1)L1正则化
L1正则化通过向损失函数添加参数的绝对值之和来惩罚模型的复杂度。L1正则化倾向于使一些参数变为0,从而可以用于特征选择,即自动减少不重要的特征。这使得模型更具稀疏性,有助于降低特征维度和模型复杂度。
(2)L2正则化
L2正则化通过向损失函数添加参数的平方之和来惩罚模型的复杂度。与L1正则化不同,L2正则化不会强制使参数变为零,但会让参数逐渐趋近于零。L2正则化会使各参数相对更加平滑,提高模型的稳定性。
对公式求导,就可以看0附近的导数是否导致0是其邻域内的极值点,如下所示:
上面的推导表明,对于L1,0的邻域内,存在某种条件,使得导数先负后正,即函数先减后增,所以0是极值点。而条件是:原损失函数J在某参数为0处的导数在(−a/n,a/n)范围内。这个条件,说直白一点就是有没有某特征对损失函数影响不大。
而L2在0处的导数,就等于J在0处的导数。只有当原始优化问题的最优解本身就是稀疏解的时候,才会使得该参数为0,而这个显然不常见。
基于此当极值点是wi=0时,在反向传播时就会更倾向于将将wi优化至0.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。