一文弄懂L0、L1和L2正则化范式

article/2025/9/22 7:57:33

文章目录

  • 正则化
  • L0范数
  • L1范数
  • L2范数
  • elastic net
  • 总结
  • 讨论几个问题
    • 为什么L1稀疏,L2平滑?
    • 实现参数的稀疏有什么好处吗?
    • 参数值越小代表模型越简单吗?
  • 正则式的应用场景

正则化

正则化的作用实际上就是防止模型过拟合,提高模型的泛化能力。

正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或惩罚项(penalty term)。正则化一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如,正则化项可以是模型参数向量的范数。正则化项可以:
在这里插入图片描述
其中,第1项是经验风险,是对第i个样本的预测值f(xi)和真实的标签yi之前的误差,因为我们的模型是要拟合我们的训练样本,所以我们要求这一项最小,也就是要求我们的模型尽量的拟合我们的训练数据;第2项是正则化项,也就是对参数w的规则化函数J(f)去约束我们的模型尽量的简单,λ>=0(读音:lambda)为调整两者之间关系的系数。
在这里插入图片描述

L0范数

L0是指向量中非0的元素的个数。 如果我们用L0范数来规则化一个参数矩阵W的话,就是希望W的大部分元素都是0。换句话说,让参数W是稀疏的。

但不幸的是,L0范数的最优化问题是一个NP hard问题,而且理论上有证明,L1范数是L0范数的最优凸近似,因此通常使用L1范数来代替。

在这里插入图片描述

L1范数

L1范数是指向量中各个元素绝对值之和 ,也有个美称叫“稀疏规则算子”(Lasso regularization)。

L1正则化之所以可以防止过拟合,是因为L1范数就是各个参数的绝对值相加得到的,我们前面讨论了,参数值大小和模型复杂度是成正比的。因此复杂的模型,其L1范数就大,最终导致损失函数就大,说明这个模型就不够好。

在这里插入图片描述

L2范数

L2范数向量元素绝对值的平方和再开平方 ,也叫“岭回归”(Ridge Regression),也叫它“权值衰减weight decay”。

但与L1范数不一样的是,它不会是每个元素为0,而只是接近于0。越小的参数说明模型越简单,越简单的模型越不容易产生过拟合现象。

L2范数即欧氏距离:
在这里插入图片描述

elastic net

L1+L2结合的方式,即elastic net。这种方式同时兼顾特征选择(L1)和权重衰减(L2)。其公式如下这种方式同时兼顾特征选择(L1)和权重衰减(L2)。其公式如下
在这里插入图片描述
上式中,t为正则项与L(w)之间的trade-off系数,和之前的描述一致,p是elastic net里独有的参数,它是L1和L2之间的一个trade-off,如果p为0,那么上式退化为L2正则化,如果p为1,那么上式退化为L1正则化。所以当p取值为0到1时(不包含端点),上式兼顾了L1和L2的特点。又由于L1为1范式,L2为2范式,那么elastic net就介于1范式和2范式之间。

总结

L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。所有特征中只有少数特征起重要作用的情况下,选择L1更合适;而如果所有特征中,大部分特征都能起作用,而且起的作用很平均,选择L2更合适。

  • L1/L2范数让模型变得稀疏,增加模型的可解析性,可用于特征选择。
  • L2范数让模型变得更简单,防止过拟合问题。

讨论几个问题

为什么L1稀疏,L2平滑?

这个角度从权值的更新公式来看权值的收敛结果。
首先来看看L1和L2的梯度(求导过程,同时假定:w等于不为0的某个正的浮点数,学习速率η 为0.5,λ为1.0):
L1梯度:
在这里插入图片描述
L1正则化是通过加上或减去一个常量ηλ(η读作eta ,λ读作lambda}),让w向0靠近。也即是w = w - η*λ = w - 0.5*1.0,权值每次更新都固定减少一个特定的值(比如0.5),那么经过若干次迭代之后,权值就有可能减少到0。
L2梯度:
在这里插入图片描述
L2正则化,它使用了一个乘性因子 (1-ηλ)去调整权重,使权重不断衰减。也即是w = (1 - η*λ) * w = (1 - 0.5*1.0)*w = 0.5*w,此时可以看到当w值较大时,L2下降速度较快,当w小的时候,下降较慢。虽然权值不断变小,但是因为每次都等于上一次的一半,所以很快会收敛到较小的值但不为0。

实现参数的稀疏有什么好处吗?

一个好处是可以简化模型,避免过拟合。因为一个模型中真正重要的参数可能并不多,如果考虑所有的参数起作用,那么可以对训练数据可以预测的很好,但是对测试数据就只能呵呵了。另一个好处是参数变少可以使整个模型获得更好的可解释性。

参数值越小代表模型越简单吗?

是的。为什么参数越小,说明模型越简单呢,这是因为越复杂的模型,越是会尝试对所有的样本进行拟合,甚至包括一些异常样本点,这就容易造成在较小的区间里预测值产生较大的波动,这种较大的波动也反映了在这个区间里的导数很大,而只有较大的参数值才能产生较大的导数。因此复杂的模型,其参数值会比较大。

正则式的应用场景

见:
通俗易懂–岭回归(L2)、lasso回归(L1)、ElasticNet讲解(算法+案例):https://juejin.im/post/5c34c5f36fb9a049d13250b7

参考:
《统计学习方法》-李航
机器学习中的范数规则化之(一)L0、L1与L2范数:http://www.cnblogs.com/weizc/p/5778678.html
L0、L1、L2范数在机器学习中的应用:https://www.jianshu.com/p/4bad38fe07e6
L1,L2,L0区别,为什么可以防止过拟合:https://www.jianshu.com/p/475d2c3197d2
岭回归、lasso、ElasticNet、正则化、L1、L2小结:https://vimsky.com/article/969.html
为什么L1稀疏,L2平滑?:https://blog.csdn.net/yitianguxingjian/article/details/69666447


http://chatgpt.dhexx.cn/article/UsFch1gd.shtml

相关文章

正则化与L0、L1、L2范数祥解

1、范数 范数是衡量某个向量空间(或矩阵)中的每个向量以长度或大小。范数的一般化定义:对实数p>1, 范数定义如下: L1范数 当p1时,是L1范数,其表示某个向量中所有元素绝对值的和。L2范数 当p…

汽车自动驾驶的L0-L5是什么意思?

一、问题 汽车L0、L1、L2、L3、L4、L5自动驾驶都是什么意思呢? 近年来「自动驾驶」对我们来说不再陌生,很多人虽然早有所闻,但是真不懂自动驾驶的L0、L1、L2、L3、L4、L5是什么意思,都有哪些功能,今天就来为大家科普一…

L0到L5自动驾驶的区别

L0到L5自动驾驶的区别 具有某些自主功能的汽车已经出现:现在就来了解接下来会发生什么。 自动驾驶汽车不再是科幻小说。 今天,您已经可以购买一辆能够在高速公路和平行停车场的高峰时段自动驾驶的汽车。 但是,要一辆能做司机的车&#xff0c…

区块链中L0、L1、L2、L3分别是什么

区块链有六层架构:数据层、网络层、共识层、激励层、合约层和应用层。 Layer 0又称数据传输层,对应OSI模型的底层,主要涉及区块链和传统网络之间的结合问题。 Layer 1扩容方案又称链上扩容,指在区块链基层协议上实现的扩容解决方案。 Lay…

1.机器学习中的L0、L1与L2范数到底是什么意思?

一、L0范数与L1范数 L0范数是指向量中非0的元素的个数。如果我们用L0范数来规则化一个参数矩阵W的话,就是希望W的大部分元素都是0。让参数W是稀疏的。 L1范数是指向量中各个元素绝对值之和,也叫“稀疏规则算子”(Lasso regularization&…

L0,L1,L2正则,lasso,岭回归

L0正则: 我们要讨论的第一个规范是L0规范。根据定义,x的L0范数是 严格来说,L0范数实际上不是一个范数。它是基数函数,其定义形式为L0-norm,尽管许多人称其为范数。使用它有点棘手,因为其中存在零次幂和零…

自学网络安全的三个必经阶段(含路线图)

一、为什么选择网络安全? 这几年随着我国《国家网络空间安全战略》《网络安全法》《网络安全等级保护2.0》等一系列政策/法规/标准的持续落地,网络安全行业地位、薪资随之水涨船高。 未来3-5年,是安全行业的黄金发展期,提前踏入…

网络安全学习指南:新手入门建议

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言网络安全基础知识学…

网络安全学习路线-超详细

零基础小白,到就业!入门到入土的网安学习路线! 在各大平台搜的网安学习路线都太粗略了。。。。看不下去了! 建议的学习顺序: 一、网络安全学习普法(心里有个数,要进去坐几年!&#…

如何学习网络安全?(网络安全学习笔记)

概括来说,网络安全课程的主要内容包括: 安全基本知识 应用加密学 协议层安全 Windows安全(攻击与防御) Unix/Linux安全(攻击与防御) 防火墙技术 入侵监测系统 审计和日志分析 下面分别对每部分知识介绍相应…

2023网络安全学习路线 非常详细 推荐学习

关键词:网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 分享2套零基础、进阶学习网络安全/渗透测试教程 第一套是Web安全学习笔记,共430页12个章节。 该笔记详细介绍了计算机网络协议、信息收集、常见漏洞、内网渗透、御用技术等等&…

网络安全-自学笔记

目录 相关网站推荐 WEB(应用)安全 学习路线 推荐 书籍 网站 在线靶场 基础 XSS攻击 CSRF漏洞 劫持攻击 点击劫持 SSRF漏洞 文件包含漏洞 文件上传漏洞 XXE漏洞 WebShell 解析安全 RCE漏洞 SQL注入漏洞 反序列化漏洞 条件竞争 通信…

Emmet插件用法指南

安装Emmet插件 Emmet只是文本编辑器一个插件,要想让他发挥应用的功能,就得将其安装到你喜欢的文本编辑器中。到目前为止,很多流行的文本编辑器都支持Emmet插件,也就是说很多流行的文本编辑器都可以安装这款插件。 点击下面的链接&…

HBuilder X的安装及配置Emmet插件和使用部分快捷方式

安装HBuilder X 软件安装1 配置Emmet插件 打开软件选择自己喜欢的主题然后进入主界面按下 Alt T或者点击工具 之后按下 p或者点击安装插件 选择第一个插件emmet 点击安装即可 注意: 按装完之后要重启HBuilder X ,要不然自己使用Emmet功能快捷键按下Tab无法触发 …

Emmet插件的使用教程

/**本文为转载 很多快捷键真的都很相似,这些语法都是很相似了,今天遇到一个比较不错的教程,收藏一下。 Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生。它使用仿CSS选择器的语…

Emmet插件详解

http://www.ithao123.cn/content-10512551.html (webstorm的css编写插件)Emmet:HTML/CSS代码快速编写神器 [摘要:Emmet的前身是默默无闻的Zen coding,若是您处置Web前端开辟的话,对该插件肯定没有会目生。它…

Sublime text3 emmet插件安装

Emmet插件作为Sublime text3 的热门插件,首先解决如何添加安装才是使用的基础 在添加Emmet插件的时候,我也遇到了若干问题,只能卸载Sublime text3再安装,终于安装成功,现分享下经验(2017/9/20) …

Emmet 插件使用教程

1)使用 Emmet 生成 HTML 的语法详解 生成 HTML 文档初始结构 HTML 文档的初始结构,就是包括 doctype、html、head、body 以及 meta 等内容。你只需要输入一个 “!” 就可以生成一个 HTML5 的标准文档初始结构,你没有看错,输入一个…

Emmet插件的常用语法

本人使用的代码编辑工具是SublimeText,Emmet是一个代码的缩写插件,使用代码缩写快速完成代码编写,前提条件需要安装emmet插件,如下图,打开SublimeText 使用快捷键 Ctrl Shift P,显示 Package Control功能…

Intellij中Emmet插件的使用技巧

Emmet简述 Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工具. 在前端开发的过程中,一大部分的工作是写 HTML、CSS 代码。特别是手动编写 HTML 代码的时候,效率会特别低下,因为需要敲打很多尖括号,而且很多标签…