L1范数与L2范数的区别与联系

一、过拟合与正则化

  过拟合指的就是在机器学习模型训练过程中把数据学习的太彻底,以至于把噪声数据的特征也学习到了,这样会导致在测试的时候不能够很好地识别数据,即不能正确的分类,模型测试的时候不能够很好地识别数据,即不能正确的分类,模型泛化能力较差,也就是高方差(variance),低偏差(bias)。例如:

  正则化就是用来解决过拟合问题的,防止我们的模型过分拟合我们的参数。监督机器学习问题无非就是“minimize your error while regularizing your parameters”,也就是在规则化参数的同时最小化误差,最小化误差是为了让我们的模型拟合我们的训练数据。正则化参数我理解就是寻找在模型拟合我们的数据以及过拟合之间寻找平衡点。参数太多,会导致我们的模型复杂度上升,容易过拟合,正则化可以约束参数,降低模型复杂度,同时规则项的使用可以约束我们模型的特性,使模型稀疏、低秩、平滑等。机器学习中几乎都可以看到损失函数后面会添加一个额外项,称作L1正则化和L2正则化,或者L1范数和L2范数。

  其中,第一项L(yi,f(xi;w)) 就是误差平方和;第二项则为惩罚项,对参数w的正则化函数Ω(w)去约束我们的模型尽量的简单。机器学习的大部分带参模型都和这个不但形似,而且神似。是的,其实大部分无非就是变换这两项而已。

第一项-Loss函数

如果是Square loss,那就是最小二乘了;

如果是Hinge Loss,那就是著名的SVM了;

如果是exp-Loss,那就是牛逼的 Boosting了;AdaBoost:

如果是log-Loss,那就是Logistic Regression了;

还有等等。不同的loss函数,具有不同的拟合特性,这个也得就具体问题具体分析的。但这里,我们先不究loss函数的问题,我们把目光转向“规则项Ω(w)”

    

第二项-正则化参数

常见的有L1范数、L2范数等

线性回归的中的正则化项举例:

二、L1范数与L2范数

  • L1范数 -- (Lasso Regression)

L1范数表示向量中每个元素绝对值的和:

L1范数的解通常是稀疏性的,倾向于选择数目较少的一些非常大的值或者数目较多的insignificant的小值。

参数稀疏的好处

1)特征选择(Feature Selection):

  大家对稀疏规则化趋之若鹜的一个关键原因在于它能实现特征的自动选择。一般来说,xi的大部分元素(也就是特征)都是和最终的输出yi没有关系或者不提供任何信息的,在最小化目标函数的时候考虑xi这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确yi的预测。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。

2)可解释性(Interpretability):

  另一个青睐于稀疏的理由是,模型更容易解释。例如患某种病的概率是y,然后我们收集到的数据x是1000维的,也就是我们需要寻找这1000种因素到底是怎么影响患上这种病的概率的。假设我们这个是个回归模型:y=w1*x1+w2*x2+…+w1000*x1000+b(当然了,为了让y限定在[0,1]的范围,一般还得加个Logistic函数)。通过学习,如果最后学习到的w*就只有很少的非零元素,例如只有5个非零的wi,那么我们就有理由相信,这些对应的特征在患病分析上面提供的信息是巨大的,决策性的。也就是说,患不患这种病只和这5个因素有关,那医生就好分析多了。但如果1000个wi都非0,医生面对这1000种因素,累觉不爱。

  • L2范数 -- (Ridge Regression)

L2范数即欧氏距离:

L2范数越小,可以使得w的每个元素都很小,接近于0,但L1范数不同的是他不会让它等于0而是接近于0.

L2的作用=参数变小=模型变简单≈模型参数信息变少

三、从几何角度直观理解L1范数、L2范数

假设有如下带L1正则化的损失函数:

其中J0是原始的损失函数,加号后面的一项是L1正则化项,α是正则化系数。注意到L1正则化是权值的绝对值之和,J是带有绝对值符号的函数,因此J是不完全可微的。机器学习的任务就是要通过一些方法(比如梯度下降)求出损失函数的最小值。当我们在原始损失函数J0后添加L1正则化项时,相当于对J0做了一个约束。令L=α∑w|w|,则J=J0+L,此时我们的任务变成在L约束下求出J0取最小值的解。考虑二维的情况,即只有两个权值w1和w2,此时L=|w1|+|w2|对于梯度下降法,求解J0的过程可以画出等值线,同时L1正则化的函数L也可以在w1w2的二维平面上画出来。如下图:

图中等值线是J0的等值线,黑色方形是L函数的图形。在图中,当J0等值线与L图形首次相交的地方就是最优解。上图中J0与L在L的一个顶点处相交,这个顶点就是最优解。注意到这个顶点的值是(w1,w2)=(0,w)。可以直观想象,因为L函数有很多『突出的角』(二维情况下四个,多维情况下更多),J0与这些角接触的机率会远大于与L其它部位接触的机率,而在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择。而正则化前面的系数α,可以控制L图形的大小。α越小,L的图形越大(上图中的黑色方框);α越大,L的图形就越小,可以小到黑色方框只超出原点范围一点点,这是最优点的值(w1,w2)=(0,w)中的w可以取到很小的值。类似,假设有如下带L2正则化的损失函数:

同样可以画出他们在二维平面上的图形,如下:

二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此J0与L相交时使得w1或w2等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因。

一句话简单总结L1、L2范数的区别

L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择。具有截断性

L2正则化可以让参数衰减,防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合。具有缩放性

参考链接:

http://blog.csdn.net/jinping_shi/article/details/52433975

https://www.cnblogs.com/little-YTMM/p/5879093.html

http://blog.csdn.net/sinat_26917383/article/details/52092040

L1范数与L2范数的区别与联系相关推荐

  1. L1范数和L2范数的区别

    L1范数和L2范数的区别 @(deepLearning) 范数 norm 范数是衡量某个向量空间(或矩阵)中的每个向量以长度或大小. ∥x∥p:=(∑i=1n∣xi∣p)1p\left \| x\ri ...

  2. L0范数、L1范数和L2范数的区别

    我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI 公众号介绍:Microstrong(小强)同学主要研究机器学习.深度学习.计算机视觉.智能对话系统相关内容,分享 ...

  3. 【转】L1范数与L2范数的区别

    把答案放在前面 L0范数是指向量中非0的元素的个数.(L0范数很难优化求解). L1范数是指向量中各个元素绝对值之和. L2范数是指向量各元素的平方和然后求平方根. L1范数可以进行特征选择,即让特征 ...

  4. 核范数和l1范数_L1范数与L2范数的区别

    把答案放在前面 L0范数是指向量中非0的元素的个数.(L0范数很难优化求解) L1范数是指向量中各个元素绝对值之和 L2范数是指向量各元素的平方和然后求平方根 L1范数可以进行特征选择,即让特征的系数 ...

  5. 正则化中 L1范数与L2范数的区别

    把答案放在前面 L0范数是指向量中非0的元素的个数.(L0范数很难优化求解) L1范数是指向量中各个元素绝对值之和 L2范数是指向量各元素的平方和然后求平方根 L1范数可以进行特征选择,即让特征的系数 ...

  6. 机器学习中的正则化——L1范数和L2范数

    机器学习中的正则化--L1范数和L2范数 正则化是什么?为什么要正则化? LP范数 L0范数(补充了解) L1范数 L2范数 L1范数和L2范数的区别 以深度学习的角度看待L1范数和L2范数 正则化是 ...

  7. 人工智能-范数 norm:L1范数和L2范数【L0范数:向量中非0的元素的个数; L1范数:向量各元素的绝对值之和(曼哈顿距离);L2范数:向量各元素的平方和的开方值(欧氏距离)】

    范数是衡量某个向量空间(或矩阵)中的每个向量的长度或大小. ∥x∥p:=(∑i=1n∣xi∣p)1p\left \| x\right \|_p := \left( \sum_{i=1}^{n}\lef ...

  8. l1-norm loss l2-norm loss (l1范数和l2范数作为正则项的比较)

    l1-norm loss & l2-norm loss (l1范数和l2范数作为正则项的比较) l1-norm 和 l2-norm是常见的模型优化过程中的正则化项,对应到线性回归的领域分别为l ...

  9. L1范数与L2范数对比

    L1和L2范数的比较 L0范数是指向量中非0的元素的个数.(L0范数很难优化求解) L1范数是指向量中各个元素绝对值之和 L2范数是指向量各元素的平方和然后求平方根 L1范数可以进行特征选择,即让特征 ...

最新文章

  1. Build-dep linux 知乎,删除通过apt-get build-dep安装的软件包
  2. seaborn使用violinplot函数可视化小提琴图、使用stripplot函数添加抖动数据点(jittered points)、显示数据的稠密程度
  3. 任意文件读取linux,Symphony 1.4.20服务器任意文件读取漏洞
  4. ogre3D学习基础14 -- 雾化效果与天空面,天空盒,天空穹
  5. SAP Spartacus user和org user form两处不同的checkbox风格
  6. .NET 5 Preview 1的深度解读和跟进
  7. zing jvm_Zing加快了JVM应用程序的预热
  8. ASP.NET Web API 中的属性路由
  9. python表示空类型的关键字_Python 为什么没有 void 关键字?
  10. Oracle“钱夹”的使用
  11. Android中Bundle和Intent的区别
  12. Eclipse安装SVN
  13. 02-监督学习应用.梯度下降
  14. 计算机一级查询证书编号,如何查询计算机一级证书编号
  15. 2019计算机考研学校排行,2019计算机考研:中国大学计算机学科排行榜
  16. 安装office 错误代码:30068-39
  17. python北京房价预测_Python爬虫告诉你北京房价有多高
  18. hbase 使用lzo_hbase 使用LZO笔记
  19. SQL Server数据库实操 第二波 集合查询、datepart()
  20. oracle生成主键函数,Oracle学习记录之使用自定义函数和触发器实现主键动态生成...

热门文章

  1. mro采购是什么意思
  2. FMC子卡:4 通道 16bit 12.6G AD 采集
  3. 【AndroidFramework】ATV9遥控器红外模式下,机顶盒在假待机阶段会响应遥控器语音键...
  4. 小程序开发笔记《二》json转数组
  5. 佛系架构图秒懂OAuth2
  6. 苹果手机通讯录丢失了怎么办,请往这儿看
  7. ModelArts第二次培训
  8. 三星watch4和5哪个值得买?三星watch4和watch5的区别
  9. linux ntp 定时同步_linux 时间同步的2种方法
  10. 【极荐】Ubuntu-U盘安装-双系统安装-白痴教程-附:搭建中大校园网-Yah3c