L1 和 L2 正则化

时间:2024-02-15 20:19:36

L1正则化与稀疏性

稀疏性
说白了就是模型的很多参数是0。 这相当于对模型进行了一次特征选择, 只留下一些比较重要的特
征, 提高模型的泛化能力, 降低过拟合的可能。

正则化
通过降低复杂模型的复杂度来防止过拟合的规则被称为正则化!
正则化方法是在经验风险或者经验损失\(L_{e m p}\)(emprirical loss)上加上一个结构化风险,我们的结构化风险用参数范数惩罚,用来限制模型的学习能力、通过防止过拟合来提高泛化能力。

  • L1正则化(Lasso回归):通过对损失函数加上所有权重值的绝对值来惩罚损失函数;

    \[J=J_{0}+\alpha \sum_{w}|w| \]

  • L2正则化(岭回归):通过对损失函数加上所有权重值的平方来惩罚失函数!

    \[J=J_{0}+\alpha \sum_{w} w^{2} \]

角度1: 解空间形状

在二维的情况下, 黄色的部分是L2和L1正则项约束后的解空间, 绿色的等高线是凸优化问题中目标函数的等高线。
L2正则项约束后的解空间是圆形, 而L1正则项约束的解空间是菱形。显然, 菱形的解空间更容易在尖角处与等高线碰撞出稀疏解。
L1正则化等价于在原优化目标函数中增加约束条件:\(\|w\|_{1} \leq C\)
L2正则化等价于在原优化目标函数中增加约束条件:\(\|w\|_{2}^{2} \leq C\)
L2正则化相当于为参数定义了一个圆形的解空间,而L1正则化相当于为参数定义了一个菱形的解空间。 如果原问题目标函数的最优解不是恰好落在解空间内, 那么约束条件下的最优解一定是在解空间的边界上, 而L1“棱角分明”的解空间显然更容易与目标函数等高线在角点碰撞, 从而产生稀疏解。

角度2: 函数叠加

仅考虑一维的情况, 多维情况是类似的。
假设棕线是原始目标函数\(L(w)\)的曲线图, 显然最小值点在蓝点处, 且对应的\(w*\)值非0。
考虑加上L2正则化项, 目标函数变成\(L(w)+C w^{2}\), 其函数曲线为黄色。此时, 最小值点在黄点处, 对应的\(w*\)的绝对值减小了, 但仍然非0。
考虑加上L1正则化项, 目标函数变成\(L(w)+C|w|\), 其函数曲线为绿色。此时, 最小值点在红点处, 对应的\(w*\)是0, 产生了稀疏性。

加入L1正则项后, 对带正则项的目标函数求导, 正则项部分产生的导数在原点左边部分是-C, 在原点右边部分是C, 因此,只要原目标函数的导数绝对值小于C, 那么带正则项的目标函数在原点左边部分始终是递减的, 在原点右边部分始终是递增的, 最小值点自然在原点处。
相反, L2正则项在原点处的导数是0, 只要原目标函数在原点处的导数不为0, 那么最小值点就不会在原点, 所以L2只有减小w绝对值的作用, 对解空间的稀疏性没有贡献。

角度3: 贝叶斯先验

L1正则化相当于对模型参数w引入了拉普拉斯先验, L2正则化相当于引入了高斯先验, 而拉普拉斯先验使参数为0的可能性更大

若假设\(w_{j}\)服从均值为0的高斯分布,即:\(w_{j} \sim N\left(0, \sigma^{2}\right)\),则有:

\[\log P(w)=\log \prod_{j} P\left(w_{j}\right)=\log \prod_{j}\left[\frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{\left(v_{j}\right)^{2}}{2 \sigma^{2}}}\right]=-\frac{1}{2 \sigma^{2}} \sum_{j} w_{j}^{2}+C^{\prime} \]

可以看到,在拉普拉斯分布下\(\log P(w)\)的效果等价于在代价函数中增加 L2正则项。

高斯分布在极值点(0点) 处是平滑的,也就是高斯先验分布认为w在极值点附近取不同值的可能性是接近的。 这就是L2正则化只会让w更接近0点, 但不会等于0的原因。

若假设\(w_{j}\)服从均值为0、参数为\(a\)的拉普拉斯分布,即:

\[P\left(w_{j}\right)=\frac{1}{\sqrt{2 a}} e^{\frac{-\left|w_{j}\right|}{a}} \]

则有:

\[\log P(w)=\log \prod_{j} \frac{1}{\sqrt{2 a}} e^{\frac{-\left|w_{j}\right|}{a}}=-\frac{1}{a} \sum_{j}\left|w_{j}\right|+C^{\prime} \]

可以看到,在拉普拉斯分布下\(\log P(w)\)的效果等价于在代价函数中增加 L1正则项。

拉普拉斯分布在极值点(0点) 处是一个尖峰, 所以拉普拉斯先验分布中参数w取值为0的可能性要更高。

L1 和 L2 的比较

L1优点是能够获得sparse模型,对于large-scale的问题来说这一点很重要,因为可以减少存储空间。缺点是加入L1后目标函数在原点不可导,需要做特殊处理。
L2优点是实现简单,能够起到正则化的作用。缺点就是L1的优点:无法获得sparse模型。

L1 求导问题

proximal operator:

\[\operatorname{prox}_{t h}(u)=\arg \min _{x}\left(\|x\|_{1}+\frac{1}{2 \lambda}\|x-u\|_{2}^{2}\right) \]

假设目标函数为:

\[\min f(x)=g(x)+h(x) \]

其中 \(g\) 是凸的,可微的,\(f\) 是闭的,凸的,可能不可微。

近端梯度算法:

\[x^{(k)}=\operatorname{prox}_{t_{k} h}\left(x^{k-1}-t_{k} \nabla g\left(x^{(k-1)}\right)\right. \]

\(t_{k}>0\)是步长,其是常数或者通过线性搜索确定。