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)\)的效果等价于在代价函数中增加 L2正则项。
高斯分布在极值点(0点) 处是平滑的,也就是高斯先验分布认为w在极值点附近取不同值的可能性是接近的。 这就是L2正则化只会让w更接近0点, 但不会等于0的原因。
若假设\(w_{j}\)服从均值为0、参数为\(a\)的拉普拉斯分布,即:
则有:
可以看到,在拉普拉斯分布下\(\log P(w)\)的效果等价于在代价函数中增加 L1正则项。
拉普拉斯分布在极值点(0点) 处是一个尖峰, 所以拉普拉斯先验分布中参数w取值为0的可能性要更高。
L1 和 L2 的比较
L1优点是能够获得sparse模型,对于large-scale的问题来说这一点很重要,因为可以减少存储空间。缺点是加入L1后目标函数在原点不可导,需要做特殊处理。
L2优点是实现简单,能够起到正则化的作用。缺点就是L1的优点:无法获得sparse模型。
L1 求导问题
proximal operator:
假设目标函数为:
其中 \(g\) 是凸的,可微的,\(f\) 是闭的,凸的,可能不可微。
近端梯度算法:
\(t_{k}>0\)是步长,其是常数或者通过线性搜索确定。