L1正则和L2正则的比较分析详解
原文链接:https://blog.csdn.net/w5688414/article/details/78046960
范数(norm)
数学上,范数是一个向量空间或矩阵上所有向量的长度和大小的求和。简单一点,我们可以说范数越大,矩阵或者向量就越大。范数有许多种形式和名字,包括最常见的:欧几里得距离(Euclideandistance),最小均方误差(Mean-squared Error)等等。
大多数时间,你会在等式中看见范数像下面那样:
||x||,x可以是一个向量或者矩阵。
例如一个向量
即向量a的模的大小。上面的例子展示了怎样计算欧几里得范数,或者叫做l2-norm.
X的Lp-norm的规范定义如下:
有趣的是,lp-norm看起来非常相似,但是他们的数学特性非常不同,结果应用场景也不一样。因此,这里详细介绍了几种范式。
L0-norm
我们需要讨论一下l0-norm,l0-norm的定义是:
严格的说,L0-norm不是一个真正的范数。它是一个基数函数(cardinalityfunction),有lp-norm的定义形式,这个式子有点特别,因为式子中有0的幂(zeroth-power)和0个根号(zeroth-root),显然,任何x>0,将会变为1.但是0的幂和0的开根号的定义很混乱。所以实际上,大多数数学家和工程师使用下面的l0-norm的定义:
即向量中非零元素的总个数。
由于它是非零元素的总数,因此有很多应用使用l0-norm。随后,由于压缩传感计划(Compressive Sensing
scheme)的发展,变得越来越重要。压缩传感计划试图找到欠定线性系统(under-determinedlinear
system)最稀疏的解(sparsest
solution)。最稀疏的解意味着解有最少的非零元素。即最少的l0-norm。这个问题通常被当做一个l0-norm优化问题
L0-optimisation
许多应用,包括压缩感知,试图最小化一个向量的l0-norm,这个向量有一些限制条件。因此叫做l0-minimisation.一个标准的最小化问题的定义为:
可是,优化上式不是一件容易的事。因为缺乏l0-norm的数学表示,l0-minimisation被计算机科学家认为是一个NP难问题(NP-hard problem),简单的说,它太复杂了,目前数学上没有求解办法。
在多数情况下,l0-minimisation问题都转换为高阶范数问题(higher-order norm problem),例如l1-minimisation和l2-minimisation.
L1-norm
X的l1-norm的定义为:
这个范数在范数家族中相当常见,它有很多名字和许多种形式,它的昵称是曼哈顿范数(Manhattannorm)。两个向量或矩阵的l1-norm为
在计算机视觉科学家眼中,它叫做绝对偏差和(Sum of AbsoluteDifference,SAD)。
在一般情况下,它可以用于一个单元的偏差计算:
它叫做均方绝对误差(Mean-Absolute Error,MAE).
L2-norm
所有范数中最流行的是l2-norm。总体上,它用于工程和科学领域的方方面面。基本定义如下,l2-norm:
它的平方形式,在计算机视觉领域为平方差的和(Sumof Squared Difference,SSD)
它最出名的应用是在信号处理领域,为均方误差(Mean-SquaredError,MSE),它被用来计算两个信号的相似度,质量(quality)和关系。MSE为:
L2-optimisation
和l0-optimisation一样,最小化l2-norm的问题格式化定义为
假设限制矩阵A是全秩的,这个问题现在就是有无穷解的欠定系统(underderterminedsystem)。我们的目标是求出最优解,例如,求有最小l2-norm的解,如果直接计算的话,这会很麻烦。幸运的是它有一个数学技巧可以帮助我们求解。通过使用拉格朗日乘数(Lagrangemultipliers),我们可以定义一个拉格朗日乘子。
λ是引入的拉格朗日乘数。求导,然后等式等于0,我们可以找到一个最优解,因此得到
把解带入限定式中得到
最终
通过使用这个式子,我们可以立即求出l2-optimisation问题的最优解。这个等式因Moore-Penrose Pseudoinverse(读者自行百度,我也不知道,对不住了)而闻名,这个问题通常称为最小均方问题,最小均方回归或者最小均方优化。
可是,即使最小均方的方法很容易计算,但是计算的往往不是最好的解,这是因为l2-norm本身的平滑(曲线,处处可导)性质,很难找倒单个,适应问题的最佳解。
相反,l1-optimisation可以提供比这个解更好的结果。
L1-optimisation
L1-optimisation问题的格式化定义为
由于l1-norm不像l2-norm那样光滑,问题的解就会比l2-optimisation更好更唯一.
可是,尽管l1-minimisation的问题几乎和l2-minimisation有相同的形式,但是也很难求解,因为问题没有一个平滑(有些地方不可导)的函数,我们用来解决l2-problem就不再适用
了。留下来的唯一方式是直接搜索,寻找解意味着我们的计算每一个我们找到的可能解,以找到找到最佳的那个解。
因为在数学上我们不能找到一个解决方法,l1-optimisation的实用性在过去几十年里是相当有限的。直到最近,具有高效计算能力的电脑可以使得我们找到每一个解。通过使用许多实用的算法,称为凸优化(ConvexOptimisation)算法,例如线性规划(linear
programming)或者非线性规划(non-linear programming)等等。
现在有许多关于l1-optimisation的toolboxes,这些toolboxes通常视同不同的方法或算法来解决同一个问题,toolboxes的样例为l1-magic,SparseLab,ISAL1.
L-infinity norm
l∞-norm的定义为
考虑向量x,如果xj是向量x中最高的条目,因为其无穷的属性,我们可以说
现在我们可以简单的说l∞-norm
这是向量最大条目的刻度。这显然不满足l∞-norm的意义
比较分析
当我们在做机器学习实践的时候,我们会迷茫是选择L1正则还是选择L2正则,因此我做了一下比较分析。
L1-norm(范数),也叫作最小绝对偏差(leastabsolute deviations, LAD),最小绝对误差(least absolute errors,LAE).它是最小化目标值yi和估计值f(xi)绝对差值的求和:
L2-norm(范数)也称为最小均方(least squares),它是最小化目标值yi和估计值f(xi)平方和。
L1-norm和L2-norm的区别如下表格
鲁棒性(Robustness):最小绝对值偏差的方法应用领域很广,相比最小均方的方法,它的鲁棒性更好,LAD能对数据中的异常点有很好的抗干扰能力,异常点可以安全的和高效的忽略,这对研究帮助很大。如果异常值对研究很重要,最小均方误差则是更好的选择。
对于L2-norm,由于是均方误差,如果误差>1的话,那么平方后,相比L-norm而言,误差就会被放大很多。因此模型会对样例更敏感。如果样例是一个异常值,模型会调整最小化异常值的情况,以牺牲其它更一般样例为代价,因为相比单个异常样例,那些一般的样例会得到更小的损失误差。
稳定性:LAD方法的不稳定属性意思是,对于一个书评调整的数据集,回归线可能会跳跃很大。这个方法对一些数据配置有连续的解决方法;可是,通过把数据集变小,LAD可以跳过一个有多个求解拓展区域的布局(one
could “jump past” a configurationwhich has multiple solutions that span
a
region,这句翻译挺麻烦的,大家自己领会吧,我尽力了),再通过这个解决方案的区域后,LAD线有一个斜坡,可能和之前的线完全不同。相比较之下,最小均方解决方法是稳定的,对于任何晓得数据点的调整,回归线仅仅只稍微移动一下,回归参数就是数据的连续函数(continuousfunctions
of the data)。
上图的上面代表的是L1-norm,底部代表的是L2-norm。第一列代表一个回归线怎样适应这三个点的。
假设我们把绿色的点视屏享有移动一点,L2-norm维持了和原回归线一样的形状,但是形成了更陡的抛物线(steeper parabolic
curve)。可是在L1-norm的样例中,回归线的斜率更陡了,并且影响到了其它点的预测值,因此,与L2-norm相比,所有的未来的预测都会都会受到影响。
假设我们把绿色的点水平向右移动得更远,L2-norm变化了一点,但是L1-norm变化更大了,l1-norm的斜率完全改变了。这种变化会使得所有以前的结果都不再合法(invalidate all previous results)。
数据点的稍稍调整,回归线就会变化很多,这就是L1-norm的不稳定性的表现之处。
解决方案唯一性:这需要一点想象力。首先,看下图:
绿色的点(L2-norm)是唯一的最短路径。而红色,绿色,黄色(L1-norm)的线都是长度相同的路径。我们把它泛化到n维中,结果跟这里的二维一样。
内置的特征选择(Built-in feature
selection):这是L1-norm经常被提及的一个优点,而L2-norm没有。这实际上是L1-norm的一个结果,L1-norm往往会使系数变得稀疏(sparse
coefficients)。假设模型有100个系数,但是有10个非零的系数,这就是说,其它90个预测器在预测目标值上是没有用的。L2-norm往往会有非稀疏的系数(non-sparse
coefficients),没有这个特点。
稀疏性(Sparsity):这主要是一个向量或矩阵中只有很少的非零(non-zero)条目(entries)。L1-norm有能产生许多零值或非常小的值的系数的属性,很少有大的系数。
计算效率(Computational efficiency):L1-norm没有一个解析解(analytical
solution),但是L2-nom有,这使得L2-norm可以被高效的计算。可是,L1-norm的解有稀疏的属性,它可以和稀疏算法一起用,这可以是计算更加高效。
参考文献
[1]. Differences between the L1-norm andthe L2-norm (Least Absolute Deviations and Least Squares).
http://www.chioka.in/differences-between-the-l1-norm-and-the-l2-norm-least-absolute-deviations-and-least-squares/
[2]. l0-Norm, l1-Norm, l2-Norm, … ,l-infinity Norm.
https://rorasa.wordpress.com/2012/05/13/l0-norm-l1-norm-l2-norm-l-infinity-norm/
L1正则和L2正则的比较分析详解的更多相关文章
- 【机器学习】--鲁棒性调优之L1正则,L2正则
一.前述 鲁棒性调优就是让模型有更好的泛化能力和推广力. 二.具体原理 1.背景 第一个更好,因为当把测试集带入到这个模型里去.如果测试集本来是100,带入的时候变成101,则第二个模型结果偏差很大, ...
- 【机器学习】--线性回归中L1正则和L2正则
一.前述 L1正则,L2正则的出现原因是为了推广模型的泛化能力.相当于一个惩罚系数. 二.原理 L1正则:Lasso Regression L2正则:Ridge Regression 总结: 经验值 ...
- 贝叶斯先验解释l1正则和l2正则区别
这里讨论机器学习中L1正则和L2正则的区别. 在线性回归中我们最终的loss function如下: 那么如果我们为w增加一个高斯先验,假设这个先验分布是协方差为 的零均值高斯先验.我们在进行最大似然 ...
- Memcache的使用和协议分析详解
Memcache的使用和协议分析详解 作者:heiyeluren博客:http://blog.csdn.NET/heiyeshuwu时间:2006-11-12关键字:PHP Memcache Linu ...
- wav文件格式分析详解
wav文件格式分析详解 文章转载自:http://blog.csdn.net/BlueSoal/article/details/932395 一.综述 WAVE文件作为多媒体中使用的声波文件格式 ...
- 线程组ThreadGroup分析详解 多线程中篇(三)
线程组,顾名思义,就是线程的组,逻辑类似项目组,用于管理项目成员,线程组就是用来管理线程. 每个线程都会有一个线程组,如果没有设置将会有些默认的初始化设置 而在java中线程组则是使用类ThreadG ...
- HanLP中人名识别分析详解
HanLP中人名识别分析详解 在看源码之前,先看几遍论文<基于角色标注的中国人名自动识别研究> 关于命名识别的一些问题,可参考下列一些issue: l ·名字识别的问题 #387 l ·机 ...
- GC日志分析详解
点击返回上层目录 原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 GC日志分析详解 以ParallelGC为例,YoungGC日志解释如下 ...
- L1 正则 和 L2 正则的区别
L1,L2正则都可以看成是 条件限制,即 $\Vert w \Vert \leq c$ $\Vert w \Vert^2 \leq c$ 当w为2维向量时,可以看到,它们限定的取值范围如下图: 所以它 ...
随机推荐
- LED客显的类
using System; using System.IO.Ports; namespace Common { public class LedHelper { ; private static st ...
- C# Asp.net中xml串与对象互相转换
public class XmlUtil { #region 反序列化 /// <summary> /// 将XML字符串反序列化为对象 /// </summary> /// ...
- ES中TF-IDF算法
概念 TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术.TF-IDF是一种统计方法,用以评估一字词对于一个文 ...
- mysql常用压测工具
关键字:mysql压测工具 mysqlslap.sysbench 基准测试sysbench 压力测试 tpcc 具体怎么使用百度
- MongoDB的客户端管理工具--nosqlbooster 查询工具使用
连接我的MongoDB 看到这样 打开db1数据库里面user集合,看到user集合里面的数据,他会自带查询语句 看这里以tree方式显示 可以以table方式显示 还可以json方式显示 按照自己的 ...
- laravel dingo/api添加jwt-auth认证
前面我们学了laravel dingo/api创建简单的api,这样api是开放给所有人的,如何查看和限制api的调用呢?可以用jwt-auth来验证,JSON Web Token Authentic ...
- 各版本系统安装tesseract-ocr
Mac版本 1.tesseract-ocr安装 brew install tesseract-ocr 注意:如果未安装brew命令,可以输入命令: brew官网:http://brew.sh /us ...
- what's the python之模块
正则表达式 首先,我们引入了正则表达式的知识.所谓正则表达式,就是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对 ...
- 并发编程---互斥锁---互斥锁与join的区别
互斥锁 互斥锁:就是把多个进程并发,修改成一块共享数据的操作变成串行,保证是一个一个来修改的. 缺点:效率低,加锁过程复杂 优点:增加了安全性 from multiprocessing import ...
- 【LeetCode每天一题】Substring with Concatenation of All Words(具备列表中所有单词的字串)
You are given a string, s, and a list of words, words, that are all of the same length. Find all sta ...