1.结构风险与经验风险

在支持向量机部分,我们接触到松弛变量,正则化因子以及最优化函数,在朴素贝叶斯分类,决策树我们也遇到类似的函数优化问题。其实这就是结构风险和经验风险两种模型选择策略,经验风险负责最小化误差,使得模型尽可能的拟合数据,而结构风险则负责规则化参数,使得参数的形式尽量简洁,从而达到防止过拟合的作用.所以针对常见模型,我们都有下式:

第一项经验风险L(yi,f(xi,w))衡量真实值与预测值之间的误差,第二项结构风险Ω(w)规则化项使得模型尽可能简单.而第二项Ω(w)一般是模型复杂度的单调函数,模型越复杂,则规则化项的值越大,这里常引入范数作为规则化项,这也就引入了我们常见的L0范数,L1范数以及L2范数.

2.L0范数,L1范数,L2范数与LASSO回归,岭回归

1)广义定义

L0范数  : 向量中非零元素的个数.

L1范数 :向量中各个元素绝对值之和

L2范数 :向量各元素平方和然后求平方根

L0,L1范数可以实现稀疏化,而L1系数因为有比L0更好的特性而被广泛应用,L2范数在回归里就是岭回归,也叫均值衰减,常用于解决过拟合,通过对向量各元素平方和再求平方根,使得L2范数最小,从而使得参数W的各个元素都接近于0,与L1范数不同,L2范数规划后w的值会接近于0但不到0,而L1范数规范后则可能令w的一些值为0,所以L1范数规范在特征选择中经常用到,而L2范数在参数规则化时经常用到.在回归模型中,通过添加L1,L2范数引入正则化项,便得到了LASSO回归和岭回归:

2)回归模型

常见线性模型回归:

LASSOO回归:

岭回归:

3.嵌入式选择与LASSO回归

这里主要针对西瓜书第11节的内容,对近端梯度下降PGD法解决L1正则化问题进行讨论.

1)优化目标

令▽表示微分算子,对优化目标:

若f(x)可导,且▽f 满足L-Lipschitz(利普希茨连续条件),即存在常数L>0使得:

2)泰勒展开

则在Xk处我们可以泰勒展开:

上式是严格相等,由L-Lipschitz条件我们可以看到:

这里给出了一个L的下界,且下界的形式与二阶导函数形式类似,从而泰勒展开式的二阶导便通过L替代,从而严格不等也变成了近似:

3)简化泰勒展开式

接下来我们化简上式:

其中φ(xk)是与x无关的const常数.

4)简化优化问题

这里若通过梯度下降法对f(x)进行最小化,则每一步下降迭代实际上等价于最小化二次函数f(x),从而推广到我们最上面的优化目标,类似的可以得到每一步的迭代公式:

则我们可以先计算z,再求解优化问题:

5)求解

令xi为x的第i个分量,将上式展开可以看到没有xixj(x≠j)的项,即x的各分量互不影响,所以优化目标有闭式解.这里对于上述优化问题求解需要用到Soft Thresholding软阈值函数,其解为:

对于本例,带入求解即得:

因此,PGD能使LASSO和其他基于L1范数最小化的方法得以快速求解.

4.Soft Thresholding软阈值函数证明

1)软阈值函数

上式求解用到了软阈值函数,下面对软阈值函数的解进行求证,从而更好理解上述求解过程.

先看一下软阈值函数:

2)证明

Proof:

对于优化问题:

此处X,Z均为n维向量.

展开目标函数:

从而优化问题变为求解N个独立的函数

这是我们常见的二次函数,对其求导

令导数为0:

看到两边都有x,所以我们要对上述情况进行讨论:

A.z>λ/2时

假设 x<0 ,   所以  sign(x)=-1 ,但 z-λ/2sign(x)>0 ,所以矛盾.

假设 x>0 ,所以  sign(x) = 1,z-λ/2sign(x)>0,所以极小值在x>0 取得1.

此时极小值小于f(0):

再看x<0,

所以f(x)在负无穷到0单调递减,所以最小值在z-λ/2处取得.

B.z<-λ/2时

假设 x<0 ,   所以  sign(x)=-1 ,z-λ/2sign(x)<0 ,所以极值点在 x<0 处取得.

假设 x>0 ,所以  sign(x) = 1,z-λ/2sign(x)<0,所以矛盾.

此时极值小于f(0):

再看 x>0 ,

所以f(x)在0到正无穷单调递增,所以最小值在z+λ/2处取得.

C.λ/2<z<λ/2时

假设 x<0 ,   所以  sign(x)=-1 ,z-λ/2sign(x)>0 ,所以矛盾.

假设 x>0 ,所以  sign(x) = 1,z-λ/2sign(x)<0,所以矛盾.

所以x>0,x<0均不满足条件.

所以有:

当△x>0时,由条件z<λ/2:

当△x<0时,由条件z<λ/2:

所以在0处取极小值,同时也是最小值.

综合以上三种情况:

3)对应西瓜书的L1正则化与LASSO回归

这里的解对应的优化问题是:

而我们PGD优化的问题是:

对上式同乘2/L不影响极值点位置的选取,所以我们的PGD优化问题变成:

带入综合三种情况的到的最终解:

西瓜书上11.14也就得证了~

总结:

终于看完了西瓜书11章特征选择与稀疏学习,发现从头至尾都在提到用LASSO解决问题,所以就结合第六章的正则化和之前的模型评价,对正则化范数以及LASSO重新认识了一下,书中解决LASSO的大致方法就是通过利普希茨连续条件得到L,带入到优化函数中对函数简化变形,简易优化函数,然后通过软阈值函数得到最后的解.LASSO大致就是这些了,有问题欢迎大家交流~

LASSO回归与L1正则化 西瓜书相关推荐

  1. python机器学习库sklearn——Lasso回归(L1正则化)

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 Lasso The Las ...

  2. 学习机器学习四 回归模型——线性回归、L1正则化(Lasso回归)、L2正则化(ridge回归)

    还记得什么是回归吗?回忆下回归就是连续的输出,分类是离散的. 回归模型一般分为:①线性回归--就是线性方程,类似为一元一次方程(y=wx+b),比如你的年龄: ②逻辑回归(类似为曲线方程) 线性回归 ...

  3. 【机器学习】Lasso回归(L1正则,MAP+拉普拉斯先验)

    前言 目前这个方法还没有一个正规的中文名,如果从lasso这个单词讲的话,叫套索.那么套索是啥呢,就是套马脖子的东西,见下图: 就是拿这个东西把动物脖子套住,不要它随便跑.lasso 回归就是这个意思 ...

  4. 【机器学习】一文读懂正则化与LASSO回归,Ridge回归

    该文已经收录到专题机器学习进阶之路当中,欢迎大家关注. 1.过拟合 当样本特征很多,样本数相对较少时,模型容易陷入过拟合.为了缓解过拟合问题,有两种方法: 方法一:减少特征数量(人工选择重要特征来保留 ...

  5. 一文读懂正则化:LASSO回归、Ridge回归、ElasticNet 回归

    将L1.L2或L1和L2正则化同时应用于线性回归 你可能听说过"Ridge"."Lasso"和"ElasticNet"这样的术语.这些技术术 ...

  6. 机器学习——数据的共线性问题(岭回归、LASSO回归、逐步回归、主成分回归)

    一.如何检验共线性 容忍度(Trlerance):容忍度是每个自变量作为因变量对其他自变量进行回归建模时得到的残差比例,大小用1减得到的决定系数来表示.容忍度的值介于0和1之间,如果值越小,说明这个自 ...

  7. 【sklearn】线性回归、最小二乘法、岭回归、Lasso回归

    文章目录 机器学习的sklearn库 一.回归分析 <1.1>线性回归 1.1.1.Python实现线性回归 <1.2>最小二乘法 1.2.1.MATLAB实现最小二乘法 1. ...

  8. lasso回归-回归实操

    python lasso回归算法之回归实操 基本概念 正则化 正则化是指对模型做显式约束,以避免过拟合.本文用到的lasso回归就是L1正则化.(从数学的观点来看,lasso惩罚了系数向量的L1范数, ...

  9. 【机器学习】L1正则化和L2正则化

    L1正则化和L2正则化 在机器学习实践过程中,训练模型的时候往往会出现过拟合现象,为了减小或者避免在训练中出现过拟合现象,通常在原始的损失函数之后附加上正则项,通常使用的正则项有两种:L1正则化和L2 ...

最新文章

  1. 在近期,美众议院为何密集提出了15项新兴技术法案?
  2. python爬取贴吧所有帖子-python 爬虫爬取百度贴吧,获取海量信息
  3. 一个客户端刷新的例子
  4. javafx 使用_使用JavaFX AnimationTimer
  5. php split to array,Split php varibale with JS into array
  6. Vue使用Mint-ui的Popup, Picker组件报错问题
  7. 3月17日 基于特征点的RANSAC最优估计基础矩阵,稀疏光流法综述
  8. 【BZOJ 3681】Arietta
  9. 树和森林(Tree and Forest)
  10. 面试中常见智力题汇总
  11. 【初级篇】网页引入live2d
  12. 李开复:中国创业有四大优势
  13. 深入浅出matplotlib(42):动画显示与MP4视频输出五
  14. java 从视频里面提取音频 批量
  15. Android指针时钟的实现代码
  16. 新车提车验车步骤和细节
  17. 直击痛点!有讲究的品质生活好物件,不再让你“家徒四壁”...丨钛空舱
  18. 安卓实现扫一扫识别数字
  19. OSChina 周日乱弹 ——会爬墙的不仅仅是壁虎还有班主任
  20. oracle触发器函数,oracle 存储过程、函数和触发器用法实例详解

热门文章

  1. 从零开始成为一名合格的数据分析师:为什么必须学统计学?
  2. 天刀论剑显示服务器,论剑段位赛关闭 11月25日服务器维护公告
  3. 继电器rc吸收电路取值_RC吸收电路的参数选取
  4. Chrome 跨域 请求不携带cookie
  5. Web 开发学习笔记——关于互联网和互联网应用
  6. AES加密解密算法的C代码实现
  7. 宣传python的顺口溜-Python3内置函数——reversed() = 翻转我的世界
  8. Play 2.6 在Play中使用缓存
  9. 操作系统_逻辑地址转换为物理地址
  10. 图中的搜索——dij