L1正则化与L2正则化详解

什么是正则化?

正则化在DL、ML中的含义为,为模型取得较好的泛化性,在目标函数中添加的相应惩罚项。
通俗的来讲:
正则化的加入就是为了提高模型的表征能力与适应能力,使其不至于对训练数据集产生过拟合现象。

L1、L2正则化公式

L1正则化其就是惩罚项采用了L1范数而得名的,简单且不严谨的理解L1范数就是绝对值。
加入L1正则化之后的损失函数为:
J ^ ( ω ; X , y ) = J ( ω ; X , y ) + λ ∥ ω ∥ 1 \hat{J}(\omega;X,y)=J(\omega;X,y)+\lambda\parallel\omega\parallel_1 J^(ω;X,y)=J(ω;X,y)+λω1
L2正则化与L1相类似,只不过是采用了L2范数,可以理解为是平方根形式的惩罚项。
加入L2正则化之后的损失函数为:
J ^ ( ω ; X , y ) = J ( ω ; X , y ) + λ 2 ∥ ω ∥ 2 2 \hat{J}(\omega;X,y)=J(\omega;X,y)+\frac{\lambda}{2}\parallel\omega\parallel^2_2 J^(ω;X,y)=J(ω;X,y)+2λω22
从上述2个公式可以了解到如下两点:

  1. 加入L1正则化的模型在权重学习的过程中会将大量的参数置为0。
  2. 加入L2正则化的模型在权重学习的过程中会将大量的参数置为很小的值。
    (保留所有的项【最主要是高次项系数】)

正则化的作用

  1. L1、L2正则化在一定程度上可以防止过拟合,可以提高模型的泛化能力。
    但是 λ \lambda λ取合适的值可以防止过拟合:
    λ \lambda λ值较大,则会发生欠拟合;若 λ \lambda λ值较小,则不能起到防止过拟合的作用。
  2. L1正则化带来的一个好处就是会训练得到一个参数较为稀疏的模型,也称L1正则化为嵌入式特征选择器。
    此时 λ \lambda λ的取值就与模型的稀疏性有关。
    λ \lambda λ值较大,则模型更稀疏;若 λ \lambda λ值较小,则模型较复杂。
    在已知有L1正则化的前提下,想要得到更加稀疏的模型,就需要加大 λ \lambda λ值。
    为什么要更加稀疏的模型?
    个人解读:在达到相同目的的情况下,模型越简单,更加轻量化是更好的选择。有利于上线做预测,缩短响应时间,有利于分布式部署,更可以长时间驻留内存。

为什么加入L1正则化的模型会更稀疏

这个问题也可以变为:为什么L1正则化会将某些参数置为0,而L2会保留?
可以从以下4个视角来解读:

1.梯度视角

L1正则化在更新时,梯度计算如下:
∂ J ∂ ω = ∇ J ( ω ; X , y ) + λ \frac{\partial{J}}{\partial\omega}=\nabla{J(\omega;X,y)}+\lambda ωJ=J(ω;X,y)+λ
L2正则化在更新时,梯度计算如下:
∂ J ∂ ω = ∇ J ( ω ; X , y ) + λ ω \frac{\partial{J}}{\partial\omega}=\nabla{J(\omega;X,y)}+\lambda\omega ωJ=J(ω;X,y)+λω
可以看出L1在每次更新时都是以 λ \lambda λ为步长向0逼近,而L2在每次更新时都是以 λ ω \lambda\omega λω的步长将 ω \omega ω向0逼近。
基于此,由于 ω \omega ω的大小一直在变小,所以L2正则化的步长也随之变小,而L1正则化这项为常数,则会将其以不变的步长向0逼近,直至 ω \omega ω的取值为0。L2正则化在数值越大的参数
这个过程可以类比于:将一根长度为1m的木棒剪短的事件,
L1正则化每次剪短2cm
L2正则化每次剪短一半
所以L1正则化经过50次,将木棒彻底剪没。
L2则会永不停歇的向0m靠近,而永远不会达到0

2.解空间形状视角

L2、L1对应的解空间
L2、L1对应的解空间
由于L2,L1对应的解空间为黄色部分,所以在最小化损失函数时,L1正则化则常常相切于坐标轴上(把某些参数置为0),L2正则化则常常相切于象限内。
【注意】

  1. L2、L1正则化的解空间的大小相同。
  2. L1 并非只相切于坐标轴上的点,有可能相切于边上,如果某一最优解在某边的法向量上。
  3. L2 同理也并非只相切于象限内。

为何黄色区域为解空间?

其实“带正则项”和“带约束条件”是等价的,最终条件是为了解决带约束条件的凸优化问题(拉格朗日对偶问题)

3.函数叠加视角

在这里插入图片描述
将问题简化为1维的CostFunction上图中内容解释:

  1. 绿点所在的曲线为原始的 C o s t F u n c t i o n = L CostFunction = L CostFunction=L,绿点为其最优解
  2. 黄点所在的曲线为加入L2正则化后的 C o s t F u n c t i o n = L + C x 2 CostFunction = L+Cx^2 CostFunction=L+Cx2,黄点为其最优解
  3. 红点所在的曲线为加入L1正则化后的 C o s t F u n c t i o n = L + C ∣ x ∣ CostFunction = L+C\mid{x}\mid CostFunction=L+Cx,红点为其最优解

为何L1正则化可将参数置为0

其实从上图可以看出,
L1正则化的C在0点左边为负,0点右边为正。则正则项整体的趋势是将x往0点拉,若0点附近L的导数的绝对值没有C的大则会将x置为0
L2正则化在0点前后的导数虽然不同,但是在0点事取到0,但若是L的导数在0点不为0,则会将最优解拉离0点。

4.贝叶斯先验视角

从贝叶斯的角度来看,可以理解为L1正则化相当于对参数 ω \omega ω引入了拉普拉斯先验,L2正则化相当于对参数 ω \omega ω引入了高斯先验
高斯分布曲线如下:
在这里插入图片描述
高斯分布0点分布较为平滑,可以取相近的值,效果相同。
拉普拉斯分布曲线:
在这里插入图片描述
拉普拉斯分布在0点较为尖锐,取到0点的可能性更高。

Reference

[1] 《Machine Learning》P252-P254
[2] 《Deep Learning》P141-P146
[3] 《百面机器学习》P164-P168
[4] https://blog.csdn.net/red_stone1/article/details/80755144
[5] https://blog.csdn.net/jinping_shi/article/details/52433975
[6] https://www.zhihu.com/question/37096933
[7] 【高斯分布与拉普拉斯分布图片出处】https://blog.csdn.net/qq_38923076/article/details/82936335

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值