您的位置:首页 > 其它

机器学习稀疏之L1正则化

2015-01-22 10:21 453 查看
一、L1正则化

在L0 正则化中,通常我们有很多特征时, 这样在计算后验形式p(r|D) 有很大的复杂度。即使利用贪心算法,很容易陷入局部拟合情况。

其中一部分原因是因为 rj 特征是离散形式的, 这样造成目标函数的不光滑, 


在优化领域中,通常的做法是对于离散的约束,我们通过松弛的方法来将其变为连续的约束。 我们可以在spike-and-slab 尖峰与平波模型中,通过在wj =0, 的 阶跃函数 取值处来用一定大小的概率值进行代替,这样通过在wj =0 用一定值代替,来构造成为连续函数的形式,这样来接近原始模型, 比如可以用零均值的laplace 模型代替。 这里我们应用了laplace
具有的长尾,(并且这里对于异常值的鲁棒对长尾的模型是很好的,正太情况将会有很大的异常变化。)



从图中可以看出, u = 0,也存在尖峰的,这样就可以用连续的形式进行代替,从而更好的优化目标函数。

更加精确的我们利用的Laplace
模型作为先验

             



我们用均匀先验的形式在截距项 

,
, 因而在MAP 估计,其带罚的负log 似然形式为:

             



其中  

 为
w 的L1模, 利用合适的 

, 可得到稀疏的 

 ,
这里 我们认为 LI 正则是L0 非凸函数的 凸近似, 因为 L0 的模值 是0 ,wi, wj , ... 0 ... 每个是离散的, 而L1 模 是 |wj| 的加和, 因而是连续的一个值的过程,因而是凸近似。

所以在 线性回归中 L1 目标函数:

             


通常 用 0均值Laplace 先验参数, 这样的MAP估计就是L1正则,存在着 凸的和非凸的NLL项, 有很多算法设计解决这个问题(这个以后讨论)。

二、 为什么 L1 正则产生的是稀疏解

我们现在来说说 L1 产生的是稀疏解, 而L2 不是。我们主要以线性回归为例说明,这个在 逻辑回归和 其他GLMs 中是相似的。 

虽然L1 是连续的,但是 还是不光滑的函数, 所以不光滑的目标函数为:

            



我们将其进行改写, 将后面的作为约束,但是变为光滑的目标函数: (二次函数 约束是线性的)

            



 B是 w 的L1 模的上界, 小的 B 对应的是  

 大的罚项。
 上式的光滑加约束的形式 ,就是 LASSO, 表示 “least absolute shrinkage and selection operator”, 最小绝对值收缩及选择算子。

同样对于 ridge regression L2 正则,  也可进行约束改写:

。 

 通过图形来直观的解释:



我们首先画出RSS 目标函数的轮廓线, 和 L1 、 L2 的约束边界线。 根据优化原理, 最优解点存在在图中阶数最小处的点,即 顶点处,  因而LI 是四个角点, L2 整个圆周处。 对于L1约束范围 进行扩张,
这时角点更容易接触到目标函数,尤其在高维的情况下, 角点是突出的,角点对应的是稀疏解。  对于L2, 是一个球, 没有角点, 所以没有更好的点来进行稀疏。

另外的看法, 对与 岭回归,  比如 坐标点是稀疏解, 比如 w=(1, 0),, 这时其cost  与 dense 解相同(稠密解, 因为没有在坐标轴上,没有值为0) ,  如

,
  即: 



而对于 lasso , w = (1, 0) 的花费是比


更小的。

         



最严密的方法对于L1 产生的是稀疏解是检验其是否具备 优化条件。

三、 lasso 满足的优化条件

lasso 的目标函数形式: 

 ,
 由于 

在wj = 0 处 不是连续可导的, 即是折线式的增长, 因而我们要进行的是非光滑的优化过程。

为了能操作不光滑的函数,我们需要定义一个倒数符号: 定义子导数(次梯度) subderivative 或 subgradient . 对于函数f , 在 点

 处(此处是不光滑的)定义一个标量有
g:  

           




可以看到蓝线即为不光滑的,在X0 ,不光滑点 ,我们 利用c, 或者c‘ 处直线的导数 ,即斜率来近似此处的导数。 这样就得到子导数了。

I 是

 的一个邻域区间,
我们定义子导数 在区间[a, b] 这个是次梯度, 子导数的集合, 上有, a, b 是单侧极限

           



在集合[a, b]上 , 这一区间的子导数 叫做f 的 子一致可导点,  在

表示为 

。 

举个例子 , 对于绝对值函数 , 

,
其子导数 实在 

 = 0 点, 所以有:

          



这样整个函数都可导了, 并且我们能够找到局部最小点 即 在点 

,
 处有 

 满足。

通过之前的分析知道了对于含有L1模项可以利用子导数来进行求解, 因而我们对于 RSS 项时:

           



其中w-j 是不包含第j 个成分的, xi,-j 也是这样的。  cj 项描述的是第 j 个特征x:,j 和 由于其他特征得到的残差项的相关性大小, r-j = y - X:-jw-j. 因此 cj 的大小描述的是 第j  个参量 与预测值y 的相关程度。 因为消除了其他项的成分。

这样整体目标函数有:

             



这两者等价的。 我们要找最优解,求导 = 0 ,这时 的wj 的取值, 与cj 有关存在三种情况:

1) 如果 


此式 cj 与残差强负相关, 这时的子梯度为零(即最小值)在



2) 若 

,
,此式与残差弱相关,且得到的



3)  若 

,
此时 cj 与残差 强正相关, 且有   





所以综合以上三种情况有:

           



可以写作: 

          

 

其中 

 是正的
x 部分, 这个叫做软阈值。 下面左图中, 我们画 

, 根据cj 的取值来画,  虚线表示 wj = cj/aj , 对应的是最小二乘拟合的情况,
 实现对应的是

(cj)利用正则估计的结果,  移动虚线点的位置 大小为 


特别在-

 <= cj <= 

 ,
这时有wj = 0。

相反的情况是右边的图, 硬阈值情况,只是在在-

 <=
cj <= 

 , 这时有wj = 0, 其他情况不进行收缩。 



在软阈值的情况, 软阈值线 的斜率与 对角线并不相关, 这就是说即使大的系数也可能收缩到0,  这样 lasso 是有偏估计。  这是我们不期望发生的, 因为 如果似然表明(通过cj) 其系数 wj 是很大的, 我们 就不想去收缩它。 这个将后续讨论。

这样我们就明白了为什么lasso 叫做“least absolute selection and shrinkage operator” 因为他选择一部分变量, 并且对所有的系数都通过罚的绝对值进行收缩,  如果

=0,
 我们得到的是OLS解(最初的), 如果

 ,
我们将得到 

 = 0.  其中

           

 

 这时的系数将都为0 ,  这时将没有意义,因此通常我们将取 最大罚为 L1  正则化目标。

      



四、总结

L1 正则可以通过子集凸近似的过程变光滑,并且也可实现稀疏的过程,因而其应用更加广范。 并且也解释了 L2 不能用来进行稀释,而 L1 可以。 

五、参考文献

1. 《Machine Learning A Probabilistic Perspective》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: