L1与L2正则(转)
概念:
L0范数表示向量中非零元素的个数:NP问题,但可以用L1近似代替。
L1范数表示向量中每个元素绝对值的和:
L1范数的解通常是稀疏性的,倾向于选择:1. 数目较少的一些非常大的值 2. 数目较多的insignificant的小值。faster-RCNN里面的smooth-L1 loss就是L1的平滑版本
L2范数即欧氏距离:
L2范数越小,可以使得w的每个元素都很小,接近于0,但L1范数不同的是他不会让它等于0而是接近于0。
从贝叶斯先验角度看:
L1则相当于设置一个Laplacean先验,去选择MAP(maximum a posteriori)假设。而L2则类似于Gaussian先验
先假设参数 服从一种先验分布
,那么根据贝叶斯公式
利用极大似然估计求参数 的时候,现在我们的极大似然函数就变成了:

L1范数:
假设我们让 服从的分布为标准拉普拉斯分布,即概率密度函数为
,那么式子(7)多出的项就变成了
,其中C为常数了,重写式子:

L2范数:
假设我们让 服从的分布为标准正太分布,即概率密度为
,那么式子(7)多出的项就成了
,其中C为常数,重写式子:


上图中L1后w取0的概率大,L2后w取0附近的概率大。
两种几何上直观的解析
L1和L2的差别,为什么一个让绝对值最小,一个让平方最小,会有那么大的差别呢?
1)下降速度:
我们知道,L1和L2都是规则化的方式,我们将权值参数以L1或者L2的方式放到代价函数里面去。然后模型就会尝试去最小化这些权值参数。而这个最小化就像一个下坡的过程,L1和L2的差别就在于这个“坡”不同,如下图:L1就是按绝对值函数的“坡”下降的,而L2是按二次函数的“坡”下降。所以实际上在0附近根据其梯度,L1的下降速度比L2的下降速度要快。
L1在江湖上人称Lasso,L2人称Ridge。
2)模型空间的限制:
实际上,对于L1和L2规则化的代价函数来说,我们可以写成以下形式:
也就是说,我们将模型空间限制在w的一个L1-ball 中。为了便于可视化,我们考虑两维的情况(假设X为一个二维样本,那么要求解参数 也是二维)目标函数曲线等高线(同颜色曲线上,每一组
,
带入值都相同),凸函数3维空间里像一口锅,而约束条件则成为平面上半径为C的一个 norm ball 。等高线与 norm ball 首次相交的地方就是最优解:
可以看到,L1-ball 与L2-ball 的不同就在于L1在和每个坐标轴相交的地方都有“角”出现,而目标函数大部分时候都会在角的地方相交。注意到在角的位置就会产生稀疏性,例如图中的相交点就有w1=0,而更高维的时候(想象一下三维的L1-ball 是什么样的?)除了角点以外,还有很多边的轮廓也是既有很大的概率成为第一次相交的地方,又会产生稀疏性。
相比之下,L2-ball 就没有这样的性质,因为没有角,所以第一次相交的地方出现在具有稀疏性的位置的概率就变得非常小了。这就从直观上来解释了为什么L1-regularization 能产生稀疏性,而L2-regularization 不行的原因了。
如果不加L1和L2正则化时,对于线性回归这种目标函数凸函数的话,我们最终的结果就是最里边的紫色的小圈圈等高线上的点(锅底)。

的图像是一个菱形,现在的目标是不仅是原曲线算得值要小(越来越接近中心的紫色圈圈),还要使得这个菱形越小越好(F越小越好)

两种 regularization 能不能把最优的 x 变成 0,取决于原先的费用函数在 0 点处的导数。如果本来导数不为 0,那么施加 L2 regularization 后导数依然不为 0,最优的 x 也不会变成 0。而施加 L1 regularization 时,只要 regularization 项的系数 C 大于原先费用函数在 0 点处的导数的绝对值,x = 0 就会变成一个极小值点。极小值点的条件是 L1后x=0处左右两边导数异号就行。原函数用f(x)表示,则施加L1后x=0处左右两边导数分别是f'(0)-C和f'(0)+C,只要C>|f'(0)|就能保证异号。事实上 L1 regularization 会使得许多参数的最优值变成 0,这样模型就稀疏了。
因此:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。
转自:zouxy09
L1与L2正则(转)的更多相关文章
- 大白话5分钟带你走进人工智能-第十五节L1和L2正则几何解释和Ridge,Lasso,Elastic Net回归
第十五节L1和L2正则几何解释和Ridge,Lasso,Elastic Net回归 上一节中我们讲解了L1和L2正则的概念,知道了L1和L2都会使不重要的维度权重下降得多,重要的维度权重下降得少,引入 ...
- 大白话5分钟带你走进人工智能-第十四节过拟合解决手段L1和L2正则
第十四节过拟合解决手段L1和L2正则 第十三节中, ...
- 【笔记】简谈L1正则项L2正则和弹性网络
L1,L2,以及弹性网络 前情提要: 模型泛化与岭回归与LASSO 正则 ridge和lasso的后面添加的式子的格式上其实和MSE,MAE,以及欧拉距离和曼哈顿距离是非常像的 虽然应用场景不同,但是 ...
- L1和L2正则
https://blog.csdn.net/jinping_shi/article/details/52433975
- L1 正则 和 L2 正则的区别
L1,L2正则都可以看成是 条件限制,即 $\Vert w \Vert \leq c$ $\Vert w \Vert^2 \leq c$ 当w为2维向量时,可以看到,它们限定的取值范围如下图: 所以它 ...
- 【机器学习】--鲁棒性调优之L1正则,L2正则
一.前述 鲁棒性调优就是让模型有更好的泛化能力和推广力. 二.具体原理 1.背景 第一个更好,因为当把测试集带入到这个模型里去.如果测试集本来是100,带入的时候变成101,则第二个模型结果偏差很大, ...
- 过拟合是什么?如何解决过拟合?l1、l2怎么解决过拟合
1. 过拟合是什么? https://www.zhihu.com/question/264909622 那个英文回答就是说h1.h2属于同一个集合,实际情况是h2比h1错误率低,你用h1来训练, ...
- 机器学习(二十三)— L0、L1、L2正则化区别
1.概念 L0正则化的值是模型参数中非零参数的个数. L1正则化表示各个参数绝对值之和. L2正则化标识各个参数的平方的和的开方值. 2.问题 1)实现参数的稀疏有什么好处吗? 一个好处是可以简化 ...
- L1和L2正则化(转载)
[深度学习]L1正则化和L2正则化 在机器学习中,我们非常关心模型的预测能力,即模型在新数据上的表现,而不希望过拟合现象的的发生,我们通常使用正则化(regularization)技术来防止过拟合情况 ...
随机推荐
- Vue.js 子组件的异步加载及其生命周期控制
前端开发社区的繁荣,造就了很多优秀的基于 MVVM 设计模式的框架,而组件化开发思想也越来越深入人心.这其中不得不提到 Vue.js 这个专注于 VM 层的框架. 本文主要对 Vue.js 组件化开发 ...
- python3+requests库框架设计02-封装日志类
首先我们先来实现日志的功能,日志可以使用python3自带logging模块,不会的可以百度一下相关文章,也可以看我另外一篇文章Python3学习笔记24-logging模块 在封装日志类前,我们需要 ...
- C++ 三/五法则
当定义一个类时,我们显式地或隐式地指定了此类型的对象在拷贝.赋值和销毁时做什么.一个类通过定义三种特殊的成员函数来控制这些操作:拷贝构造函数.拷贝赋值运算符和析构函数. 拷贝构造函数定义了当用同类型的 ...
- exiting pxe rom 无法启动
背景 我这是给人装了多少次机器了,上千次不敢说,几百次是有了.有个奇怪现象,为什么每次总有新的问题呢,极少能一次成功的.除了让我涨了见识,没想到其他的用处.程序员修电脑,搞笑吧,还有找我修洗衣机的,说 ...
- spring3.1 profile 配置不同的环境
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...
- java使用RunTime调用windows命令行
当Java需要调用windows系统进行交互时,可以使用Runtime进行操作. 例子: 1.调用window中获取关于java相关的进行信息 Runtime rt = Runtime.getRunt ...
- Freemaker:操作集合
<#if (id?index_of('Base') >= 0)> <choose> <when test="rootOrgID !=null and ro ...
- ASP.NET MVC5高级编程 之 视图
1.1理解视图约定 当创建一个项目模版时,可以注意到,项目以一种非常具体的方式包含了一个结构化的Views目录.在每一个控制器的View文件夹中,每一个操作方法都有一个同名的视图文件与其对应.这就提供 ...
- word发布博客
无向图双连通部件(双连通分量) 关节点和桥边的定义: 双连通部件的性质 每一个双连通部件应该包含至少两个顶点,除非整个无向图只包含一个顶点 如果两个双连通部件包含同一个顶点,那么这个共有的顶点 ...
- HTML5 WebSocket 协议
1. 概述 1.1 说明 WebSocket:是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议. WebSocket原理是使用JavaScript调用浏览器的API发出一个WebSoc ...