L1、L2正则化总结

article/2025/9/21 6:28:48

为什么不用L0范数而用L1范数?

L0范数是向量中非0元素的个数,若使用L0范数来规则化一个参数矩阵,就是希望其稀疏,大部分元素都是0。但L0范数难以优化求解,L1范数是L0范数的最优凸近似,且比L0范数更易优化求解。

L1和L2为什么能防止过拟合,它们有什么区别?

通过添加正则项,可以使模型的部分参数值都较小甚至趋于0,对应的特征对模型的影响就比较小,相当于对无关特征做了一个惩罚,即使它们的值波动比较大,受限于参数值很小,也不会对模型的输出结果造成太大影响。简而言之,正则化是将模型参数加入到损失函数中,能避免权值过大,模型过于陡峭,从而降低过拟合。

L1正则在损失函数中加入权值向量的L1范数,即参数的绝对值之和,L1会趋向于产生少量的特征,而无关特征权重为0,使权重稀疏:

L2正则在损失函数中加入权值向量的L2范数,即参数的平方和,L2会选择更多的特征,无关特征权重接近于0,使权重平滑:

为什么希望模型参数具有稀疏性呢?

  1. 实现特征的自动选择:大部分特征可能与输出是没有关系的,在训练数据中考虑这些无关特征可能会获得较小的训练误差,但对未知样本做出预测时,这些学得的无关信息反而会造成干扰,而稀疏规则化算子的引入可以将无关特征的权重置为0
  2. 可解释性:特征筛选后,特征数目下降易于做出解释

为什么L1正则化可以得到稀疏解,L2正则化可以得到平滑解?从贝叶斯估计的角度看,它们先验分布是什么?

可以从解空间形状、函数叠加、贝叶斯先验这三个角度进行分析。

角度1:解空间形状
L1正则化相当于为参数定义了一个多边形的解空间,L2正则化相当于为参数定义了一个圆形的解空间。如果目标函数的最优解不是恰好落在解空间内,那么约束条件下的最优解一定是在解空间的边界上,多边形“棱角分明”的解空间更容易在尖角处与目标函数等高线碰撞出稀疏解。原因为:解空间的尖角处并不可微,任何规则化算子在参数wi=0的地方不可微且可以分解为一个“求和”的形式,那么这个规则化算子就可以实现稀疏。

在二维情况下,黄色部分是L1和L2正则项约束后的解空间,绿色等高线是凸优化问题中目标函数的等高线:

角度2:函数叠加
考虑一维的情况,多维情况类似,如图所示:

假设棕线是原始目标函数L(w)的曲线图,最小值点在蓝点处,且对应的w * 值非0。

加上L2正则化项,目标函数变成L(w)+Cw^{2} ,其函数曲线为黄色,最小值点在黄点处,对应的w* 的绝对值减小了,但仍然非0。

加上L1正则化项,目标函数变成L(w)+C|w|,其函数曲线为绿色,最小值点在红点处,对应的w是0,产生了稀疏性。

原因:对带L1正则项的目标函数求导,正则项部分产生的导数在原点左边部分是−C,在原点右边部分是C,因此,只要原目标函数的导数绝对值小于C,那么带正则项的目标函数在原点左边部分始终是递减的,在原点右边部分始终是递增的,最小值点自然在原点处。相反,L2正则项在原点处的导数是0,只要原目标函数在原点处的导数不为0,那么最小值点就不会在原点,所以L2只有减小w绝对值的作用,对解空间的稀疏性没有贡献。
在一些在线梯度下降算法中,往往会采用截断梯度法来产生稀疏性,这同L1正则项产生稀疏性的原理是类似的。

角度3:贝叶斯先验

L1正则化相当于对模型参数w引入了拉普拉斯先验,L2正则化相当于引入了高斯先验。拉普拉斯先验分布在极值点(0点)处是一个尖峰,参数w取值为0的可能性更高。高斯分布在极值点(0点)处是平滑的,参数w在极值点附近取不同值的可能性是接近的,这使得L2正则化只会让w更接近0点,但不会等于0。

为什么加入正则项就是定义了一个解空间约束?为什么L1和L2的解空间是不同的?

以L2正则化为例,通过KKT条件解释:“带正则项”和“带约束条件”是等价的,为了约束w的可能取值空间,为该最优化问题加上一个约束,即:w的L2范数的平方不能大于m:

为了求解带约束条件的凸优化问题,写出拉格朗日函数

若w*和λ*分别是原问题和对偶问题的最优解,则根据KKT条件,它们应满足

第一个式子就是w*为带L2正则项的优化问题的最优解的条件,而λ*就是L2正则项前面的正则参数。

正则化补充:

弹性网(Elastic Net):

使用正则化的顺序:L2 -> 弹性网 -> L1。特征不是特别多时,L2计算更精准,但计算量较大;特征较多时使用弹性网,同时结合了L1和L2的优势,可以进行特征选择;L1虽然可以进行特征选择,但会损失一些信息,可能会增大模型的偏差。

参数共享:在卷积神经网络中,卷积操作通过参数共享,减少模型参数、降低模型复杂度,从而减少模型过拟合风险

稀疏表征:与L1正则化可以使模型参数稀疏化相似,稀疏表征通过某种惩罚措施来抑制神经网络隐藏层中部分神经元,使其输出为零或接近零,当信息输入神经网络时,只有关键部分神经元处于激活状态。(dropout、LReLU)

从数学角度解释L2为什么能提升模型的泛化能力

https://www.zhihu.com/question/35508851
https://blog.csdn.net/zouxy09/article/details/24971995

https://davidrosenberg.github.io/ml2015/docs/2b.L1L2-regularization.pdf


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

相关文章

L1正则化 L2正则化的Python 实现

上一篇文档 https://blog.csdn.net/xingzhe2001/article/details/86316712 介绍了L1 L2正则化 本文介绍L1, L2 正则化的实现 L1正则化 代码 def L1Norm(l, theta):return np.dot(np.abs(theta), np.ones(theta.size)) * ldef L1NormPartial(l, theta):return np.sign(theta…

一文了解L1正则化与L2正则化

正则化的目的? 欠拟合从字面意思来看就是欠缺拟合程度,这一般在复杂度很低的模型中出现。从数学上来看,一元一次函数为一条直线、一元二次函数为一个曲线,以此类推。那么参数越多,其越能拟合更复杂的特征,…

【学习笔记】深刻理解L1和L2正则化

深刻理解L1和L2正则化 学习视频:BV1Z44y147xA、BV1gf4y1c7Gg、BV1fR4y177jP up主:王木头学科学 L1、L2正则化即使用L1、L2范数来规范模型参数。 凡是减少泛化误差,而不是减少训练误差的方法,都可以称为正则化方法。 通俗来说&am…

L1正则化和L2正则化(从解空间角度)

文章目录 一、什么是过拟合?二、为什么模型会过拟合?三、如何防止模型过拟合?四、L1正则和L2正则4.1 L1、L2的区别4.2 为什么正则化能够防止过拟合?4.3 为什么L1正则具有稀疏性或者说L1正则能够进行特征选择? 最后&…

机器学习之L1正则化和L2正则化(附源码解析)

前言 今天还是机器学习的基础知识内容,也是最基础的哈。首先说一下什么是正则化,其实它就是一个减少方差的策略。那么什么是方差呢?在这里也引入一个和方差相辅相成的概念--偏差。 偏差度量了学习算法的期望预测与真实结果的偏离程度&#…

L2正则化(Regularization)

正则化(Regularization) 深度学习可能存在过拟合问题——高方差,有两个解决方法,一个是正则化,另一个是准备更多的数据,这是非常可靠的方法,但你可能无法时时刻刻准备足够多的训练数据或者获取…

pytorch实现L2和L1正则化regularization的方法

pytorch实现L2和L1正则化的方法 目录 目录 pytorch实现L2和L1正则化的方法 1.torch.optim优化器实现L2正则化 2. 如何判断正则化作用了模型? 2.1 未加入正则化loss和Accuracy 2.1 加入正则化loss和Accuracy 2.3 正则化说明 3.自定义正则化的方法 3.1 自定…

L1正则化与L2正则化的区别

摘要 正则化的本质是在Cost Function中添加的p-范数。本文从正则化的本质p-范数入手,解释了L1正则化和L2正则化的区别。 正则化 在Cost Function上添加了正则化项,就能降低模型的过拟合程度,这就是正则化的作用。 关于正则化更细节的讲述&…

正则化的作用以及L1和L2正则化的区别

0 正则化的作用 正则化的主要作用是防止过拟合,对模型添加正则化项可以限制模型的复杂度,使得模型在复杂度和性能达到平衡。 常用的正则化方法有L1正则化和L2正则化。L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些…

详解L1和L2正则化

大纲: L1和L2的区别以及范数相关知识对参数进行L1和L2正则化的作用与区别pytorch实现L1与L2正则化对特征进行L2正则化的作用 L1和L2的区别以及范数 使用机器学习方法解决实际问题时,我们通常要用L1或L2范数做正则化(regularization&#xf…

L1正则化和L2正则化的详细直观解释

正则化(Regularization) 转自:此处 机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1-norm和ℓ2ℓ2-norm,中文称作L1正则化和L2正则化,或者…

L1正则化和L2正则化讲解

L1正则化和L2正则化讲解 在机器学习实践过程中,训练模型的时候往往会出现过拟合现象,为了减小或者避免在训练中出现过拟合现象,通常在原始的损失函数之后附加上正则项,通常使用的正则项有两种:L1正则化和L2正则化。 L1…

L1正则化和L2正则化的区别

文章目录 前言一、L1和L2正则化是什么?二、区别三、其他问题 前言 在防止过拟合的方法中有L1正则化和L2正则化,那么这两者有什么区别呢? 一、L1和L2正则化是什么? L1和L2是正则化项,又叫做惩罚项,是为了限…

数据预处理之L1,L2正则化

一、L1、L2正则化概述 1. L1和L2的定义 L1正则化,又叫Lasso Regression 如下图所示,L1是向量各元素的绝对值之和 L2正则化,又叫Ridge Regression 如下图所示,L2是向量各元素的平方和,然后再求平方根 2.L1和L2的异同点 …

L1正则化和L2正则化

在机器学习以及深度学习中我们经常会看到正则化这一名词,下面就浅谈一下什么是正则化?以及正则化的意义所在? 一、什么是正则化? 正则化项 (又称惩罚项),惩罚的是模型的参数,其值恒为非负 λ是正则化系数&…

【应用】【正则化】L1、L2正则化

L1正则化的作用:特征选择从可用的特征子集中选择有意义的特征,化简机器学习问题。著名的LASSO(Least Absolute Shrinkage and Selection Operator)模型将L1惩罚项和线性模型结合,使用最小二乘代价函数。L1正则化导致模…

机器学习中正则化项L1和L2的直观理解

文章目录 正则化(Regularization)稀疏模型与特征选择的关系 L1和L2正则化的直观理解正则化和特征选择的关系为什么梯度下降的等值线与正则化函数第一次交点是最优解? L2正则化和过拟合的关系 正则化参数的选择L1正则化参数L2正则化参数 Refer…

微信小程序自定义授权弹框

前言 最近微信获取用户信息的接口有调整&#xff0c;就是这货&#xff1a;wx.getUserInfo(OBJECT)&#xff0c;文档描述如下&#xff1a; 此接口有调整&#xff0c;使用该接口将不再出现授权弹窗&#xff0c;请使用 <button open-type"getUserInfo"></but…

微信小程序组件 - 中间底部弹出输入弹框

GitHub Demo 地址: jh-weapp-demo 实现一些常用效果、封装通用组件和工具类 小程序码 一、 jh-input-alert 中间输入弹框&#xff0c;可设置最大输入长度&#xff0c;单行多行显示 单行 <jh-input-alert title输入框标题 placeholder请输入 maxlength10 bind:cancelcancel …

微信小程序展示弹窗的几种方式

小程序中展示弹窗有四种方式&#xff1a;showToast、showModal、showLoading、showActionSheet 官方文档链接 效果图 wxml <!-- 1.消息提示框 --> <button size"mini" bindtap"handleShowToast">ShowToast</button><!-- 2.模态对话…