机器学习-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正则化不具有稀疏性的原因