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

l1-norm 和 l2-norm是常见的模型优化过程中的正则化项,对应到线性回归的领域分别为lasso Regression和 Ridge Regression,也就是 lasso 回归(有的地方也叫套索回归)和岭回归(也叫脊回归)。在深度学习领域也用l1和l2范数做正则化处理。这里简要介绍一下lasso和ridge(Ridge相关详见另一篇笔记:【https://blog.csdn.net/edogawachia/article/details/79478266】),以及l1-norm和l2-norm做正则化对最终的解的影响(为何l1偏向于稀疏解)。另外,l1范数的下降方法留作下一篇整理。

Lasso Regression和 Ridge Regression

lasso 的全程是 least absolute shrinkage and selection operator,也就是最小绝对值收缩和选择算子。lasso的公式如下:


上面两种表示是同一个问题,也就是在l1norm正则下优化线性回归问题,这里下面的写法是上面的写法的lagrangian form。

下面是ridge Regression:

可以看出,是用l2 norm做正则,其他和上面相同。

另外,还有一种正则方式,或者叫做特征选择方式,叫做best subset selection,最优子集选择,它等价于对下面这个式子的minimization,也就是以0范数做正则进行优化。

下面贴一个很好的ppt中的解释,链接在文末。


l1-norm 和 l2-norm

先总结一下l1和l2 norm

  • l1 norm更倾向于稀疏解。
  • l1 norm 对于离群点更加鲁棒。
  • l1 norm 对应拉普拉斯先验,l2 norm对应高斯先验。

首先看一下各种lp norm的形状:

从0到inf,norm的形状是逐渐变“胖”的过程,当然这是有限度的,限制就是l inf norm时候的立方体,可以看成一个初始在坐标轴上逐渐膨胀的气球被禁锢在一个在各坐标轴为1的点处与该轴垂直的平面所围成的一个盒子里。如图所示,0范数就是非零元素的个数,具体的值不考虑,1范数是绝对值,2范数是一个单位球形状。而且,所有小于1的norm都是不凸的,l1是最小的凸函数。

通常对w用l1做正则的时候是希望它可以把w做成稀疏的,也就是我们可以对很多特征的系数置0,也就是起到特征选择的作用。那么用l0 norm显然是最合适的,但是由于l0范数不凸,所以我们对它进行凸松弛,而l1范数这时就出现了,因为它是和l0范数最接近的凸近似,所以通常用l1范数也能得到稀疏解。

稀疏

l1-norm 为何可以得到稀疏解,可以用以下图说明:

图片来自于李力老师的凸优化及其应用一书中的截图。为了和图相对应,首先将带有正则的函数写成优化线性表示和真实答案的差值的约束优化问题,其中subject to |w| < c 或者|w|_2 < c。这里可以看出,右上角是要优化的函数的等值线,而圆形和菱形就是2范数和1范数的约束,可以看到,1范数相对于2范数,在坐标轴以外的凸出的表面积(这里是线段长度)更小,也就是说,相对于2范数,1范数和待优化的函数的等值面更容易交于坐标轴,而2范数更偏向于非坐标轴。(沿着这个思路继续想下去,l0范数只在坐标轴有值,因此肯定是稀疏的,而0-1之间的范数虽然表面积大一些,但是并不是凸出去的表面积,因此和我们要优化的凸函数并不能更早的相交)。这也就是为什么在特征选择和希望得到稀疏解的时候选择1范数的理由。

也可以这样考虑,对于l1范数的绝对值函数 f(x) = |x|,和l2范数的f(x) = x^2, 可以对比函数图像,在下降过程中,绝对值函数是自变量下降多少,函数值就下降多少;而二次函数的函数值下降的是自变量的平方,当自变量下降到0附近时,自变量的变化引起的范数减小值不明显,因此也就不容易得到0,也就不容易得到稀疏解。

鲁棒

由于l2范数对距离0较远的值(离群点或野值)惩罚较大,因此会更加关注到这些点。但是往往这些野值点是由于采集数据的失误等造成的,是无参考价值的。这样一来,l2norm下的回归得到的结果就会受到野值的影响,偏移其他正常点表示的位置。而l1对野值不敏感,因此可以更鲁棒的回归。

Bayesian view : 先验分布


由上面的图很容易能看出来,Gaussian的指数是关于w的一个平方项,Laplacian是一个绝对值项。

实际上,从贝叶斯的角度看,我们对优化模型的正则实际上就是加入了先验知识。实际上也确是如此,为何我们偏向简单模型,特别是w的能量较小的,不管以什么方式,l1也好l2也好,或者其他的比如max norm,为何我们希望结构风险最小化?这个结构风险指的究竟是什么?实际上,这里我们已经人为地预设了一个假设:实际有效的模型都是简单的,也就是所谓的occam razor 奥卡姆剃刀原则(btw,这个经院哲学家的一条格言在机器学习还有信息论里面都备受青睐)。这个就是我们的先验知识,反映到模型中就是正则项。但是这个经验只是需要w较小,也就是集中在0附近最好,但是具体如何集中没有表明,因此用Gaussian和laplacian都是合理的。

(上面就是奥卡姆的威廉,奥卡姆剃刀的作者)

由贝叶斯定理可以知道,我们的先验似然通过乘积的方式,即可得到后验概率(当然要做边际化,或者叫归一化)。为了方面求解,我们取对数,变成相加的形式,似然函数就是我们的经验风险最小化的一项,也就是拟合样本的一部分;而后面的另一个加数就是先验取对数,就是我们的正则。再回到上面两页ppt中的公式,可以看到,取了对数以后,就把指数项拿下来了,就变成了l1和l2 norm,因此就说明了l1和l2分别与Gaussian和laplacian的对应性。

reference:

http://www.unicog.org/pmwiki/uploads/Main/PresentationMM_02_10.pdf

2018年04月23日23:19:49

l1-norm loss l2-norm loss (l1范数和l2范数作为正则项的比较)相关推荐

  1. 【pytorch损失函数(4)】nn.MSELoss,(Mean Squared Error,MSE) 均方误差(MSE)(squared L2 norm,平方L2范数)。它也被称为L2 Loss。

    文章目录 MSE 损失函数 1.是什么? 2.数学表述 3.MSE 梯度消失问题 4.用途 5.L1 vs. L2 for Computer Vision 参考 MSE 损失函数 1.是什么? 均方误 ...

  2. L1 distace、L2 distance,L1 norm、L2 norm,L1、L2范数

    在练习机器学习时,可能会选择决定是使用L1范数还是L2范数进行正则化,还是作为损失函数等. L1范数也称为最小绝对偏差(LAD),最小绝对误差(LAE).它基本上是最小化目标值(Y i)和估计值(f( ...

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

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

  4. L1/L2/smooth_l1_loss/center_loss+Dice Loss+focal loss+各种IOU loss+kl散度

    一.L1/L2/smooth_l1_loss/center_loss公式与代码 1.公式 L2公式: smooth_L1公式: 2.三种函数numpy代码实现 import numpy as np i ...

  5. L0 Norm 、L1 Norm 和 L2 Norm 的简单理解

    文章目录 一.L0 Norm 二.L1 Norm 三.L2 Norm 一.L0 Norm L0 范数对应于向量中非零元素的总数 例如,向量(0,0)和(0,2)的L0范数为1,因为只有一个非零元素. ...

  6. L1、L2正则VS L1、L2 loss

    1.L1.L2正则--参数空间 L1范数表达式为:, L2范数表达式: L1正则(上图左),使得某些特征量变为0,因此具有稀疏性,可用于特征选择: L2正则(上图右),整体压缩特征向量,使用较广. 2 ...

  7. L1, L2, smooth_L1 Loss函数python实现

    L1, L2, smooth_L1函数python实现 L1 loss def L1(y_gt, y_pre):loss = np.sum(np.abs(y_gt - y_pre))print(los ...

  8. 常用损失函数总结(L1 loss、L2 loss、Negative Log-Likelihood loss、Cross-Entropy loss、Hinge Embedding loss、Margi)

    常用损失函数总结(L1 loss.L2 loss.Negative Log-Likelihood loss.Cross-Entropy loss.Hinge Embedding loss.Margi) ...

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

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

最新文章

  1. 用VS2010构建MASM的编程环境
  2. 三十三、深入Vue.js语法(上篇)
  3. python3安装后无法使用退格键的问题
  4. php使用webservivce_JWS服务开发使用指南
  5. SQL SERVER 只有MDF文件的恢复
  6. HttpClient 忽略证书直接访问https站点
  7. 如何向某网址Post信息,并得到CookieContainer以便以后直接通过验证
  8. angularjs 循环完之后执行的事件
  9. Oracle中alter system命令参数之scope
  10. Windows 常用快捷键 打开cmd DOS命令
  11. ae合成设置快捷键_解决AE提示错误预览需要2个或多个帧才能播放问题
  12. 添加Onvif设备到Blue IRIS步骤
  13. 从管好事提升管理水平--创建事
  14. 使用Python将文件名中的汉字序号改为阿拉伯数字序号
  15. JDBC:事物管理与事物隔离界别
  16. GRA灰色关联度分析学习 附python代码
  17. Stream流的一些骚操作
  18. 乐鑫esp8266学习rtos3.0笔记:AT指令固件如何二次开发,实现AT指令连接亚马逊AWS IoT平台;
  19. Python出现Non-ASCII character '\xe6' in file错误解决方法
  20. 中软计算机培训考试,在线考试教育,中软,的解决方案.docx

热门文章

  1. 字符串(づ。◕‿‿◕。)づ进阶之章
  2. 计算机sci期刊必需要提交原始数据,sci投稿的时候需要附上原始数据和处理过程么...
  3. 谁的php最厉害,羽坛四大天王谁最强?羽毛球四大天王排行榜(图)
  4. 良心推荐几款好玩的生存类手游:方舟生存进化、饥荒等等
  5. 【向StoneDB迁移数据】数据迁移同步工具-Gravity
  6. 帕金森疾病的事件相关电位与认知
  7. 二氧化钛TiO2纳米粒子(尺寸80nm-800nm可调节)的高清电镜图
  8. 剑灵狂欢区服务器位置,9377剑灵洪门崛起6月25日部分区合服公告
  9. Linq to Sql 事务处理
  10. HTML5七夕情人节表白代码_浪漫烟花表白网页(html+css+js)