L1和L2正则化
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\)是步长,其是常数或者通过线性搜索确定。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。