L1 L2 LASSO问题
Sparsity 是当今机器学习领域中的一个重要话题。John Lafferty 和 Larry Wasserman 在 2006 年的一篇评论中提到: Some current challenges … are high dimensional data, sparsity, semi-supervised learning, the relation between computation and risk,
Sparsity 是当今机器学习领域中的一个重要话题。John Lafferty 和 Larry Wasserman 在 2006 年的一篇评论中提到:
Some current challenges … are high dimensional data, sparsity, semi-supervised learning, the relation between computation and risk, and structured prediction.John Lafferty and Larry Wasserman. Challenges in statistical machine learning. Statistica Sinica. Volume 16, Number 2, pp. 307-323, 2006.
Sparsity 的最重要的客户
大概要属 high dimensional data 了吧。现在的机器学习问题中,具有非常高维度的数据随处可见。例如,在文档或图片分类中常用的 bag of words 模型里,如果词典的大小是一百万,那么每个文档将由一百万维的向量来表示。高维度带来的的一个问题就是计算量:在一百万维的空间中,即使计算向量的内积这样的基本操作也会是非常费力的。不过,如果向量是稀疏的的话(事实上在
bag of words 模型中文档向量通常都是非常稀疏的),例如两个向量分别只有
当然高维度带来的问题不止是在计算量上。例如在许多生物相关的问题中,数据的维度非常高,但是由于收集数据需要昂贵的实验,因此可用的训练数据却相当少,这样的问题通常称为small
——我们一般用
使用 square loss 来进行学习的话,就变成最小化如下的问题
这里
eq: 1 ?
然而,如果
解决 overfitting 最常用的办法就是 regularization ,例如著名的 ridge regression 就是添加一个
直观地来看,添加这个 regularizer 会使得模型的解偏向于 norm 较小的
其中
不过,特别是在像生物或者医学等通常需要和人交互的领域,稀疏的解除了计算量上的好处之外,更重要的是更具有可解释性
。比如说,一个病如果依赖于 5 个变量的话,将会更易于医生理解、描述和总结规律,但是如果依赖于 5000 个变量的话,基本上就超出人肉可处理的范围了。
在这里引入稀疏性的方法是用
eq: 2 ?
该问题通常被称为 LASSO (least absolute shrinkage and selection operator) 。LASSO 仍然是一个 convex optimization 问题,不过不再具有解解析解。它的优良性质是能产生稀疏性,导致
可是,为什么它能产生稀疏性呢?这也是一直让我挺感兴趣的一个问题,事实上在之前申请学校的时候一次电话面试中我也被问到了这个问题。我当时的回答是背后的理论我并不是很清楚,但是我知道一个直观上的理解。下面我们就先来看一下这个直观上的理解。
首先,很 ridge regression 类似,上面形式的 LASSO 问题也等价于如下形式:
也就是说,我们将模型空间限制在
fig: 1 ?
-
?1 -ball meets quadratic function.?1 -ball has corners. It’s very likely that the meet-point is at one of the corners. -
?2 -ball meets quadratic function.?2 -ball has no corner. It is very unlikely that the meet-point is on any of axes."
可以看到,角
出现,而目标函数的测地线除非位置摆得非常好,大部分时候都会在角的地方相交。注意到在角的位置为产生稀疏性,例如图中的相交点就有
相比之下,
不过,如果只限于 intuitive 的解释的话,就不那么好玩了,但是背后完整的理论又不是那么容易能够搞清楚的,既然这次的标题是 Basics ,我们就先来看一个简单的特殊情况好了。
接下来我们考虑 orthonormal design 的情况:
注意到 LASSO 的目标函数 (eq:
2) 是 convex 的,根据 KKT 条件,在最优解的地方要求 gradient
def: 1 ?
定义 subgradient; subdifferential
对于在
注意 subgradient 和 subdifferential 只是对凸函数定义的。例如一维的情况,
性质 condition for global minimizer
点
证明很简单,将
eq: 3 ?
然后我们再来看 LASSO ,假设
gradient 存在,此时 wˉj≠0
由于 gradient 在最小值点必须要等于零,我们有
亦即
根据 orthonormal design 性质以及 least square 问题在 orthonormal design 时的解 (eq: 3) 化简得到
从这个式子也可以明显看出
再用一次
于是刚才的式子可以进一步写为
eq: 4 ?
这里
gradient 不存在,此时 wˉj=0
根据 subgradient 在最小值点处的性质的性质,此时比有
亦即存在
于是
又因为
fig: 2 ?
图上画了原始的 least square 解,LASSO 的解以及 ridge regression 的解,用上面同样的方法(不过由于 ridge regularizer 是 smooth 的,所以过程却简单得多)可以得知 ridge regression 的解是如下形式
可以 ridge regression 只是做了一个全局缩放,而 LASSO 则是做了一个 soft thresholding :将绝对值小于
上面的文字,前半段看懂了,后半段功力不够,还没有看懂
下面就讲下个人的直观理解:
l2正则可以防止参数估计的过拟合,但是选择合适lambda比较困难,需要交叉验证。如果有个特征与输出结果不相关,则L2会给一个特别小的值,但是不会为0.
l1正则会产生稀疏解,即不相关的的特征对应的权重为0,就相当于降低了维度。但是l1的求解复杂度要高于l2,并且l1更为流行