Liam0205 / liam0205.github.io

Deployment of my weblog.
https://liam0205.github.io
35 stars 5 forks source link

谈谈 L1 与 L2-正则项 | 始终 #169

Open Liam0205 opened 5 years ago

Liam0205 commented 5 years ago

https://liam.page/2017/03/30/L1-and-L2-regularizer/

在前作里,我们讨论了机器学习里的偏差-方差权衡。机器学习里的损失函数(代价函数)可以用来描述模型与上帝真相(ground truth)之间的差距,因此可以解决「偏差」的问题。但是仅有损失函数时,我们无法解决方差的问题,因而会有过拟合风险。 今次我们讨论损失函数的反面——正则项,看看 $L_1$-正则项和 $L_2$-正则项是如何使机器学习模型走出过拟合的泥沼的。

changchang0801 commented 5 years ago

可以谈谈什么时候用L1什么时候用L2么?从区别的角度还是没有一下子明白

Liam0205 commented 5 years ago

@changchang0801 这个其实是看你追求的是什么。就像文章中说的,L1 倾向于得到稀疏解,L2 倾向于得到平滑解。 所以,在需要稀疏性的场景下,比如 online learning 的场景下,需要稀疏解。这时候,就需要各种魔改 L1 的用法。

fangding678 commented 4 years ago

在真实的计算中,L1正则如何得到0呢?参数w=0.005,梯度更新之后w=-0.002,这样w也一直在0附近震荡,无法达到0呀

yuriyao commented 3 years ago

@fangding678 在真实的计算中,L1正则如何得到0呢?参数w=0.005,梯度更新之后w=-0.002,这样w也一直在0附近震荡,无法达到0呀

如果参数值接近于0,直接设置为0;下一次参数更新导致损失变大了,就不更新了,