L1正则和L2正则的推导 + L2正则与权重衰减等价的推导

3 篇文章 0 订阅

转载地址:

综合以下两篇博客:

https://www.jianshu.com/p/c9bb6f89cfcc

https://www.cnblogs.com/lliuye/p/9354972.html

正则化是一种回归的形式,它将系数估计(coefficient estimate)朝零的方向进行约束、调整或缩小。也就是说,正则化可以在学习过程中降低模型复杂度和不稳定程度,从而避免过拟合的危险。

一、数学基础

1. 范数

 

 

范数是衡量某个向量空间(或矩阵)中的每个向量以长度或大小。范数的一般化定义:对实数p>=1, 范数定义如下:

  • L1范数
    当p=1时,是L1范数,其表示某个向量中所有元素绝对值的和。
  • L2范数
    当p=2时,是L2范数, 表示某个向量中所有元素平方和再开根, 也就是欧几里得距离公式。

2. 拉普拉斯分布

如果随机变量的概率密度函数分布为:

那么它就是拉普拉斯分布。其中,μ 是数学期望,b > 0 是振幅。如果 μ = 0,那么,正半部分恰好是尺度为 1/2 的指数分布。

拉普拉斯分布的概率密度函数

 

3. 高斯分布

 

 

又叫正态分布,若随机变量X服从一个数学期望为μ、标准方差为σ2的高斯分布,记为:X∼N(μ,σ2),其概率密度函数为:

 

其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。当μ = 0,σ = 1时的正态分布是标准正态分布。

高斯分布的概率密度函数

还有涉及极大似然估计、概率论相关的先验和后验相关概率, 为了控制篇幅, 本文就不详细介绍, wiki百科和百度百科都讲得很清楚。

二、正则化解决过拟合问题

正则化通过降低模型的复杂性, 达到避免过拟合的问题。 正则化是如何解决过拟合的问题的呢?从网上找了很多相关文章, 下面列举两个主流的解释方式。

 

原因1:来自知乎上一种比较直观和简单的理解, 模型过于复杂是因为模型尝试去兼顾各个测试数据点, 导致模型函数如下图,处于一种动荡的状态, 每个点的到时在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。

而加入正则能抑制系数过大的问题。如下公式, 是岭回归的计算公式。

如果发生过拟合, 参数θ一般是比较大的值, 加入惩罚项后, 只要控制λ的大小,当λ很大时,θ1到θn就会很小,即达到了约束数量庞大的特征的目的。

原因二:从贝叶斯的角度来分析, 正则化是为模型参数估计增加一个先验知识,先验知识会引导损失函数最小值过程朝着约束方向迭代。 L1正则是拉普拉斯先验,L2是高斯先验。整个最优化问题可以看做是一个最大后验估计,其中正则化项对应后验估计中的先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计。
给定训练数据, 贝叶斯方法通过最大化后验概率估计参数θ:

说明:P(θ)是参数向量θ的先验概率。

 

下面我们从最大后验估计(MAP)的方式, 推导下加入L1和L2惩罚项的Lasso和岭回归的公式。
首先我们看下最小二乘公式的推导(公式推导截图来自知乎大神)

这个是通过最大似然估计的方法, 推导出线性回归最小二乘计算公式。

 

  • 假设1: w参数向量服从高斯分布
    以下为贝叶斯最大后验估计推导:

    最终的公式就是岭回归计算公式。与上面最大似然估计推导出的最小二乘相比,最大后验估计就是在最大似然估计公式乘以高斯先验, 这里就理解前面L2正则就是加入高斯先验知识。

     

  • 假设2: w参数服从拉普拉斯分布
    以下为贝叶斯最大后验估计推导:

    最终的公式就是Lasso计算公式。与上面最大似然估计推导出的最小二乘相比,最大后验估计就是在最大似然估计公式乘以拉普拉斯先验, 这里就理解前面L1正则就是加入拉普拉斯先验知识。

     

L1和L2正则化的比较

以线性回归为例(只含有两个参数w1,w2的情况。加上L1正则化后的优化目标(lasso回归):

min12m∑i=1n(hw(x(i))−y(i))2+λ∑j=12|wj|min12m∑i=1n(hw(x(i))−y(i))2+λ∑j=12|wj|


  加上L2正则化后的优化目标(岭回归):

min12m∑i=1n(hw(x(i))−y(i))2+λ∑j=12w2jmin12m∑i=1n(hw(x(i))−y(i))2+λ∑j=12wj2


  使用等高线图来表示原目标函数的图像为:


 

  也就是说,当参数 w1与w2w1与w2 取值为图像中最里面那个紫色圆圈上的值时,可以使得原目标函数最小。
  当加上L1正则项之后,目标函数图像为:


 

  当加上L2正则项之后,目标函数图像为:


 

  第一个图中菱形即为 ∑2j=1|wj|=F∑j=12|wj|=F ,而第二个图中圆形即为 ∑2j=1w2j=F∑j=12wj2=F 。代表这个菱形(圆形)上的点算出来的 ∑2j=1|wj|或∑2j=1w2j∑j=12|wj|或∑j=12wj2 都等于某个值 FF 。此时若要使得目标函数最小,就需要满足两个条件:(1)参数值在等高线上的圆圈越来越接近中心的紫色圆圈,(2)菱形越小越好( FF 越小越好)。
  那么如何取得一个恰好的值,能够满足以上两个条件呢?我们先来看下下面这个图(以L1正则化为例):


 

  以同一条原曲线目标等高线来说,现在以最外圈的红色等高线为例,我们看到,对于红色曲线上的每个点都可以做一个菱形,根据上图可知,当这个菱形与某条等高线相切(仅有一个交点)的时候,这个菱形最小,上图相割对比较大的两个菱形对应的L1正则化项更大。也就是说,相切时在使得 12m∑ni=1(hw(x(i))−y(i))212m∑i=1n(hw(x(i))−y(i))2 相同的情况下, λ∑2j=1|wj|λ∑j=12|wj| 最小,因此,该点能够使得 12m∑ni=1(hw(x(i))−y(i))2+λ∑2j=1|wj|12m∑i=1n(hw(x(i))−y(i))2+λ∑j=12|wj| 最小。
  由以上结论,我们可以看出,要使得加入L1正则化的解,一定是某个菱形和某条原函数等高线的切点。而通过观察我们可以看出,几乎对于很多原函数等高曲线,和某个菱形相交的时候及其容易相交在坐标轴(比如上图),也就是说最终的结果,解的某些维度及其容易是 00 ,比如上图最终解是 w=(0,x)w=(0,x) ,这也就是我们所说的L1更容易得到稀疏解(解向量中0比较多)的原因。
  接下来我们使用公式进行推导一下看。假设现在是在一维的情况下,目标函数看做是 J(w)=f(w)+λ|w|J(w)=f(w)+λ|w| ,其中 f(w)f(w) 为原目标函数, J(w)J(w) 为加了L1正则项之后的目标函数。 λ|w|λ|w| 是正则化项。那么要使得 00 点成为最值可能的点,即使在 00 点不可导,但是只需要让函数在 00 点左右的导数异号。即 J′左(w)×J′右(w)=(f′(0)+λ)×(f′(0)−λ)<0J左′(w)×J右′(w)=(f′(0)+λ)×(f′(0)−λ)<0 ,也就是 λ>|f′(0)|λ>|f′(0)| 时, 00 点都是可能的最值点。
  当加入L2正则化的时候,分析和L1正则化是类似的,也就是说我们仅仅是从菱形变成了圆形而已,同样还是求原曲线和圆形的切点作为最终解。当然与L1范数比,我们这样求的L2范数的从图上来看,不容易交在坐标轴上,但是仍然比较靠近坐标轴。因此这也就是我们老说的,L2范数能让解比较小(靠近0),但是比较平滑(不等于0)。
  综上所述,我们可以看见,加入正则化项,在最小化经验误差的情况下,可以让我们选择解更简单(趋向于0)的解。因此,加正则化项就是结构风险最小化的一种实现。

总结

  1. L2 regularizer :使得模型的解偏向于范数较小的 W,通过限制 W 范数的大小实现了对模型空间的限制,从而在一定程度上避免了 overfitting 。不过 ridge regression 并不具有产生稀疏解的能力,得到的系数仍然需要数据中的所有特征才能计算预测结果,从计算量上来说并没有得到改观。
  2. L1 regularizer :它的优良性质是能产生稀疏性,导致 W 中许多项变成零。 稀疏的解除了计算量上的好处之外,更重要的是更具有“可解释性”。

 

L2正则和权重衰减

1. 权重衰减(weight decay)

L2正则化的目的就是为了让权重衰减到更小的值,在一定程度上减少模型过拟合的问题,所以权重衰减也叫L2正则化。

 L2正则化与权重衰减系数L2正则化就是在代价函数后面再加上一个正则化项:

其中C0代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比重。系数λ就是权重衰减系数。

1.2 为什么可以对权重进行衰减

我们对加入L2正则化后的代价函数进行推导,先求导:

可以发现L2正则化项对b的更新没有影响,但是对于w的更新有影响:

在不使用L2正则化时,求导结果中w前系数为1,现在w前面系数为1-ηλ/n,因为η、λ、n都是正的,所以1-ηλ/n小于1,它的效果是减小w,这也就是权重衰减(weight decay)的由来。当然考虑到后面的导数项,w最终的值可能增大也可能减小。

另外,需要提一下,对于基于mini-batch的随机梯度下降,w和b更新的公式跟上面给出的有点不同:

对比上面w的更新公式,可以发现后面那一项变了,变成所有导数加和,乘以η再除以m,m是一个mini-batch中样本的个数。

1.3 权重衰减(L2正则化)的作用:

权重衰减(L2正则化)可以避免模型过拟合问题。思考:L2正则化项有让w变小的效果,但是为什么w变小可以防止过拟合呢?原理:(1)从模型的复杂度上解释:更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合更好(这个法则也叫做奥卡姆剃刀),而在实际应用中,也验证了这一点,L2正则化的效果往往好于未经正则化的效果。(2)从数学方面的解释:过拟合的时候,拟合函数的系数往往非常大,为什么?如下图所示,过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值