L1、L2范数理解--Ridge以及Lasso回归

简介: L1、L2范数理解--Ridge以及Lasso回归

一:范数对比

L0范数: 指向量中非0的元素的个数。(L0范数很难优化求解)

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

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

30.png

注:L0范数,指向量中非零元素的个数。无穷范数,指向量中所有元素的最大绝对值。


二:范数作用

L1范数: 可以进行特征选择,即让特征的系数变为0.


L2范数: 可以防止过拟合,提升模型的泛化能力,有助于处理 condition number不好下的矩阵(数据变化很小矩阵求解后结果变化很大)(核心:L2对大数,对outlier离群点更敏感!)


下降速度:最小化权值参数L1比L2变化的快


模型空间的限制:L1会产生稀疏 L2不会。L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。



三:L0范数和L1范数之间的比较

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

L1范数: 是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。现在我们来分析下这个价值一个亿的问题:

1.为什么L1范数会使权值稀疏?

     答:任何的规则化算子,如果他在Wi=0的地方不可微,并且可以分解为一个“求和”的形式,那么这个规则化算子就可以实现稀疏。

2.既然L0可以实现稀疏,为什么不用L0,而要用L1呢?

     答:一是因为L0范数很难优化求解(NP难问题),二是L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。所以大家才把目光和万千宠爱转于L1范数。

3.总结

     答:L1范数和L0范数可以实现稀疏,L1因具有比L0更好的优化求解特性而被广泛应用。

理解备注:

1.不可微的理解:

在w1/w2=0的地方因为是|w1|,所以其是不可导的。

解决方法:LARS、FIST、坐标轴下降法。

2.为什么要特征选择/稀疏:


31.png



四:L1范数和L2范数的比较

L1范数: 是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。

L2范数: 它也不逊于L1范数,它有两个美称,在回归里面,有人把有它的回归叫“岭回归”(Ridge Regression),有人也叫它“权值衰减weight decay”。注意,其一般会在L2的范数基础上在平方!!!


注:L1范数的理解见前面,L2范数的理解如下

     L2范数的规则项||W||2最小,可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0, 这里是有很大的区别的哦。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。

1.为什么越小的参数说明模型越简单?

我的理解是:限制了参数很小,实际上就限制了多项式某些分量的影响很小(看上面线性回归的模型的那个拟合的图),这样就相当于减少参数个数。这里可以想象只有两者参数w1、w2,对于y= w1x1+w2x2,如果w1和w2越小,当x1、x2发生变化的时候,y的值变化不是很大,所以比较平滑,模型也就越简单。

2.L2范数的好处


32.png

3.两者的差距

1)下降速度:

33.png

如上图:L1就是按绝对值函数的“坡”下降的,而L2是按二次函数的“坡”下降。所以实际上在0附近,L1的下降速度比L2的下降速度要快。


2)模型空间的限制:

我们将模型空间限制在w的一个L1-ball 中。为了便于可视化,我们考虑两维的情况,在(w1, w2)平面上可以画出目标函数的等高线,而约束条件则成为平面上半径为C的一个 norm ball 。等高线与 norm ball 首次相交的地方就是最优解:


34.png

    可以看到,L1-ball 与L2-ball 的不同就在于L1在和每个坐标轴相交的地方都有“角”出现,而目标函数的测地线除非位置摆得非常好,大部分时候都会在角的地方相交。注意到在角的位置就会产生稀疏性,例如图中的相交点就有w1=0,而更高维的时候(想象一下三维的L1-ball 是什么样的?)除了角点以外,还有很多边的轮廓也是既有很大的概率成为第一次相交的地方,又会产生稀疏性。

    相比之下,L2-ball 就没有这样的性质,因为没有角,所以第一次相交的地方出现在具有稀疏性的位置的概率就变得非常小了。这就从直观上来解释了为什么L1-regularization 能产生稀疏性,而L2-regularization 不行的原因了。

    因此,一句话总结就是:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。



五:L1范数和L2范数之反向传播的理解

L1范数: 因为存在不可导的地方,其解决方法参见:LARS、FIST、坐标轴下降法

    LARS:https://blog.csdn.net/xbinworld/article/details/44284293

    FIST:https://www.cnblogs.com/louisanu/p/12045861.html

    坐标轴下降法:https://blog.csdn.net/qq_32742009/article/details/81735274

L2范数:


35.png


目录
相关文章
|
图形学 开发者 异构计算
《黑神话:悟空》中的性能优化与调试技术
【8月更文第26天】在游戏开发过程中,性能优化和调试是保证游戏流畅运行的关键环节。《黑神话:悟空》作为一款追求高质量画面和流畅体验的游戏,其背后的性能优化与调试技术尤为重要。本文将详细介绍游戏开发过程中所采用的各种性能优化技术和调试手段。
263 3
|
12月前
|
API 开发者
提供一份 1688 商品详情接口的错误码及解决方法
本文介绍了 1688 商品详情接口常见的错误码及其解决方法,包括 401(未授权)、403(禁止访问)、404(未找到)、429(请求过多)和 500/502/504(服务器错误),帮助开发者快速定位并解决问题。
|
11月前
|
机器学习/深度学习 算法 数据挖掘
深入理解SVM中的核函数及其应用
深入理解SVM中的核函数及其应用
536 0
|
JavaScript 开发工具 git
保姆级教程:从零构建GitHub Pages静态网站(下)
保姆级教程:从零构建GitHub Pages静态网站(下)
743 0
vscode配置eslint保存自动修复
vscode配置eslint保存自动修复
529 1
|
人工智能 自然语言处理 数据处理
【AI大模型】Transformers大模型库(十三):Datasets库
【AI大模型】Transformers大模型库(十三):Datasets库
596 0
|
机器学习/深度学习 搜索推荐 Python
L2范数(L2 norm)
L2范数(L2 norm),也称为欧几里德范数(Euclidean norm)或2-范数,是向量元素的平方和的平方根。它在数学和机器学习中经常被用作一种正则化项、距离度量或误差度量。
10154 76
|
PyTorch 语音技术 开发工具
ModelScope创空间休眠后然后重启报环境错误如何解决
ModelScope模型报错是指在使用ModelScope平台进行模型训练或部署时遇到的错误和问题;本合集将收集ModelScope模型报错的常见情况和排查方法,帮助用户快速定位问题并采取有效措施。
344 0
|
存储 移动开发 算法
一文理解淘宝购物车背后的逻辑
提升用户的使用体验才是产品升级的核心,本文将从业务发展以及技术沉淀两个方面来总结淘宝购物车的产品升级之路。
1483 0
一文理解淘宝购物车背后的逻辑
|
Java 数据库
【数据库】Java实体类的属性类型与数据库表字段类型对应表
在这里对数据库的各个字段和java中的实体类属性类型做一个简单的总结,其实网上大多都有相关的文章,我也是在这里记录一下,以后方便自己查看。
387 0