【机器学习300问】18、正则化是如何解决过拟合问题的?

        当我初次看见“正则化”三个字的时候,我简直头疼。在我的理解里“正则”还是Python中用在字符串处理的re正则库呢!怎么加一个“化”字就看不懂了!听我给你慢慢道来。

一、正则化中的“正则”是个啥玩意儿?

        正则化(Regularization)中的“正则”这个词来源于英文术语“regularization”,直译成中文即“规范化”或“正规化”。这里的“正则”并不是指严格意义上的“规则”或“规律”,而是指通过一定的数学手段规范或约束模型的学习过程,使其更加稳健、简洁并且避免过拟合。

        所以正则化就是规范和约束模型参数的意思。

二、怎么去理解正则化能够解决过拟合(感性上)?

        还是用我一贯的做法,先看看例子和图片从直觉上感受一下正则化解决过拟合的直观体验。接下来文章中以房价预测任务+线性回归模型+均方误差损失函数+L2正则化(又叫权值缩减)为例。

(1)未使用正则化手段出现过拟合时

        可以从图中明显的看到出现了过拟合现象,虽然模型(也就这条线)很好的穿过了所有点(也就是模型在训练集上表现很好)但显然如果用一个没见过的数据来进行预测的话结果会很差(也就是模型在测试集上表现很差),因为房价随着房子面积肯定是增长的而图中模型最后都下降了。

(2)使用了“轻微的”正则化后

        使用正则化后可以发现这条线明显比之前要平滑,没有那么的抖动了

(3)使用了“合适的”正则化后

 

        假设正确的拟合模型是对数函数曲线,但上图这个模型曲线虽然还有些扭曲但比一开始已经平滑很多了。

三、怎么去理解正则化能够解决过拟合(理性上)?

        在L2正则化中,模型的目标函数被修改为原始损失函数与模型参数的L2范数(即参数平方和)的和,加上一个正则化系数λ的权重。目标函数可以表示为:

J(\theta )=L(\theta )+\lambda \sum_{j}^{n}\theta_{j}^{2}

        其中,L(θ) 是原来的损失函数,如均方误差,θ 是模型的参数向量(之前我都是写的w和b这里用θ统称他们),λ 是正则化强度(正则化系数),它控制着正则化项的影响力。        

        在梯度下降的过程中,模型参数θ的更新规则会受到正则化项的影响。当计算损失函数关于参数θ的梯度时,正则化项会产生额外的梯度贡献,这部分梯度指向使参数θ减小的方向。对于每一个参数\theta_{j},其梯度不仅受到原始损失函数的影响,还受到正则化项的影响,即:

\frac{\partial J(\theta )}{\partial \theta_{j}}=\frac{\partial L(\theta )}{\partial \theta_{j}}+2\lambda \theta_{j}

        在更新参数时,如果某个参数\theta_{j}的绝对值已经比较大,那么正则化项会使该参数的梯度增加,进一步推动参数朝着减小方向更新。特别是对于较大的参数,正则化项的效应更加明显,会强制这些参数变得更小。

        这样一来,通过正则化,模型学会了“谦虚”,即不赋予任何单个特征过大的权重,从而减少了模型对个别特征的过度依赖,增强了模型对未知数据的泛化能力,有效地缓解了过拟合现象。同时,由于参数受到了限制,模型的整体复杂度也会相应降低,这也是正则化能够抑制特征权重过大的机制。

四、正则化强度参数非常重要

        正则化确实会导致模型的所有参数(特征权重)在某种程度上变小,但不同的特征权重缩小的程度可能并不相同。这是因为正则化是通过对损失函数添加了一个对参数的惩罚项,使得在训练过程中不仅关注原始损失的最小化,同时也关注参数的大小。

        在L2正则化中,参数的梯度更新时会受到正则化项的影响,这会促使所有的参数向更小的值收缩,但是收缩的程度取决于:

  • 参数原有的大小:原本较大的参数受到正则化的影响更为显著,它们会被更多地减小。
  • 正则化强度(λ):λ值越大,正则化对参数的影响越强,所有参数都会更大幅度地减小。

        正则化强度(通常表示为 λ)是一个至关重要的超参数,它决定了正则化项在优化过程中对模型参数的约束力度。选择合适的正则化强度直接影响到模型的泛化能力,即模型在未见过的新数据上的表现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/347531.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker安装多个nginx容器时,要注意端口设置:

Docker安装多个nginx容器时,要注意端口设置: docker run -id --namemynginx4 -p 8089:80 nginx 安装多个nginx容器时,要注意端口设置:宿主机80端口已经被暂用,所以宿主机端口一定不能设置位80,但是容器上80…

三篇论文联合复现:高比例新能源下考虑需求侧响应和智能软开关的配电网重构程序代码!

适用平台:MatlabYalmipCplex 程序在高比例新能源接入的情况下提出了考虑需求响应(DR)和智能软开关(SOP)的多时段主动配电网重构策略,进一步降低配电系统重构费用,减少弃风率和弃光率&#xff1…

鼠标移入/点击子组件,获取选中子组件事件

不管是移入&#xff0c;或者是点击事件 都要知道是触发的哪个组件 这里子组件是个通用小标题title 所以&#xff0c;通过标题内容&#xff0c;获取触发的哪个子组件子组件 <template><div mouseover"tMouseover" mouseleave"tMouseLeave" class&…

五、flowable操作、查询相关

1、依赖 <dependency><groupId>com.ikaiyong.score</groupId><artifactId>score-spring-boot-starter-flowable</artifactId></dependency> 2、流程部署相关 如下建立对应文件和文件夹 2.1 流程部署 /*** 部署流程* param name*/GetMapp…

3d导模型赋予材质方法---模大狮模型网

给3D模型赋予材质的方法可以根据您使用的软件和工作流程而有所不同。以下是一般的步骤&#xff0c;您可以根据自己的情况进行调整&#xff1a; 准备模型&#xff1a;首先&#xff0c;确保您的模型已经完全建模并进行了UV映射。UV映射是将2D纹理坐标应用到3D模型表面的过程&…

17 位社区大咖寄语,Seata 进入 Apache 孵化器

北京时间 2023 年 10 月 29 日&#xff0c;分布式事务开源项目 Seata 正式通过 Apache 基金会的投票决议&#xff0c;以全票通过的优秀表现正式成为 Apache 孵化器项目&#xff01; 根据 Apache 基金会邮件列表显示&#xff0c;在包含 13 个约束性投票 (binding votes) 和 6 个…

MVC模式

Model-View-Controller : 模型-视图-控制器模式&#xff0c;用于应用程序的分层开发。 Model(模型)&#xff1a;代表一个存取数据的对象。也可以带有逻辑&#xff0c;在数据变化时更新控制器。 View(视图)&#xff1a;代表模型包含的数据的可视化。 Controller(控制器)&#xf…

提取视频中的某一帧画面,留住视频中的美好瞬间

你是否曾经被视频中的某一帧画面深深吸引&#xff0c;却又惋惜于无法将其永久保存&#xff1f;现在&#xff0c;有了我们【媒体梦工厂】&#xff0c;这一遗憾将成为过去&#xff0c;这个软件可以提取视频中的某一帧保存为图片&#xff0c;为你留住那些稍纵即逝的美好。 所需工…

《数字电子电路》 课程设计:十字路口红绿灯自动控制系统(上)(multisim仿真及PCB实现)

&#xff08;一&#xff09;前言 本系列文章就笔者在大二下学期进行《数字电子线路》课程设计的题目&#xff1a;十字路口红绿灯自动控制系统 进行详细的讲解&#xff0c;希望对读者有所帮助。 &#xff08;二&#xff09;目录 一、主要指标及要求 二、电路工作原理 1、工作原…

uniapp组件库Modal 模态框 的使用方法

目录 #平台差异说明 #基本使用 #传入富文本内容 #异步关闭 #点击遮罩关闭 #控制模态框宽度 #自定义样式 #缩放效果 #API #Props #Event #Method #Slots 弹出模态框&#xff0c;常用于消息提示、消息确认、在当前页面内完成特定的交互操作。 #平台差异说明 AppH5微…

基于SpringBoot + vue 的旅游景区网站系统设计与实现

目录 一、需求分析 二、技术分析 三、功能分析 四、数据设计 五、界面展示 六、资源获取 一、需求分析 旅游推荐网站是指提供旅游相关信息、服务和建议的在线平台。这些网站旨在帮助用户规划和安排旅行&#xff0c;提供目的地信息、酒店预订、机票预订、租车服务、旅行建…

力扣题目训练(1)

2024年1月25日力扣题目训练 2024年1月25日力扣题目训练225. 用队列实现栈257. 二叉树的所有路径258. 各位相加81. 搜索旋转排序数组 II82. 删除排序链表中的重复元素 II30. 串联所有单词的子串 2024年1月25日力扣题目训练 2024年1月25日开始进行编程训练&#xff0c;今天主要是…

C++入门【33-C++ 类 对象】

C 在 C 语言的基础上增加了面向对象编程&#xff0c;C 支持面向对象程序设计。类是 C 的核心特性&#xff0c;通常被称为用户定义的类型。 类用于指定对象的形式&#xff0c;是一种用户自定义的数据类型&#xff0c;它是一种封装了数据和函数的组合。类中的数据称为成员变量&a…

大模型竞速下半场,探索大模型应用的奥秘

8年前&#xff0c;我与朋友联合创立了对话式RPA开源框架Wechaty。如今&#xff0c;Wechaty已成为GitHub上Star最多的对话式RPA开源框架。 5年前&#xff0c;我为百度制作了《对话式AI》系列视频课程。至今&#xff0c;该课程仍在百度AI官网开放&#xff0c;帮助百万名对话式AI…

shell 脚本4

循环语句 echo命令 1.标准输出 2.用来调整脚本里面的格式 echo -e \b 删除b前面的数字 echo -e \t &#xff08;横向制表符 横向tab键&#xff09; echo -e \c 删除c后面的字符&#xff0c;并且不换行 echo -e \n 换行 自动硬盘分区 新建一块磁盘/dev/sdb 可以…

22款奔驰GLS450升级中规主机 激活九大功能

平行进口奔驰GLS450 语音小助手要说英语 十分的麻烦 而且也没有导航&#xff0c;原厂记录仪也减少了 很不方便 那要怎么解决呢 往下看&#xff0c;星骏汇小许Xjh15863 其实很简单&#xff0c;我们只需要更换一台中规的新主机就可以实现以下功能&#xff1a; ①中国地图 ②语…

计算机设计大赛 医学大数据分析 - 心血管疾病分析

文章目录 1 前言1 课题背景2 数据处理3 数据可视化4 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于大数据的心血管疾病分析 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9…

雷盛537威士忌:特别的味蕾与风格

雷盛537威士忌&#xff0c;一款源自英国苏格兰的好蒸馏酒&#xff0c;以其特别的味蕾和风格赢得了全球品鉴者的赞誉。这款威士忌在酿造过程中充分体现了苏格兰威士忌的传统工艺与精神&#xff0c;同时又融入了现代的创新元素&#xff0c;使其成为威士忌爱好者不容错过的佳品。 …

muduo网络库剖析——事件循环与线程EventLoopThread接口类

muduo网络库剖析——事件循环与线程EventLoopThread接口类 前情从muduo到my_muduo 概要bindunique_lock< mutex > 与 condition_variable 框架与细节成员函数使用方法 源码结尾 前情 从muduo到my_muduo 作为一个宏大的、功能健全的muduo库&#xff0c;考虑的肯定是众多…

还在纠结怎么选随身WiFi的,看看这个!随身WiFi靠谱榜第一名推荐!哪个随身WiFi最好用

你是不是还在头疼如何挑选一个靠谱好用的随身WiFi呢&#xff1f;市场上的随身WiFi产品五花八门&#xff0c;每次购买随身WiFi都会被坑&#xff0c;差点就失去购买的信心了~别灰心&#xff0c;一篇文章教你如何挑选一个靠谱好用的随身WiFi&#xff01; 一、5大购买原则&#xff…