彻底搞懂机器学习中的正则化

特征工程之特征缩放:行归一化(范数化,Normalizer)python 特征缩放是特征工程中最重要的步骤之一,因为不同的特征通常具有不同的尺度和分布,而特征缩放可以帮助我们将数据调整为一个更统一的尺度和范围,从而更好地适应模型。行归一化,也叫做范数化,是一种将每个样本的特征向量缩放到单位范数的方法,即调整每个样本的特征向量使得它们的欧几里得距离都为1,这样可以保证样本在各个特征方向上的比重是相同的。下面的示例代码演示了如何使用Normalizer类进行行归一化,其中使用的数据是sklearn.datasets库中的digits数据集。 阅读详情

作者:Poll的笔记 

 链接:http://www.cnblogs.com/maybe2030/

阅读目录

  • LP范数

  • L1范数

  • L2范数

  • L1范数和L2范数的区别

  • Dropout

  • Batch Normalization

  • 归一化、标准化 & 正则化

  • Reference

在总结正则化(Regularization)之前,我们先谈一谈正则化是什么,为什么要正则化。

个人认为正则化这个字眼有点太过抽象和宽泛,其实正则化的本质很简单,就是对某一问题加以先验的限制或约束以达到某种特定目的的一种手段或操作。在算法中使用正则化的目的是防止模型出现过拟合。一提到正则化,很多同学可能马上会想到常用的L1范数和L2范数,在汇总之前,我们先看下LP范数是什么鬼。

LP范数

范数简单可以理解为用来表征向量空间中的距离,而距离的定义很抽象,只要满足非负、自反、三角不等式就可以称之为距离。

LP范数不是一个范数,而是一组范数,其定义如下:

pp的范围是[1,∞)[1,∞)。pp在(0,1)(0,1)范围内定义的并不是范数,因为违反了三角不等式。

根据pp的变化,范数也有着不同的变化,借用一个经典的有关P范数的变化图如下: 


上图表示了pp从0到正无穷变化时,单位球(unit ball)的变化情况。在P范数下定义的单位球都是凸集,但是当0<p<10<p<1时,在该定义下的unit ball并不是凸集(这个我们之前提到,当0<p<10<p<1时并不是范数)。

那问题来了,L0范数是啥玩意?

L0范数表示向量中非零元素的个数,用公式表示如下:

我们可以通过最小化L0范数,来寻找最少最优的稀疏特征项。但不幸的是,L0范数的最优化问题是一个NP hard问题(L0范数同样是非凸的)。因此,在实际应用中我们经常对L0进行凸松弛,理论上有证明,L1范数是L0范数的最优凸近似,因此通常使用L1范数来代替直接优化L0范数。

L1范数

根据LP范数的定义我们可以很轻松的得到L1范数的数学形式:

通过上式可以看到,L1范数就是向量各元素的绝对值之和,也被称为是"稀疏规则算子"(Lasso regularization)。那么问题来了,为什么我们希望稀疏化?稀疏化有很多好处,最直接的两个:

  • 特征选择

  • 可解释性

L2范数

L2范数是最熟悉的,它就是欧几里得距离,公式如下:

L2范数有很多名称,有人把它的回归叫“岭回归”(Ridge Regression),也有人叫它“权值衰减”(Weight Decay)。以L2范数作为正则项可以得到稠密解,即每个特征对应的参数ww都很小,接近于0但是不为0;此外,L2范数作为正则化项,可以防止模型为了迎合训练集而过于复杂造成过拟合的情况,从而提高模型的泛化能力。

L1范数和L2范数的区别

引入PRML一个经典的图来说明下L1和L2范数的区别,如下图所示:

 

如上图所示,蓝色的圆圈表示问题可能的解范围,橘色的表示正则项可能的解范围。而整个目标函数(原问题+正则项)有解当且仅当两个解范围相切。从上图可以很容易地看出,由于L2范数解范围是圆,所以相切的点有很大可能不在坐标轴上,而由于L1范数是菱形(顶点是凸出来的),其相切的点更可能在坐标轴上,而坐标轴上的点有一个特点,其只有一个坐标分量不为零,其他坐标分量为零,即是稀疏的。所以有如下结论,L1范数可以导致稀疏解,L2范数导致稠密解。

从贝叶斯先验的角度看,当训练一个模型时,仅依靠当前的训练数据集是不够的,为了实现更好的泛化能力,往往需要加入先验项,而加入正则项相当于加入了一种先验。

  • L1范数相当于加入了一个Laplacean先验;

  • L2范数相当于加入了一个Gaussian先验。

如下图所示:

 

Dropout

Dropout是深度学习中经常采用的一种正则化方法。它的做法可以简单的理解为在DNNs训练的过程中以概率pp丢弃部分神经元,即使得被丢弃的神经元输出为0。Dropout可以实例化的表示为下图:

我们可以从两个方面去直观地理解Dropout的正则化效果:

  • 在Dropout每一轮训练过程中随机丢失神经元的操作相当于多个DNNs进行取平均,因此用于预测时具有vote的效果。

  • 减少神经元之间复杂的共适应性。当隐藏层神经元被随机删除之后,使得全连接网络具有了一定的稀疏化,从而有效地减轻了不同特征的协同效应。也就是说,有些特征可能会依赖于固定关系的隐含节点的共同作用,而通过Dropout的话,就有效地组织了某些特征在其他特征存在下才有效果的情况,增加了神经网络的鲁棒性。

Batch Normalization

批规范化(Batch Normalization)严格意义上讲属于归一化手段,主要用于加速网络的收敛,但也具有一定程度的正则化效果。

这里借鉴下魏秀参博士的知乎回答中对covariate shift的解释(https://www.zhihu.com/question/38102762)。

注以下内容引自魏秀参博士的知乎回答:

大家都知道在统计机器学习中的一个经典假设是“源空间(source domain)和目标空间(target domain)的数据分布(distribution)是一致的”。如果不一致,那么就出现了新的机器学习问题,如transfer learning/domain adaptation等。而covariate shift就是分布不一致假设之下的一个分支问题,它是指源空间和目标空间的条件概率是一致的,但是其边缘概率不同。大家细想便会发现,的确,对于神经网络的各层输出,由于它们经过了层内操作作用,其分布显然与各层对应的输入信号分布不同,而且差异会随着网络深度增大而增大,可是它们所能“指示”的样本标记(label)仍然是不变的,这便符合了covariate shift的定义。

BN的基本思想其实相当直观,因为神经网络在做非线性变换前的激活输入值(X=WU+BX=WU+B,UU是输入)随着网络深度加深,其分布逐渐发生偏移或者变动(即上述的covariate shift)。之所以训练收敛慢,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近(对于Sigmoid函数来说,意味着激活输入值X=WU+BX=WU+B是大的负值或正值),所以这导致后向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因。而BN就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,避免因为激活函数导致的梯度弥散问题。所以与其说BN的作用是缓解covariate shift,倒不如说BN可缓解梯度弥散问题。

归一化、标准化 & 正则化

正则化我们以及提到过了,这里简单提一下归一化和标准化。

归一化(Normalization):归一化的目标是找到某种映射关系,将原数据映射到[a,b][a,b]区间上。一般a,ba,b会取[−1,1],[0,1][−1,1],[0,1]这些组合。

一般有两种应用场景:

  • 把数变为(0, 1)之间的小数

  • 把有量纲的数转化为无量纲的数

常用min-max normalization:

标准化(Standardization):用大数定理将数据转化为一个标准正态分布,标准化公式为:

归一化和标准化的区别:

我们可以这样简单地解释:

归一化的缩放是“拍扁”统一到区间(仅由极值决定),而标准化的缩放是更加“弹性”和“动态”的,和整体样本的分布有很大的关系。

值得注意:

归一化:缩放仅仅跟最大、最小值的差别有关。

标准化:缩放和每个点都有关系,通过方差(variance)体现出来。与归一化对比,标准化中所有数据点都有贡献(通过均值和标准差造成影响)。

为什么要标准化和归一化?

  • 提升模型精度:归一化后,不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。

  • 加速模型收敛:标准化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。如下图所示:

欢迎扫码关注:

达妙电机MIT模式调参实战:如何从‘曲线偏离’到‘完美追踪’正弦波? 本文详细解析了达妙电机MIT模式调参实战,从曲线偏离到完美追踪正弦波的方法论。通过MATLAB实时曲线分析,深入探讨位置环(kp)和速度环(kd)的双重调节技巧,帮助工程师优化参数组合,提升电机控制精度和稳定性。 阅读详情

相关推荐

十二、基于FPGA实现slave SelectMAP配置逻辑

slave SelectMAP配置

weixin_41838250的博客 8755

[Deep Learning] 正则化

在总结正则化(Regularization)之前,我们先谈一谈正则化是什么,为什么要正则化。 个人认为正则化这个字眼有点太过抽象和宽泛,其实正则化的本质很简单,就是对某一问题加以先验的限制或约束以达到某种特定目的的一种手段或操作。在算法中使用正则化的目的是防止模型出现过拟合。一提到正则化,很多同学可能马上会想到常用的L1范数和L2范数,在汇总之前,我们先看下LP范数是什么鬼。 LP范数 范数...

weixin_34355559的博客 374

手把手教你用U盘给海信IP501H刷机:GK6323V100C芯片的4.4.2和9.0固件实战

本文详细介绍了海信IP501H电视盒子基于GK6323V100C芯片的刷机实战指南,涵盖Android 4.4.2强刷和Android 9.0免拆刷机两种方案。从工具准备、短接操作到ADB调试,提供全流程解析和常见问题解决方案,帮助用户安全高效地完成刷机操作。

lemon的博客 1458

Normalization(标准化)的原理和实现详解

Normalization这个名词在很多地方都会出现,但是对于数据却有两种截然不同且容易混淆的处理过程。对于某个多特征的机器学习数据集来说,第一种Normalization是对于将数据进行预处理时进行的操作,是对于数据集的各个特征分别进行处理,主要包括min-max normalization、Z-score normalization、 log函数转换和atan函数转换等。第二种Normaliza

Dongdong Bai's Blogs 4万+

瑞芯微RK3588与FPGA的PCIe DMA通信性能优化实战

本文深入探讨了瑞芯微RK3588与FPGA之间PCIe DMA通信的性能优化实战。针对高速数据采集、AI推理等场景下的带宽瓶颈,文章从驱动配置、DMA描述符、中断处理、零拷贝技术及系统级调优等多个层面,提供了详细的优化策略与代码示例,旨在充分释放PCIe 3.0的理论带宽潜力,提升数据传输效率与稳定性。

sand8的博客 419

内核工作FAST‘25 Artifact Evaluation流程记录

在我们的paper中,复现需要用到傲腾持久化内存,因此,需要AE Reviewer访问到内网服务器中。我们的思路是购买云服务器,将其作为跳板机,内网服务器通过SSH反向代理与公网服务器建立隧道,AE Reviewer通过隧道访问内网服务器。我们在AE过程中使用。然后,把一切复现需要的代码环境,在chroot里面配置完成。

不定期更新系统使用、编程小技巧,哔哩哔哩账号:https://space.bilibili.com/399455629,欢迎关注 1215

神经网络学习小记录31——l1、l2标准化及其python代码实现

神经网络学习小记录31——l1、l2标准化及其python代码实现学习前言什么是l1、l2标准化1、范数2、l1标准化和l2标准化python代码实现 学习前言 最近看了一下facenet,发现自己居然连l2标准化都不知道,写篇文章水一下。 什么是l1、l2标准化 1、范数 我们需要知道的范数主要是两种: 1-范数: ∣∣x∣∣1=∑i=1N∣xi∣||x||_1 = \sum_{i=1}^N|...

Bubbliiiing的学习小课堂 6154

基于Ollama本地大模型的Python自动化翻译工具开发实践

本文详细介绍了如何利用Ollama本地大模型和Python开发自动化批量翻译工具。通过部署本地开源模型、设计精准提示词、处理长文本分割及多种文档格式,构建了一个兼顾隐私安全、可控性与成本效益的翻译流水线,有效解决了文档批量翻译的痛点。

yhn45678901的博客 560

4.3 数据规范化

例如,在学习算法的目标函数中使用许多元素(如支持向量积的RBF核或者线性模型的L1和L2调整器)都假定所有特征中心在0附近,且方差相同,如果一个特征的方差比其他特征大一个数量级,他可能支持目标函数,使估计器无法像预期的那样正确地学习其他特征;范数----L1:其来源是曼哈顿的出租车斯基在曼哈顿街道中由一点到另一点需要走过的距离,用于表示向量中元素的绝对值之和,可以度量两个向量间的差异,如绝对误差和(Sum of Absolute Difference, SAD)矩阵的范数,就是表达这个变化过程的一个度量。

m0_61031601的博客 372

打开电脑自动弹窗问题:无法为文件‘D:\Config.Msi\*.rbf‘设置文件安全。错误:5。请确认...如何解决?| 提供多种解决方案,亲测有效!

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 2920

YOLOv8剪枝 稀疏训练+slim剪枝测试精度仅掉1.6个点,速度提高10.3fps!

摘要 本文介绍了YOLOv8剪枝方法Slim(Network Slimming),通过L1正则化作用于BN层的缩放因子(γ),自动识别并剪除冗余通道,实现模型轻量化。核心步骤包括:稀疏训练(引入L1正则化)、通道剪枝(按γ阈值裁剪)、微调恢复精度。实验表明,该方法能有效压缩模型大小、减少计算量,且支持通过调整speed_up等超参数控制剪枝强度。移植代码需修改C2F模块以适配剪枝,并配置稀疏训练参数(如reg、sl_epochs)。最终剪枝模型需移除优化器以减小体积,但不支持多卡训练。

FJN110的博客 862

【机器学习】一文彻底搞懂正则化(Regularization)

正则化:机器学习中的抗过拟合利器 正则化是机器学习中防止模型过拟合的核心技术。本文从过拟合问题切入,深入解析L1和L2两种正则化方法。L2正则化(Ridge)通过权重平方和惩罚项使参数趋近于零但不为零,适用于一般防过拟合场景;L1正则化(Lasso)采用绝对值惩罚项,能将不重要特征权重压缩至零,实现自动特征选择。二者关键区别在于:L1产生稀疏模型,适合特征选择;L2保持所有特征但缩小权重,更适合常规应用。正则化通过在损失函数中加入惩罚项,平衡模型拟合度与复杂度,显著提升模型泛化能力。

欢迎来到我的优快云个人博客主页! 1万+

YOLO26改进策略【YOLO和Mamba】| 替换骨干 Mamba-YOLO26-L !!! 最新的发文热点

Vision Clue Merge模块在Mamba - YOLO模型中同样重要,主要负责在模型的下采样过程中处理特征图,为后续的特征融合和目标检测任务提供更有效的信息。

Limiiiing的博客 473

一文搞懂机器学习中的正则化!

机器学习中的正则化是一种通过引入额外约束或惩罚项来防止模型过拟合、提升泛化能力的技术。其核心思想是在模型训练目标中加入与模型复杂度相关的正则化项,迫使模型参数趋近于零或降低参数间的相关性,从而避免模型对训练数据的噪声和细节过度拟合。常见的正则化方法包括L1正则化(通过L1范数惩罚参数绝对值之和,导致参数稀疏化)、L2正则化(通过L2范数惩罚参数平方和,使参数值整体减小)、弹性网络(结合L1和L2的优点)、Dropout(随机忽略部分神经元以模拟集成学习效果)、数据增强(扩展训练数据多样性)、早停(提前终止训

极客BIM工作室 3661

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

一篇文章完全搞懂正则化(Regularization)

个人的原创笔记,欢迎dalao们指正错误! 什么是正则化? Regularization,中文翻译过来可以称为正则化,或者是规范化。什么是规则?闭卷考试中不能查书,这就是规则,一个限制。同理,在这里,规则化就是说给损失函数加上一些限制,通过这种规则去规范他们再接下来的循环迭代中,不要自我膨胀。 为什么需要正则化? 我们首先回顾一下模型训练的过程,模型参数的训练实际上就是一个不断迭代,寻找到...

见见大魔王 21万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【机器学习】一文搞懂标准化,归一化,正则化

归一化(Normalization): 将一列数据变化到某个固定区间(范围)中, 通常, 这个区间是[0,1],广义的讲, 可以是各种区间, 比如映射到[0,1] 也可以映射到其他范围,在图像中可能会映射到[0, 255], 其他情况也有可能映射到[-1,1];最大值最小值的归一化,范围[0,1]均值归一化(Mean normalization), 范围[-1,1]标准化(Standardization): 将数据变换为均值为0,标准差为1的分布。标准化=Xi−μσ。

一个程序员 9723

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

一文彻底搞懂机器学习 - 回归(Regression)

***matplotlib高次项(如平方项、立方项等)非线性关系****。**********如何实现多项式numpymatplotlib**三、******正则化线性回归()************正则化线性回归类型****有哪些?************如何实现****并进行可视化?matplotlib。

Everly_的博客 1万+

彻底搞懂深度学习-正则化和归一化

|架构师带你玩转AI在深度学习模型训练中,你是否也遇到过这样的困扰:“为什么我的模型在训练集上表现完美,但在测试集上却一塌糊涂?”又或者"为什么我的神经网络训练了几百个epoch还是不收敛?" 这背后的原因在于,模型的成功不仅取决于网络架构的设计,更在于训练过程的精细调控。在这个调控过程中,有两个技术占据着举足轻重的地位:正则化与归一化。前者如同智慧的导师,防止模型过度拟合训练数据;后者如同稳定的基石,确保训练过程平稳高效。正则化(Regularization)是什么?正则化是一种减少模型过拟合风险的技术。

Java_rich的博客 1034

【机器学习】正则化

彻底搞懂机器学习中的正则化 源自:http://www.cnblogs.com/maybe2030/ outlier 文章目录彻底搞懂机器学习中的正则化LP范数L1范数L2范数L1范数和L2范数的区别DropoutBatch Normalization归一化、标准化&正则化 在总结正则化(Regularization)之前,我们先谈谈正则化是什么,为什么要正则化。 个人认为正则化这个字眼有点太过抽象和宽泛,其实正则化的本质很简单,就是对某一问题加以先验的限制或约束以达到某种特定目的的一种手段或操

如是我闻__一时__的博客 562

正则化又是什么东西?一文搞懂机器学习中的正则化

为了防止过拟合我们需要加入正则化L1正则化L2正则化RidgeLassoElasticNet各种专业术语扑面而来。正则化到底是什么?为什么它能防止过拟合?实际上:正则化的本质,就是给模型增加约束,让模型不要学得太“贪心”。理解了这句话,你就理解了正则化的核心思想。给模型增加限制例如:误差最小误差最小模型尽量简单模型不会疯狂拟合训练数据从而提升泛化能力。正则化是机器学习中防止过拟合的重要技术。模型不仅要拟合数据还要保持简单L1正则化L2正则化ElasticNetL1特征选择。

qq_38196449的博客 6921

彻底搞懂正则化:从核心定义到模型训练中的约束作用(附实战代码)

正则化,本质就是给模型 “立规矩”。我们可以把模型比作备考的学生,训练集是日常练习题,测试集是最终的考试。过拟合就是学生死记硬背了所有练习题的答案和题干细节,换个新题型、换个数字就完全不会;而正则化就是老师给学生的约束:不许死记硬背,必须理解解题的通用逻辑和底层原理,最终让学生在陌生的考题中也能拿到高分。在机器学习与深度学习领域,正则化(Regularization)是一类技术的统称:它通过向模型的损失函数、网络结构、训练过程中引入额外的约束项、先验信息或随机扰动。

jiaxintang114514的博客 829

从零开始快速搞懂:机器学习中特征缩放与模型正则化

方法作用对象目标典型场景标准化数据均值为0,标准差为1规范化(Min-Max)数据缩放到 [0, 1]图像处理归一化(L2)数据矢量单位化文本TF-IDFL1正则化模型权重产生稀疏权重特征选择(如金融风控)L2正则化模型权重抑制大权重值通用场景(默认选择)关键区别:数据调整关注输入特征,而正则化约束模型内部参数。实践中,二者常结合使用(如标准化+L2正则化)。通过理解这些概念,你可以在不同场景下更灵活地优化模型!🚀。

neweastsun的专栏 859

一文搞懂正则化(PyTorch)

正则化通过约束模型的复杂度来防止过拟合,提高模型的泛化能力,可以根据具体问题和数据集的特点选择合适的正则化技术和参数设置。常用的正则化方法,包括L1正则化(Lasso Regularization)、L2正则化(Ridge Regularization)和Dropout等。其中,L1正则化实现特征选择和模型稀疏化,L2正则化使权重值尽可能小,而Dropout则通过随机丢弃神经元来减少神经元之间的共适应性。

2503_90237586的博客 1600
上一篇: 5个常用的大数据可视化分析工具
下一篇: 《可解释机器学习》中文版重磅开源!这位复旦小哥太给力了
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值