©作者 | 黄秋实
单位 | 香港中文大学(深圳)
研究方向 | 智能电网
本文我们主要关注于以下问题:
1. LASSO Regression 是什么?
2. 稀疏性的意义是什么?(从数学上证明)
3. 为什么 LASSO Regression 可以带来稀疏性?
4. 如何求解 LASSO Regression(附代码)?
5. 线性回归中不同的正则项都带来了什么?
6. 为什么需要结构性稀疏?
7. 如何得到结构性的稀疏?
8. 稀疏性的拓展一些常用的工具箱
LASSO是什么?
LASSO Regression 是一种特殊的线性回归模型。与常见的最小二乘(Least Square Regression)回归相比,LASSO 回归仅仅在损失函数上增加了一个对变量 的 -norm(L1-范数)的惩罚:
其中 是输入的样本, 是一个给定的矩阵(一组给定的基), 是我们需要求解的变量, 是这个模型的惩罚系数。与最小二乘回归相比,LASSO 回归不仅可以帮助我们得到一个预测模型,同时也会对特征进行一定的选择。对特征的选择反应在变量 上时就会呈现出向量 具有稀疏性。这听起来很晦涩,所以我们在下面举一个例子来说明。
稀疏性的意义是什么?
我们来考虑一个商业分析场景。假设有一系列销售火爆的同类产品,因为我们也想做一个这样的产品来卖,所以我们很关注它们的销量。当前,主要有 A,B,C,... , Z 这 26 家公司在卖这个产品。我们令公司 A 的产品销量为 ,其余各家的产品销量以此类推,我们就可以得到一个产品销量的向量 。
我们都知道要做一个好的产品,并让它有很好的销量,需要有很多方面的投入。例如:外观设计,功能研发,广告宣传等很多方面都需要进行投入。这样便引出了一个很自然的分析问题:在那些方面进行投入,我们可以获得更好的产品销量呢?这些公司已有的做法可能会给我们带来一定的启示。
我们假设得到了之前这 26 家公司在做产品时每个方面的投入大小,并且每个方面的投入与产品的销量之间呈线性关系,因此我们就可以用 LASSO 回归等线性模型来进行分析。从数学上来说,对于每一个公司的产品销量,由于线性关系的存在,我们可以使用如下线性模型来近似(假设有 100 个可投入方面):
其中 代表在第 i 方面收益/投入比, 代表公司 A 在第 i 方面的投入大小。从上面的线性模型中,我们可以发现,我们想要分析的问题其实就是去求解每个可投入方面的收益/投入比 。从这些我们知道的产品销量以及每个公司的投入细节中求解收益投入比的方法就是线性回归。
如果我们使用 LASSO 回归来求解上面的这个回归问题,那么我们其实是想要得到:
其中 是记录 26 个公司产品销量的向量, 是记录 26 个公司在 100 个方面投入大小的数据矩阵(矩阵 的任意一行代表对应公司对给个方面的投入大小,矩阵 X 的每一列代表各个公司对对应方面的投入大小), 是我们想要了解的每个可投入方面的收益/投入比向量。此时,我们可以看到如果我们最后得到的收益/投入比向量 是稀疏的,那么相当于 LASSO 回归模型帮助我们对这 100 个可投入方面进行了选择,仅留下了一些值得投入,对产品销量有较大影响的方面。这便是稀疏性的意义:对特征进行选择,仅留下对分析目标相关性更强的特征。
为什么LASSO Regression可以带来稀疏性?
相比于其他的相对定性的诠释,在这里我们给出一个更加严谨的解释。为了从数学上证明 LASSO Regression 确实可以使优化的目标稀疏,我们首先要回顾一些数学知识。
3.1 次梯度(Subgradient)
对于一个凸函数 ,存在一个向量 是 在 处的次梯度,那么它需要满足: