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

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

正则化的目的?

欠拟合从字面意思来看就是欠缺拟合程度,这一般在复杂度很低的模型中出现。从数学上来看,一元一次函数为一条直线、一元二次函数为一个曲线,以此类推。那么参数越多,其越能拟合更复杂的特征,但是一味的增加模型的复杂度就会造成过拟合现象。一旦过拟合,模型的泛化能力以及鲁棒性将特别差。那么怎么解决过拟合现象呢?
在从数学方面分析来看,为了减小过拟合,要将一部分参数置为0,最直观的方法就是限制参数的个数,因此可以通过正则化来解决,即减小模型参数大小或参数数量,缓解过拟合。

L1和L2正则化

(一)L1正则化

L1正则化,又称Lasso Regression,是指权值向量w中各个元素的绝对值之和,是一种常用的正则化技术,用于控制模型的复杂度、特征选择和降低过拟合的风险。与L2正则化不同,L1正则化通过添加权重向量的L1范数作为正则化项来实现。 比如 向量A=[1,-1,3], 那么A的L1范数为 |1|+|-1|+|3|。
L1正则化可以让一部分特征的系数缩小到0,所以L1适用于特征之间有关联的情况可以产生稀疏权值矩阵(很多权重为0,则一些特征被过滤掉),即产生一个稀疏模型,可以用于特征选择。因此,L1正则化可以用于优化模型,使得仅有对预测目标有重要影响的特征保留下来,而对次要特征的权重趋近于0,从而降低模型的复杂度并提高泛化能力。L1也可以防止过拟合。
那么L1为什么会产生一个稀疏权值矩阵呢?
L1范数是指权重向量中各个元素的绝对值之和,所以L1是带有绝对值符号的函数,因此是不完全可微的。机器学习的任务就是要通过一些方法(比如梯度下降)求出损失函数的最小值。当我们在原始损失函数后添加L1正则化项时,相当于对损失函数做了一个约束。
在这里插入图片描述
或者是:L(w) = Loss(y, y_pred) + λ * |w|

其中,L(w)是加了L1正则化的损失函数,Loss(y, y_pred)是模型的原始损失函数(例如,均方误差或交叉熵),w是模型的权重向量,||w||1是权重向量的L1范数,λ是正则化参数,用于控制正则化的强度。

此时我们的任务变成在约束下求出取最小值的解。考虑二维的情况,即只有两个权值和 ,此时对于梯度下降法,求解函数的过程可以画出等值线,同时L1正则化的函数也可以在二维平面上画出来。如下图:
在这里插入图片描述
图中蓝色圆圈线是Loss中前半部分待优化项的等高线,就是说在同一条线上其取值相同,且越靠近中心其值越小。
黄色菱形区域是L1正则项限制。带有正则化的loss函数的最优解要在黄色菱形区域和蓝色圆圈线之间折中,也就是说最优解出现在图中优化项等高线与正则化区域相交处。从图中可以看出,当待优化项的等高线逐渐向正则项限制区域扩散时,L1正则化的交点大多在坐标轴上,则很多特征维度上其参数w为0,因此会产生稀疏解;而正则化前面的系数,可以控制图形的大小。越小,约束项的图形越大(上图中的黄色方框);越大,约束项的图形就越小,可以小到黑色方框只超出原点范围一点点,这是最优点的值中的可以取到很小的值。

L1正则化的一些关键特点和优点包括:
特征选择:L1正则化有助于选择对预测目标具有重要影响的特征,使得模型更具解释性和可解释性。通过将权重置为0,L1正则化可以自动执行特征选择。
稀疏性:L1正则化倾向于生成稀疏权重向量,即将某些特征的权重归零。这有助于减少特征维度,提高模型的可解释性和计算效率。
鲁棒性:L1正则化对于异常值和噪声具有一定的鲁棒性,可以减少其对模型的影响。
系数简化:L1正则化可以导致模型的系数变得更加简单,易于解释和理解。
需要注意的是,L1正则化与L2正则化在惩罚权重的方式和效果上有所不同。L1正则化倾向于生成稀疏解,而L2正则化则倾向于将权重值平均分散在各个特征上。

(二)、L2正则化

L2正则化是指权值向量中各个元素的平方和然后再求平方根,对参数进行二次约束,参数w变小,但不为零,不会形成稀疏解 。它会使优化求解稳定快速,使权重平滑。所以L2适用于特征之间没有关联的情况。
在这里插入图片描述

或者是:L(w) = Loss(y, y_pred) + λ * ||w||^2

其中,L(w)是加了L2正则化的损失函数,Loss(y, y_pred)是模型的原始损失函数(例如,均方误差或交叉熵),w是模型的权重向量,||w||^2是权重向量的L2范数的平方,λ是正则化参数,用于控制正则化的强度。

正则化参数λ越大,正则化项在损失函数中的比重就越大,对权重的惩罚也就越大。这有助于降低模型对训练数据的过拟合程度,并使模型倾向于选择较小的权重值,从而提高模型的泛化能力。

考虑二维的情况,即只有两个权值和 ,此时对于梯度下降法,求解函数的过程可以画出等值线,同时L2正则化的函数也可以在二维平面上画出来。如下图:
在这里插入图片描述

图中蓝色一圈一圈的线是Loss中前半部分待优化项的等高线,就是说在同一条线上其取值相同,且越靠近中心其值越小。图中黄色圆形区域是L2正则项限制。带有正则化的loss函数的最优解要在loss函数和正则项之间折中,也就是说最优解出现在图中优化项等高线与正则化区域相交处。从图中可以看出,当待优化项的等高线逐渐向正则项限制区域扩散时L2正则化的交点大多在非坐标轴上,二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此与相交时使得或等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因。

L2正则化的优点包括:
可以有效地减少过拟合现象,提高模型的泛化能力。
通过控制权重的大小,可以防止模型过度依赖某些特征。
L2正则化对权重的惩罚是连续可微的,有助于使用梯度下降等优化算法进行模型训练。
需要注意的是,L2正则化只对权重进行惩罚,对于偏置(bias)项通常不应用正则化。另外,正则化参数λ的选择通常需要通过交叉验证等方法进行调优,以获得最佳的模型性能。


http://chatgpt.dhexx.cn/article/3QY76EB6.shtml

相关文章

【学习笔记】深刻理解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.模态对话…

微信小程序——小程序自己的页面弹框

微信小程序——小程序自己的页面弹框 1. 页面样式: 2.代码块 在这里插入代码片 &#xff08;一&#xff09;.wxml文件中给一个触发事件 <image src"../../img/icon-delete.png" bindtapdeleteCar data-id{{car.platecard}} class"icon"></imag…

微信小程序底部弹出框

微信小程序的底部弹出框 wxml <!-- 弹出框 start --> <view class"dialog_screen" bindtap"hideModal" wx:if"{{showModalStatus}}"></view> <view animation"{{animationData}}" class"dialog_attr_bo…