l1正则化为什么稀疏(特征值重根与秩的关系)

L1正则化与稀疏性L1正则化使得模型参数具有稀疏性的原理是什么?机器学习经典之作《patternrecognitionandmachinelearning》中的第三章作出的一个解释无疑是权威且直观的,我们也经常都是从这个角度出发,来解释L1正则化使得模型参数具有稀疏性的原理。再回顾一下,以二维为例,红色和黄色的部分是L1、L2正则项约束后的解空间,蓝色的等高线是凸优化问题中的目标函数(…

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

L1正则化与稀疏性

L1正则化使得模型参数具有稀疏性的原理是什么?

机器学习经典之作《pattern recognition and machine learning》中的第三章作出的一个解释无疑是权威且直观的,我们也经常都是从这个角度出发,来解释L1正则化使得模型参数具有稀疏性的原理。再回顾一下,以二维为例,红色和黄色的部分是L1、L2正则项约束后的解空间,蓝色的等高线是凸优化问题中的目标函数(未加入正则项的)的等高线,如图所示,L2正则项约束后的解空间是圆形,而L1正则项约束后的解空间是菱形,显然,菱形的解空间更容易在尖角处与等高线碰撞出稀疏解。
在这里插入图片描述
假设原目标函数是 y = ( w 1 − 2 ) 2 + ( w 2 − 2 ) 2 y=(w_1-2)^2+(w_2-2)^2 y=(w1​−2)2+(w2​−2)2
在未加入正则项之前,这个最优解无疑是 ( w 1 = 2 , w 2 = 2 ) (w_1=2,w_2=2) (w1​=2,w2​=2)
但加入了正则项
y = ( w 1 − 2 ) 2 + ( w 2 − 2 ) 2 + 1 ∗ ( w 1 2 + w 2 2 ) y=(w_1-2)^2+(w_2-2)^2+1*(w_1^2+w_2^2) y=(w1​−2)2+(w2​−2)2+1∗(w12​+w22​)之后但最优解就不再是 ( w 1 = 2 , w 2 = 2 ) (w_1=2,w_2=2) (w1​=2,w2​=2),
而是 ( w 1 = 1 , w 2 = 1 ) (w_1=1,w_2=1) (w1​=1,w2​=1)
这是 ( w 1 − 2 ) 2 + ( w 2 − 2 ) 2 = a (w_1-2)^2+(w_2-2)^2=a (w1​−2)2+(w2​−2)2=a和 w 1 2 + w 2 2 = b w_1^2+w_2^2=b w12​+w22​=b这两个圆的切点。切点处a=2,b=2,此时正好a=b,这与我们的目标函数取值 y = ( w 1 − 2 ) 2 + ( w 2 − 2 ) 2 y=(w_1-2)^2+(w_2-2)^2 y=(w1​−2)2+(w2​−2)2是个圆形有关,如果是其他形状,不一定有a=b。

上面的解释无疑是正确的,但还不够准确,也就是回答但过于笼统,以至于忽略了几个关键问题,例如,为什么加入正则项就是定义了一个解空间约束,为什么L1、L2正则项的解空间不同。如果第一个问题回答了,第二个问题相对好回答。
其实可以通过kkt条件给出一种解释。
事实上,“带正则化项”和“带约束条件”是等价的,为了约束w的可能取值空间从而防止过拟合。

如果我们为线性回归加上一个约束,就是w的l2范数不能大于m:
m i n ∑ i = 1 N ( y i − w T x i ) 2 s . t . ∣ ∣ w ∣ ∣ 2 < = m (1) min \sum_{i=1}^{N} (y_i-w^{T}x_i)^2\\ s.t. ||w||^2<=m \tag1 mini=1∑N​(yi​−wTxi​)2s.t.∣∣w∣∣2<=m(1)

为了求解这个带约束条件的不等式,我们会写出拉格朗日函数
∑ i = 1 N ( y i − w T x i ) 2 + λ ( ∣ ∣ w ∣ ∣ 2 − m ) (2) \sum_{i=1}^{N} (y_i-w^{T}x_i)^2+\lambda(||w||^2-m) \tag2 i=1∑N​(yi​−wTxi​)2+λ(∣∣w∣∣2−m)(2)
如果 w ∗ w^{*} w∗是原问题(1)的解, λ ∗ \lambda^{*} λ∗是对偶问题(2)的解,
一般都是先求出对偶问题的解 λ ∗ \lambda^{*} λ∗,然后带入kkt条件中( λ ∗ \lambda^{*} λ∗和 w ∗ w^{*} w∗的关系),就能求出 w ∗ w^{*} w∗。 w ∗ w^{*} w∗也必然是原问题的解。
这里kkt条件是:
0 = m i n ∇ w ( ∑ i = 1 N ( y i − w ∗ T x i ) 2 + λ ∗ ( ∣ ∣ w ∗ ∣ ∣ 2 − m ) ) s . t . 0 < = λ ∗ (3) 0=min \nabla_w(\sum_{i=1}^{N} (y_i-w^{*T}x_i)^2+\lambda^{*}(||w^{*}||^2-m))\\ s.t. 0<=\lambda^{*} \tag3 0=min∇w​(i=1∑N​(yi​−w∗Txi​)2+λ∗(∣∣w∗∣∣2−m))s.t.0<=λ∗(3)

其中,第一个式子就是带L2正则项的优化问题最优解 w ∗ w^{*} w∗,而 λ ∗ \lambda^{*} λ∗是L2正则项前的系数。

这就是为什么带正则化项相当于为参数约束了解空间,且L2正则项为参数约束了一个圆形解空间,L1正则项为参数约束了一个菱形解空间,如果原问题的最优解没有落在解空间的内部,就只能落在解空间的边界上。
而L1正则项为参数约束了一个“棱角分明”的菱形解空间,更容易与目标函数等高线在角点,坐标轴上碰撞,从而产生稀疏性。

看到上面,其实我直接有个疑问,就是“如果我们为线性回归加上一个约束,就是w的l2范数不能大于m”、这句话里的m是个固定的确定值,还是瞎设的值。
后面我的想法是,任意给定一个m值,都能得到一个两圆相切的切点,从而得到其给定m条件下的带正则项的最优解,然后在不同的m值中,再选出某个m值对应的最优解是全局最优解,从而得到最终的最优解。

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

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

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

相关推荐

  • Linux入门基础教程

    Linux入门基础教程转载自:http://www.centoscn.com/CentOS/2015/0528/5555.html1.1Linux操作系统简介Linux是一套免费使用和自由传播的类Unix操作系统,

    2022年7月1日
  • servlet的工作原理_servlet的作用

    servlet的工作原理_servlet的作用1.Servlet容器Servlet是运行Servlet容器的基础之上的,所以了解Servlet工作原理就得先从Servlet容器说起,以Tomact为例:在Tomact容器等级中,Context容器直接管理Servlet在容器中的包装类Wrapper,每个Context对应一个Web项目,所以Context如何运行直接影响到Servlet的运行。1

    2022年10月4日
  • Centos 7配置LAMP「建议收藏」

    Centos 7配置LAMP「建议收藏」LAMP指的Linux(操作系统)、ApacheHTTP服务器,MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建立web应用平台。所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP…

    2022年5月3日
  • matplotlib之pyplot模块——饼图(pie():圆环图(donut)、二层圆环图、三层圆环图(旭日图))「建议收藏」

    matplotlib之pyplot模块——饼图(pie():圆环图(donut)、二层圆环图、三层圆环图(旭日图))「建议收藏」在matplotlib中pie()不单可以绘制饼图,还可以绘制圆环图(donut)。圆环图可以看成饼图的变种,matplotlib没有提供专门绘制圆环图的接口。在matplotlib之pyplot模块之饼图(pie():基础参数,返回值)中,我们提到了wedgeprops参数,通过wedgeprops参数传递饼块对象Wedge的width参数即可快速实现圆环图。下面通过三个案例简单说明圆环图、二层圆环图、三层圆环图的制作方法。

    2022年9月25日
  • C语言小游戏——贪吃蛇—-小白专用

    C语言小游戏——贪吃蛇—-小白专用C语言贪吃蛇小游戏个人小白,后期也做了一些改进,附原视频地址(点击即可)废话在后面直接上程序该程序在VS2019上可完美运行。#include<stdio.h>#include<stdlib.h>#include<Windows.h>#include<time.h>#include<conio.h>constexprautomaphigh=28,mapwide=84;structvirus{ intx;

    2022年5月12日
  • jira项目管理软件_jira安装配置教程

    jira项目管理软件_jira安装配置教程Jira是Atlassian公司出品的一款事务管理软件(缺陷管理类的软件)。无论是“需求”,还是“BUG”,或是“任务”,都是“事务”的一种,所以Jira可以胜任非常多的角色:需求管理、缺陷跟踪、任务管理等等……因为Jira提供了专门的Scrum视图和Kanban视图,所以特别适合敏捷开发团队使用。大型互联网公司如LinkedIn、Facebook、eBay等内部都在使用Jira。软件的缺陷软件的缺陷和跟踪的流程JIRA的实践的例子…

    2022年10月26日

发表回复

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

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