关于机器学习中LASSO回归的相关补充

在之前的相关文章中笔者给出了一般回归的补充,即岭回归和LASSO回归,它们都是为了解决在回归过程中的过拟合问题,其具体解决方案就分别是在目标函数后增加2范数和1范数以限定参数的表现,对于岭回归而言,由于2使用范数的原因,这个目标函数仍是可导的,但对于LASSO回归而言,就没有那么幸运了,因为1范数是不可导的,故没法直接求解这个目标函数。

而这个1范数求解的问题,在前面的文章中提到应使用FISTFast Iterative Shrinkage Thresholding,即快速收缩阈值,又可简写为FISTA,这是针对另外一种求解方法而言的,因为其被称为迭代收缩方法,简称ISTA)方法,但并没有具体解释其原因(即为什么需要进行)和算法本身的运作过程,现在本文中给出。因为FIST方法也在字典学习及稀疏表示中被使用。

本文将比较具体的给出这个FIST方法的由来和算法流程,以对其为什需要如此操作和稀疏性进行解释。

软阈收缩算子

在之前讨论如何求解LASSO回归的时候,最终笔者给出了一个所谓软阈收缩算子(或称作软阈收缩算法)的东西,通过这个来求解目标函数的一个变型。这里需要讨论一个问题:为什么需要使用这个东西来求解含有绝对值的目标函数?

因为如果读者还记得之前的原始目标函数应为:

先不论公式2和公式3范数平方中常数部分的内容有所不同(因为这个和求导问题没什么关系),关键是我们所求参数向量w在公式2中还有样本矩阵X与其相乘,正是由于这个原因造成我们无法对公式2直接求解,其直接原因是我们实在无法确定其符号(也有的文章解释为对向量进行了旋转,我想这个也可以解释的通吧),即导数的相关方向,而软阈收缩算子恰能解决这个问题,所以通过一些变换(主要是使用类似泰勒公式的展开方法以及利用拉普拉斯连续等)将公式2变换成公式3,然后再求解,所以整体求解过程被分成了两步走,而第二步就是上面提到的迭代收缩阈值(ISTA)。

在解释具体原因之前,再把这个经过变形的目标函数列出:

其实上式和公式3仅在左半部分相差一个1/2,这个只不是过是为了在求导后消除系数而已。

现我们对公式3进行一般意义上的求导(在某一维度,如第i维),可得:

其中sign(x)是符号函数,若x为正数,则返回1,否则返回-1;如wi > 0,则令上式等于0,可得

而其它情况则均为0。

这个简单的推导就说明了软阈这个含义(可以理解其实就是这个所谓的阈值),实际上笔者理解的这个方法恰恰就是将求导在绝对值这个超越函数上的推广,这个导函数的图形正是中间部分为零(在区间[-]上;读者可以画出上述函数的图形,就能明白,当然这是在某一维度下进行的),而两头才为非零值(一次分段的函数)。这种函数图形上的表现也解释了为什么LASSO回归的系数会较为稀疏,究其根本原因就是其导函数的取值有较多机会为零,而岭回归的导函数就是一个基本的一次函数,故其和坐标轴的交点有且仅有一个交点,所以值稀疏的机会不大,这也从另一个方面解释了稀疏性,而一般文档都是从图形的表现上来说明的。

快速迭代收缩阈值算法

在之前论述LASSO回归的相关解法的文章中,实际上给出的求解内容就是基于递归收缩阈值算法(Iterative ShrinkageThresholding)的,而本节给出一个更为快速的解法,即快速迭代收缩阈值算法,既然是被称为快速,当然其相关复杂度要低一些。

算法会引入一个辅助变量,在每次迭代中都会先计算这个辅助变量a,然后再利用这个变量计算系数w,之后再利用本次得到的系数计算辅助变量,具体过程如下:

 end while

 输出:系数w

时间: 2024-08-03 13:23:32

关于机器学习中LASSO回归的相关补充的相关文章

机器学习中的回归理解

机器学习中的类别均衡问题? 分为类别平衡问题和类别不平衡问题 类别平衡问题:可以采用回归 类别不平衡问题:可以采用在缩放 针对类别的回归问题有 线性回归: 非线性回

机器学习中正则化项L1和L2的直观理解

正则化(Regularization) 机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作?1-norm和?2-norm,中文称作L1正则化和L2正则化,或者L1范数和L2范数. L1正则化和L2正则化可以看做是损失函数的惩罚项.对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归).下图是Python中Lasso回归的损失函数,式中加号后面一项α||w||1即为L1正则化项. 下图是Python中Ri

(转)机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)

版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在verycd可下载,可惜没有翻译.不过还是可以看.另外一个是prml-pattern recogni

机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)

机器学习中的数学(1)-回归(regression).梯度下降(gradient descent) 版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在

机器学习中的数学-回归(regression)、梯度下降(gradient descent)<1>

机器学习中的数学(1)-回归(regression).梯度下降(gradient descent) 版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在

关于机器学习中支持向量机相关问题

前言 在机器学习中,分类问题占了很大一部分,而对于分类问题的处理有很多方法,比如决策树.随机森林.朴素贝叶斯.前馈神经网络等等:而最为常见的分类需求一般是二分类问题,即将样本分为两个集合,然后通过学习某些参数,对新的输入进行识别并划分到正确的类别中. 在解决分类问题中,应该说线性分类器就是最为简单的一类,虽然说起来较为简单,但其能处理的情况还是比较多的,而最为常用的一种线性分类器就是所谓的支持向量机(Support Vector Machine,简称SVM):其基本原理就是构建一个(对于而分类而

机器学习之线性回归、岭回归、Lasso回归

1.回归算法分类算法的目标值是标称型数据,而回归的目标变量是连续型数据,主要包括线性回归,岭回归,lasso回归,前向逐步回归. 2.线性回归线性回归主要用于处理线性数据,结果易于理解,计算复杂度不高,但是处理不了非线性数据.线性回归用最适直线(回归线)去建立因变量Y和一个或多个自变量X之间的关系.可以用公式来表示:Y = wX + b.其中w为权重,也称为回归系数,b为偏置顶. 3.理解线性回归线性回归从高中数学就接触过了,不过我们主要学习二维形式的线性回归,即y = kx + b.其中斜率k

岭回归和lasso回归(转)

回归和分类是机器学习算法所要解决的两个主要问题.分类大家都知道,模型的输出值是离散值,对应着相应的类别,通常的简单分类问题模型输出值是二值的,也就是二分类问题.但是回归就稍微复杂一些,回归模型的输出值是连续的,也就是说,回归模型更像是一个函数,该函数通过不同的输入,得到不同的输出. 那么,什么是线性回归,什么是非线性回归呢? 线性回归与非线性回归 前面说了,我们的回归模型是一个函数是吧,那么线性回归就是模型函数是由若干个基本函数线性加权得到的函数.也就是每一个基本函数前面都有一个权值来调和自己对

线性回归、岭回归和LASSO回归

尽管有些内容还是不懂,先截取的摘录. 1.变量选择问题:从普通线性回归到lasso 使用最小二乘法拟合的普通线性回归是数据建模的基本方法.其建模要点在于误差项一般要求独立同分布(常假定为正态)零均值.t检验用来检验拟合的模型系数的显著性,F检验用来检验模型的显著性(方差分析).如果正态性不成立,t检验和F检验就没有意义. 对较复杂的数据建模(比如文本分类,图像去噪或者基因组研究)的时候,普通线性回归会有一些问题:(1)预测精度的问题 如果响应变量和预测变量之间有比较明显的线性关系,最小二乘回归会