1. Least-squares(最小二乘法)是最经典的机器学习算法,后续的大部分机器学习算法(包括题主提到的Lasso,ridge regression)都是在其基础上发展而来的。Linear model即Linear least squares, Lasso,ridge regression,只要求得其参数Linear least squares, Lasso,ridge regression,便可以得到自变量Linear least squares, Lasso,ridge regression与因变量Linear least squares, Lasso,ridge regression的映射关系。因此有监督回归的任务就是通过Linear least squares, Lasso,ridge regression个成对的训练样本Linear least squares, Lasso,ridge regression来求得学习模型的参数Linear least squares, Lasso,ridge regression

2. 最小二乘法是对模型的输出Linear least squares, Lasso,ridge regression和训练样本的输出Linear least squares, Lasso,ridge regression的平方误差Linear least squares, Lasso,ridge regression为最小时的参数Linear least squares, Lasso,ridge regression进行学习Linear least squares, Lasso,ridge regression称之为损失函数。随着学习模型Linear least squares, Lasso,ridge regression复杂度的提高,这种经典最小二乘法存在的诸多缺陷也表露出来,其中一个重要的问题就是对训练数据的过拟合(overfitting)。过拟合的原因被认为是学习模型相比真实模型过于复杂。因此为解决过拟合问题,可在损失函数的后面加上一个约束条件从而限制模型的复杂度,这个约束条件即为正则化项(regularizer)。典型的正则化方法就是引入Linear least squares, Lasso,ridge regression约束,Linear least squares, Lasso,ridge regression约束的约束条件是参数的Linear least squares, Lasso,ridge regressionLinear least squares, Lasso,ridge regression范数小于某个阈值,此时最小二乘学习法的学习目标变为使学习结果的平方误差与正则化项的和最小。虽然这种方法对于预防过拟合非常有效,但当学习模型中的参数特别多时,求解各参数需要花费大量的时间。因此,一种能够把大部分参数都设置为0的学习方法便被提出,就是稀疏学习,Lasso回归就是典型的稀疏学习。

3. Lasso回归的本质是Linear least squares, Lasso,ridge regression约束的最小二乘法,即学习模型参数Linear least squares, Lasso,ridge regressionLinear least squares, Lasso,ridge regression范数小于某个阈值。想象一下,Linear least squares, Lasso,ridge regression约束下的参数分布趋向于以圆点为中心的圆周内部,而Linear least squares, Lasso,ridge regression约束下的参数则集中分布在各坐标轴附近,因此Linear least squares, Lasso,ridge regression约束能够有效的将若干参数的解收敛到0。约束的求解相对于Linear least squares, Lasso,ridge regression约束更为复杂,通常解法是需要数个Linear least squares, Lasso,ridge regression约束求解的迭代过程。因此,题主所问的Linear least squares, Lasso,ridge regressionLinear least squares, Lasso,ridge regression约束如何选取的问题,个人认为如果不考虑Linear least squares, Lasso,ridge regression约束的弹性网回归,Linear least squares, Lasso,ridge regression约束更适合参数较多或需要特征提取的情况下,Linear least squares, Lasso,ridge regression约束更适合模型简单或是不想求解那么复杂的情况下(MATLAB算这两种约束都很简单)。

4. 岭回归也是最小二乘法正则化方法的一种延伸,特点是以损失无偏性为代价换取数值稳定性。
 

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 n 有很小,于是就会出现很严重的 overfitting 问题。例如,最简单的线性回归模型:

2

这里 T 是由标签组成的列向量。该问题具有解析解

eq: 1 »     y

然而,如果 X 将会不是满秩的,而这个解也没法算出来。或者更确切地说,将会有无穷多个解。也就是说,我们的数据不足以确定一个解,如果我们从所有可行解里随机选一个的话,很可能并不是真正好的解,总而言之,我们 overfitting 了。

解决 overfitting 最常用的办法就是 regularization ,例如著名的 ridge regression 就是添加一个 2

 直观地来看,添加这个 regularizer 会使得模型的解偏向于 norm 较小的 C

其中 w 仍然需要数据中的所有特征才能计算预测结果,从计算量上来说并没有得到改观。

不过,特别是在像生物或者医学等通常需要和人交互的领域,稀疏的解除了计算量上的好处之外,更重要的是更具有可解释性。比如说,一个病如果依赖于 5 个变量的话,将会更易于医生理解、描述和总结规律,但是如果依赖于 5000 个变量的话,基本上就超出人肉可处理的范围了。

在这里引入稀疏性的方法是用 2 regularization,得到如下的目标函数

eq: 2 »1

 该问题通常被称为 LASSO (least absolute shrinkage and selection operator) 。LASSO 仍然是一个 convex optimization 问题,不过不再具有解解析解。它的优良性质是能产生稀疏性,导致 w中许多项变成零。

可是,为什么它能产生稀疏性呢?这也是一直让我挺感兴趣的一个问题,事实上在之前申请学校的时候一次电话面试中我也被问到了这个问题。我当时的回答是背后的理论我并不是很清楚,但是我知道一个直观上的理解。下面我们就先来看一下这个直观上的理解。

首先,很 ridge regression 类似,上面形式的 LASSO 问题也等价于如下形式:C

 也就是说,我们将模型空间限制在 (fig: 1) 所示:

fig: 1 »
  • Linear least squares, Lasso,ridge regression
  • 1-ball has corners. It’s very likely that the meet-point is at one of the corner

可以看到,1-ball 是什么样的?)除了角点以外,还有很多边的轮廓也是既有很大的概率成为第一次相交的地方,又会产生稀疏性。

相比之下,2 regularization 不行的原因了。

不过,如果只限于 intuitive 的解释的话,就不那么好玩了,但是背后完整的理论又不是那么容易能够搞清楚的,既然这次的标题是 Basics ,我们就先来看一个简单的特殊情况好了。

接下来我们考虑 orthonormal design 的情况:PCA 以及模长 normalize 来实现。

注意到 LASSO 的目标函数 (eq: 2) 是 convex 的,根据 KKT 条件,在最优解的地方要求 gradientsubgradient 的东西。

def: 1 定义 subgradient; subdifferential

对于在 ) 。

注意 subgradient 和 subdifferential 只是对凸函数定义的。例如一维的情况, f 的 gradient 存在的点,subdifferential 将是由 gradient 构成的一个单点集合。这样就将 gradient 的概念加以推广了。这个推广有一个很好的性质。

性质 condition for global minimizer

点 j ,有两种情况。

gradient 存在,此时 0

由于 gradient 在最小值点必须要等于零,我们有)

 从这个式子也可以明显看出 0

 于是刚才的式子可以进一步写为eq: 4 »x 的正部。

gradient 不存在,此时 0

根据 subgradient 在最小值点处的性质的性质,此时比有2

 

又因为 (fig: 2) 形象地表达出来。

fig: 2 »
Linear least squares, Lasso,ridge regression

图上画了原始的 least square 解,LASSO 的解以及 ridge regression 的解,用上面同样的方法(不过由于 ridge regularizer 是 smooth 的,所以过程却简单得多)可以得知 ridge regression 的解是如下形式2 的那些系数直接变成零了,这也就更加令人信服地解释了 LASSO 为何能够产生稀疏解了。上面的文字,前半段看懂了,后半段功力不够,还没有看懂

下面就讲下个人的直观理解:

l2正则可以防止参数估计的过拟合,但是选择合适lambda比较困难,需要交叉验证。如果有个特征与输出结果不相关,则L2会给一个特别小的值,但是不会为0.

l1正则会产生稀疏解,即不相关的的特征对应的权重为0,就相当于降低了维度。但是l1的求解复杂度要高于l2,并且l1更为流行

 

LASSO问题

 

相关文章: