L0/L1/L2/无穷范数

L0范数:向量中非零元素的个数L1范数:向量中各个元素绝对值的和L2范数:向量中元素平方的和,再开方;即向量的模长无穷范数:向量中各个元素绝对值的最大值 关于范数,有个好文章:http://blog.csdn.net/zouxy09/article/details/24971995重要部分贴过来(感谢作者): 好了,这里兑现上面的承诺,来直观的聊聊L1和L2的差别,…

大家好,又见面了,我是你们的朋友全栈君。

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

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

L2范数:向量中元素平方的和,再开方;即向量的模长

无穷范数:向量中各个元素绝对值的最大值

 

关于范数,有个好文章:http://blog.csdn.net/zouxy09/article/details/24971995

重要部分贴过来(感谢作者):

 

好了,这里兑现上面的承诺,来直观的聊聊L1和L2的差别,为什么一个让绝对值最小,一个让平方最小,会有那么大的差别呢?我看到的有两种几何上直观的解析:

1)下降速度:

       我们知道,L1和L2都是规则化的方式,我们将权值参数以L1或者L2的方式放到代价函数里面去。然后模型就会尝试去最小化这些权值参数。而这个最小化就像一个下坡的过程,L1和L2的差别就在于这个“坡”不同,如下图:L1就是按绝对值函数的“坡”下降的,而L2是按二次函数的“坡”下降。所以实际上在0附近,L1的下降速度比L2的下降速度要快。所以会非常快得降到0。不过我觉得这里解释的不太中肯,当然了也不知道是不是自己理解的问题。

L0/L1/L2/无穷范数

       L1在江湖上人称Lasso,L2人称Ridge。不过这两个名字还挺让人迷糊的,看上面的图片,Lasso的图看起来就像ridge,而ridge的图看起来就像lasso。

2)模型空间的限制:

       实际上,对于L1和L2规则化的代价函数来说,我们可以写成以下形式:

L0/L1/L2/无穷范数

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

L0/L1/L2/无穷范数

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

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

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

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126291.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎么设计高效的敏感词过滤系统(一)「建议收藏」

    怎么设计高效的敏感词过滤系统(一)「建议收藏」最近在做一个项目,寻遍了Node开源社区居然没有发现一个好用的敏感词过滤库,有那么几个库外观上看起来似乎还不错,用起来却一塌糊涂,震惊有余,失望至极。于是花了一天时间自己撸了一个库,库名叫fastscan,这是我的第一个Node开源项目,它也可以用于浏览器环境。fastscan基于广为人知的ahocorasick高性能字符串匹配算法。项目地址:https://github….

    2022年4月28日
    159
  • hdu1024—最大m段不重合子序列和:策略优化

    hdu1024—最大m段不重合子序列和:策略优化

    2021年8月7日
    60
  • 关于 Sensor flicker/banding现象的解释「建议收藏」

    关于 Sensor flicker/banding现象的解释「建议收藏」目录1、基本概念2、30fps,1帧内banding过程演示3、30fps,帧与帧之间banding过程演示4、25fps,帧与帧之间banding过程演示5、总结flicker交流电网中的传输的能量并不是稳定不变的,而是随着一个固定频率变化的,这个频率一般被称为工频,例如中国是50Hz,美国是60Hz。工频由电力系统决定。工频的带来的这种能量变化称为flicker。下面以50HZ为例进行解释,交流电以1/50s,即20ms的周期进行变化,其变化规律如图所示:而对于能量来说,并没有正负之分,因此能量

    2022年10月13日
    1
  • 梯度下降法与随机梯度下降法[通俗易懂]

    梯度下降法与随机梯度下降法[通俗易懂]梯度下降法与随机梯度下降法

    2025年10月21日
    5
  • windows部署apache_win7下ftp服务器搭建

    windows部署apache_win7下ftp服务器搭建======================更新时间2019年5月6日=====================更新内容:增加操作系统及VC++的版本要求======================更新时间2019年4月19日=====================更新内容:Apache版本更新到2.4.39,修改配置文件更加简单,只需一步。原始的2.4.2…

    2025年8月24日
    5
  • PriorityQueue(优先级队列总结)

    PriorityQueue(优先级队列总结)一,概念队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时,可能需要优先级高的元素先出队列 数据结构应该提供两个最基本的操作,一个是返回最高优先级对象,一个是添加新的对象。这种数据结构就是优先级队列(PriorityQueue)二,PriorityQueue的特性Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlo.

    2022年5月1日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号