机器学习-L1和L2正则化理解

一. 正则化

1. 什么是正则化

正则化(Regularization) 是机器学习中对原始损失函数引入额外信息(模型复杂度惩罚项),以便防止过拟合和提高模型泛化性能的一类方法的统称。也就是 目标函数变成了原始损失函数+额外项.

  • 常用的额外项一般有两种,英文称作\(ℓ1−norm\)\(ℓ2−norm\),称作L1正则化和L2正则化,或L1范数和L2范数(实际是L2范数的平方)。
  • L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓惩罚是指对损失函数中的某些参数做一些限制。
    对于线性回归模型,使用L1正则化的模型叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归

2. L1正则化和L2正则化

L1正则化损失函数:

\[ min_w \sum_{i}^{N}(w^Tx_i - y_i)^2 + λ||w||_1 (1) \]

L2正则化损失函数:

\[ min_w \sum_{i}^{N}(w^Tx_i - y_i)^2 + λ||w||_2^2 \]

3. 正则化作用

  • L1正则化可以使得参数稀疏化,即得到的参数是一个稀疏矩阵,可以用于特征选择
  • L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合

4. 带正则项和带约束条件等价

最优化+约束条件

  • 为了约束w的可能取值空间从而防止过拟合,我们为该最优化问题加上一个约束,就是w的L1范数不能大于m:

\[ \left\{ min\sum_{i=1}^N(w^Tx_i-y_i)^2 \\ s.t. ||w||_1<=m. \right. \]

  • 问题转化为带约束条件的凸优化问题,拉格朗日函数:

\[\sum_{i=1}^N(w^Tx_i-y_i)^2+λ(||w||_1-m) \]

此式与公式1等价

  • \(W_∗\)\(λ_*\)是原问题的最优解,则根据KKT条件得:

\[\left\{\begin{array}{l} 0=\nabla_{w}\left[\sum_{i=1}^{N}\left(W_{*}^{T} x_{i}-y_{i}\right)^{2}+\lambda_{*}\left(\|w\|_{1}-m\right)\right] \\ 0 \leqslant \lambda_{*} \end{array}\right. \]

二. 正则化理解

  • 设L1正则化损失函数:\(J=J0+λ∑_w|w|\) 其中,\(J0=∑_{i=1}^N(w^Txi−y_i)2\) 是原始损失函数,
    加号后面的一项是L1正则化项,λ是正则化系数。

  • 注意到L1正则化是权值的绝对值之和,J是带有绝对值符号的函数,因此J是不完全可微的。机器学习的任务就是要通过一些方法(比如梯度下降)求出损失函数的最小值。

  • 当我们在原始损失函数J0后添加L1正则化项时,相当于对\(J0\)做了一个约束。
    \(L=λ∑_w|w|\),则\(J=J0+L\),此时我们的任务变成 在L约束下求出J0取最小值的解

  • 考虑二维的情况,即只有两个权值w1和w2,此时\(L=|w1|+|w2|\)
    对于梯度下降法,求解J0的过程可以画出等值线,同时L1正则化的函数L也可以在w1、w2的二维平面上画出来。如下图:

  • 上图中等值线是J0的等值线,黑色方形是L函数的图形。在图中,当J0等值线与L图形首次相交的地方就是最优解。

  • 上图中J0与L在L的一个顶点处相交,这个顶点就是最优解。注意到这个顶点的值是\((w1,w2)=(0,w2)\)。可以直观想象,因为L函数有很多突出的角(二维情况下四个,多维情况下更多),而在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择。

  • 二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此J0与L相交时使得w1或w2等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因

参考

posted @ 2022-04-15 17:46  topbookcc  阅读(246)  评论(0编辑  收藏  举报
/* 鼠标点击求赞文字特效 */