美文网首页
学习笔记-L1与L2正则化

学习笔记-L1与L2正则化

作者: Pluto_wl | 来源:发表于2020-03-02 16:38 被阅读0次

    当模型过拟合时,我们常常使用正则化去减轻模型的复杂度。它主要在损失函数后添加正则项去约束模型。

    L1与L2正则化

    L1 norm :loss(y_i, \hat y_i|w)= loss(y_i,\hat y_i|w)+\lambda \left \| w \right \|_1\left \| w \right \|_1表示参数wL1范式。

    L2 norm :loss(y_i, \hat y_i|w)= loss(y_i,\hat y_i|w)+\lambda \left \| w \right \|_{2}^{2}, \left \| w \right \|_{2}表示参数wL2范式。

    • 相同点
      都会使参数变小,减轻模型过拟合

    • 不同点

      1. L1会使部分参数变为0,使得参数稀疏。类似于特征选择,将不重要的特征变为0。一般用于输入特征之间具有相关性。
      2. L2会使参数变小,使得参数矩阵变得平滑。小的参数可以抵抗更强的噪音,假设y=w_1x_1+w_2x_2,令w_1=0.5。当噪音x_1=2得到来得时候,现在由0.5产生的噪音为1,如果w_1等于0.1时,那么产生的噪音为0.2,比1小的多,所以小的参数可以抵抗噪音。

    L1使参数为0的原因
    假设参数矩阵是二维的,即(w_1,w_2), L1正则化相当于定义了一个矩形的解空间,L2正则化定义了圆形的解空间。可以从图中看到,L1正则化解空间棱角分明,更容易在在坐标轴处与目标函数的等高线相切。可以想象在高维的参数矩阵中,棱角会密密麻麻,在棱角处总会产生一个或多个w=0。所以含有L1正则化项的目标函数的最优解中,有很多参数的值都为0,即得到稀疏模型。

    来自于参考文献3

    L2使参数变小的原因
    假设损失函数为均方差损失函数,f(x)表示模型,\theta表示模型参数,为计算简单,只使用样本i进行损失函数的计算。
    J(\theta)=\frac{1}{2}(f(x)_i-y_i)^2
    使用梯度下降法对参数更新

    • 求导
      \frac{\mathrm{d(J(\theta))} }{\mathrm{d} \theta}=(f(x)_i-y_i)x_i
    • 更新参数
      \theta=\theta- lr*(f(x_i)-y_i)x_i

    加入L2正则后
    J(\theta)=\frac{1}{2}(f(x_i)-y_i)^2+ \frac{1}{2} \lambda \left \| \theta \right \|_2^2
    使用梯度下降法对参数更新

    • 求导
      \frac{\mathrm{d(J(\theta))} }{\mathrm{d} \theta}=(f(x_i)-y_i)x_i +\lambda \theta
    • 更新参数
      \theta=\theta- lr*[(f(x_i)-y_i)x_i+\lambda \theta]
      \theta=\theta(1-lr*\lambda)-lr*(f(x_i)-y_i)

    比较两者的参数更新函数,可以看到加入L2正则化后,等号右边的\theta多乘了一项小于0的数,所以\theta会越来越小

    L1和L2参数的选择

    1. 根据经验选择
    2. 使用交叉验证的方式选择

    L1正则化的问题

    岭回归与Lasso回归

    岭回归
    Ridge回归:又叫岭回归。在线性回归的损失函数上加L2正则化,其公式入下:
    J(\theta) = \frac{1}{2}(f(X) -Y)^2 + \frac{1}{2}\lambda||\theta||_2^2

    使用梯度下降法求参数\theta时,参数利用下方公式进行更新,lr为学习率
    \mathbf\theta= \mathbf\theta -\lambda (f(X)^T(f(X) - Y) + lr *\theta)
    岭回归的代价函数仍然是一个凸函数,因此可以利用梯度等于0的方式求得全局最优解(正规方程)。换句话说,使用最小二乘法更新参数时,可以直接求出\theta的解析解(解的具体函数形式,从解的表达式中就可以算出任何对应值)
    \theta = (f(X)^Tf(X) + \lambda E)^{-1}f(X)^TY

    上述正规方程与一般线性回归的正规方程相比,多了一项λE,其中E表示单位矩阵。假如X^TX是一个奇异矩阵(不满秩),添加这一项后可以保证该项可逆。由于单位矩阵的形状是对角线上为1其他地方都为0,看起来像一条山岭,因此而得名。

    Lasso回归
    Lasso回归:在线性回归的损失函数上加L1正则化,公式如下:
    J(\mathbf\theta) = \frac{1}{2}(X-Y)^2 + \alpha||\theta||_1
    由于L1正则化可以使参数矩阵稀疏,达到特征选择的效果。但同时也带来了Lasso损失函数不是连续可导的,原因是当我们对损失函数求导时,\frac{\mathrm{d(J(\theta))} }{\mathrm{d} (||\theta||)}是个分段函数,需要考虑当\theta >0,\theta<0\theta=0这三种情况。通常使用坐标下降法来对求得Lasso的参数。

    Lasso 求导
    • 与梯度下降的不同
      坐标下降法的思想是在所有坐标中选取一个坐标作为下降的方向,固定其他坐标。然后进行迭代的操作。与梯度下降法不同,梯度下降法是根据当前梯度的负方向下降,而坐标下降是沿着坐标的方向下降。

    • 坐标下降的数学依据


      来自参考文献3
    • 计算流程


      a
    b
    c
    我们得到当的时候,w的参数就更新为0

    elastic net

    根据上文我们知道l1正则化具有特征选择的功能,但是当多个特征具有很强的相关性时,它是否能选择出最好的特征呢?这显示是不能的。
    举例说明一下:假设特征可以分为两组t1(x1,x3,x5),t2(x2,x4)。当选取特征x1与x2时,模型效果最好,但是L1正则是随机选则的特征,有可能是x3,x4,也有可能是其他。
    解决这个问题的方法是同时使用L1正则和L2正则。

    • 优点
    1. grouped selection
    2. 结合了L1和L2正则化的优点,从下图中可以看到,Elastic Net的解空间综合了L1和L2的特点


      d
    • 在具有多个特征,并且特征之间具有一定关联的数据中比较有用

    参考文献

    1.《统计学习方法》第二版 李航

    1. https://blog.csdn.net/vincent2610/article/details/53408088
    2. https://cloud.tencent.com/developer/article/1456966
    3. https://www.cnblogs.com/pinard/p/6018889.html (强烈推荐)
    4. https://www.cnblogs.com/Belter/p/8536939.html (推荐)

    心声:刚开始写博客真的好难啊!感觉自己写的既不清楚了又没条理。再接再厉!

    相关文章

      网友评论

          本文标题:学习笔记-L1与L2正则化

          本文链接:https://www.haomeiwen.com/subject/nfmmhhtx.html