15.正则化——防止过拟合的有效手段

引言

在人工智能(AI)领域,尤其是在机器学习和深度学习中,正则化(regularization)具有非常重要的地位。它不仅是训练模型过程中不可或缺的一部分,也是提高模型性能的关键因素之一。此外,正则化还可以提升模型的泛化能力,使得训练后的模型在面对新数据时能够做出更为准确的预测。

通过阅读本篇博客,你可以:

1.知道过拟合与欠拟合的区别

2.掌握如何使用正则化防止过拟合

一、过拟合与欠拟合

1.欠拟合(Under Fitting)

欠拟合(Under Fitting)指模型没有拟合到位,即模型在训练数据和测试数据上都表现不佳,无法捕捉到数据的潜在规律。如下图所示,我们能很明显的发现这条绿色的直线没有很好的对红点和蓝点进行分类,这就是欠拟合的一个经典的例子。

2.过拟合(Over Fitting)

过拟合(Over Fitting)指的是拟合过度,由于模型过于复杂,捕捉到了训练数据当中的噪声和异常点。导致了模型在训练数据上表现得非常好,能够准确预测训练集中的每一个样本,但在测试数据或新数据上表现不佳。如下图所示,这条曲线对红蓝点进行了过度的区分,将很多异常点和离群点包括在内。

3.正好拟合(Just Right Fitting)

正好拟合(Just Right Fitting)指模型能够恰当地平衡复杂程度,既有足够的模型参数来捕捉数据特征,又没有过多的参数导致对训练数据的过度拟合或噪声的敏感。模型在训练和测试数据上的表现都接近最优。这是我们想达到的模型最佳状态。如下图所示,绿色的曲线抛去了噪声和异常点,将蓝点和红点进行了很好的分类。

二、正则化的目的

正则化的目的其实就是防止过拟合,增加模型的鲁棒性(Robust,在环境变化、噪声、干扰下保持良好的性能和稳定性),也就是让模型的泛化能力和推广能力更加强大。我们举一个例子:对于鲁棒性而言,以下两个式子描述同一条直线哪个更好?

0.5 x_{1} + 0.4 x_{2} + 0.3 = 0

5 x_{1} + 4x_{2} + 3 = 0

对于鲁棒性而言,第一个的选择是更好的,因为 \theta 也就是权重越小,模型的容错能力也就越强。我们可以代入数字进行验证,比如将100分别代入两个式子当中,如果在某个过程中发生了偏差,导致代入的数字变成了101,那么在式子1中的误差就很小,但是放在式子2中偏差就大很多了。所以我们需要使用正则化加强模型的鲁棒性。但  \theta  也不能太小,否则模型的正确率就无法得到保证了。要有一定的容错率又要保证正确率就要通过正则化来实现。

我们给模型原先的损失函数上加一个正则惩罚项。拿线性回归举例就是      

           Loss = MSE + Penalty

我们知道线性回归当中的 MSE = \frac{1}{m}\sum_{m}^{i =1}(y_{i} - \theta^{T}x_{i})^{2} ,\theta  与 MSE 成反比,\theta 越小,MSE越大,MSE 越大,损失就越大,这并不是我们想要看到的。所以从本质上来说,正则化就是牺牲模型正确率来换取推广能力和抗干扰能力的一种方法。

三、正则化的常用方法

在正则化中,常用的惩罚项有 L_{1}正则项 和 L_{2}正则项。它们的公式如下:

L_{1} = \sum_{m}^{i =0}\left | w_{i} \right |

                     L_{2} = \sum_{m}^{i = 0} w_{i}^{2}                        

L_{1} 其实就是所有模型参数的绝对值总和,L_{2} 就是所有模型参数的平方和。

1.L1稀疏

L1正则化(L1 Regularization)是一种通过在损失函数中添加L1范数作为惩罚项,从而促使模型参数稀疏化的技术。L1正则化的公式如下:

Loss = Loss Function + \lambda \sum_{m}^{i = 0}\left | w_{i} \right |

公式中的 \lambda 是 L1范数所占权重,\lambda 的值越大,模型的泛化能力就越强。我们知道梯度下降法的公式为:

W_{j}^{t+1} = W_{j}^{t+1} - \eta \cdot gradient_{j}

同时,我们知道梯度的计算公式就是对损失函数中的 w 求偏导:

gradient_{j} = \frac{\partial J(w)}{\partial w_{j}}

所以,在原损失函数的基础上,我们要对L1正则项进行求偏导:

\frac{\partial L1}{\partial w_{i}} = sign(w_{i}) = \left\{\begin{matrix} 1 ,w_{i} > 0 \\ 0,w_{i} = 0 \\ -1,w_{i} < 0 \end{matrix}\right.

从这个公式我们看出,每个维度的参数在梯度下降时的步伐都会变大,每个维度的参数都会在原本的基础上多跨出 \eta \cdot 1 的大小。由于L1正则项的偏导数是确定的,所以多走的步伐大小也是不随着w_{i} 改变的,也就意味着当 w_{1} 与 w_{2} 的数据量相差较大时。数据量偏小的一方会更快地到达 0 。此时,L1正则化使权重参数稀疏的效果就达到了。 

从几何的层面来看,L1正则化会偏向于下图。

2.L2平滑

与L1正则化相同地,我们也把L2正则化放到梯度下降法中讲解。所以直接开始对L2正则项求梯度:

\frac{\partial L2}{\partial w_{i}} = w_{i}

从求完导的公式中我们可以知道,与L1正则化同理,梯度下降法每次参数更新的时候,L2正则项的存在会使更新的步伐比原损失函数大 \eta \cdot w_{i} 。此时我们就发现了L2正则化与L1正则化的不同。L2正则化多走的步伐是会受到参数本身影响的,这就意味着即使 w_{1} 和 w_{2} 的数据级相差很大,他们都会以相同的比例下降,而不会出现有某个维度的参数减为0的情况。这就使得L2正则化可以使整体的 w 变小,梯度下降更加平滑。

从几何的层面来看,L2正则化会偏向于下图。

3.L1正则化和L2正则化的不同作用

我们分析了L1正则化和L2正则化的原理。从中我们可以发现,L1正则化能够使部分不重要的参数降为0,L2正则化能够使整体的参数变小。虽然他们的目的都是减少模型的复杂度和提高模型预测性能,但是在效果和应用场景上存在显著差异。

L1正则化能够促使参数稀疏,通常用于帮助特征选择,适合解释性要求高的模型。L2正则化则通过整体收缩模型参数减少模型复杂度,适合应用于多重共线性的特征数据来提升模型的泛化能力。

 总结

本篇博客讲解了正则化的作用、实现方式以及原理。希望可以对大家起到作用,谢谢。


关注我,内容持续更新(后续内容在作者专栏《从零基础到AI算法工程师》)!!!


 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产品如何实现3D展示?具体步骤如下

产品实现3D展示主要依赖于先进的3D建模与展示技术。以下是产品实现3D展示的具体步骤和方法&#xff1a; 一、3D建模 使用专业的3D建模软件&#xff0c;如Blender、Maya、3ds Max等&#xff0c;这些软件提供了丰富的建模工具和材质编辑器&#xff0c;能够创建出高精度的3D模型…

Flutter 12 实现双击屏幕显示点赞爱心多种动画(AnimationIcon)效果

本文主要是使用Flutter封装一个双击屏幕显示点赞爱心UI效果&#xff0c;并实现了爱心Icon 透明度、缩放、旋转、渐变等动画效果。 实现效果&#xff1a; 实现逻辑&#xff1a; 1、封装FavoriteGesture&#xff08;爱心手势&#xff09;实现双击屏幕显示爱心Icon&#xff1b; …

文件摆渡系统选型指南:如何找到最适合您的数据安全解决方案?

在当今数字化时代&#xff0c;数据的安全传输与共享已成为企业运营中不可或缺的一环。文件摆渡系统&#xff0c;作为实现数据在不同安全域之间高效、安全传输的重要工具&#xff0c;其选型直接关系到企业数据的安全性与业务效率。本文将为您详细介绍如何挑选最适合您企业的文件…

视频网站系统的设计与实现(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;视频网站系统 摘 要 使用旧方法对视频信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在视频信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#…

为什么k8s不支持docker-kubernetes

为什么Kubernetes不再支持Docker&#xff1f; 在Kubernetes 1.20版本之后&#xff0c;Kubernetes宣布逐步停止对Docker作为容器运行时的支持。这一改变在容器管理领域引起了广泛关注。许多人不禁疑惑&#xff1a;Kubernetes与Docker一向密切合作&#xff0c;为何会做出这样的决…

骨传导耳机哪个品牌好?2024年五大热门精选骨传导耳机推荐

在当今快节奏的生活中&#xff0c;人们对于个人音频设备的需求不仅限于优质的音质体验&#xff0c;还越来越注重健康与舒适。骨传导耳机作为一种新兴的技术产品&#xff0c;以其独特的听觉传递方式——通过颞骨而非耳道传递声音——赢得了众多用户的青睐。这种技术不仅可以提供…

Webserver(1)Linux开发环境搭建

目录 配置软件虚拟机中安装ubuntu安装ubuntu18的操作系统 安装VM tools安装XshellVscode远程连接到虚拟机 配置软件 VMwareVScodeg安装ubuntu 18.04.iso 或者镜像版本 XShellXFTP 虚拟机中安装ubuntu 安装ubuntu18的操作系统 开启虚拟机 选择中文简体 安装VM tools 打开v…

炸了!改进Transformer!Transformer-BiGRU多变量回归预测(Matlab)

炸了&#xff01;改进Transformer&#xff01;Transformer-BiGRU多变量回归预测&#xff08;Matlab&#xff09; 目录 炸了&#xff01;改进Transformer&#xff01;Transformer-BiGRU多变量回归预测&#xff08;Matlab&#xff09;分类效果基本介绍程序设计参考资料 分类效果 …

python离线安装依赖

以pymsql依赖为例操作如下: Python Package Index&#xff08;PyPI&#xff09;的官方网址是&#xff1a; PyPI The Python Package Index 在这个网站上&#xff0c;你可以搜索、浏览和下载Python包。 tar -xvzf pymysql2-1.3.3.tar.gz cd pymysql2-1.3.3 python setup.p…

基于SSM机场网上订票系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;机票信息管理&#xff0c;订单信息管理&#xff0c;机场广告管理&#xff0c;系统管理 前台账号功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;机票信息&#xf…

CRMEB标准版Mysql修改sql_mode

数据库配置 1.宝塔控制面板-软件商店-MySql-设置 2.点击配置修改&#xff0c;查找sql-mode或sql_mode &#xff08;可使用CtrlF快捷查找&#xff09; 3.复制 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 然后替换粘贴&#xff0c;保存 注&#xff1a;MySQL8.0版本的 第三步用…

CRM在企业协同中发挥了哪些作用?

在当今快速变化的商业环境中&#xff0c;企业竞争力的核心已逐渐从单一的产品或服务优势&#xff0c;转向以客户为中心的综合能力构建。客户关系管理&#xff08;CRM&#xff09;系统作为这一转型的关键驱动力&#xff0c;正以前所未有的力度打破企业内部部门间的传统壁垒&…

MusePose模型部署指南

一、模型介绍 MusePose是一个基于扩散和姿势引导的虚拟人视频生成框架。 主要贡献可以概括如下&#xff1a; 发布的模型能够根据给定的姿势序列&#xff0c;生成参考图中人物的舞蹈视频&#xff0c;生成的结果质量超越了同一主题中几乎所有当前开源的模型。发布该 pose alig…

Python CGI编程-get、post-复选框、单选框、文本框、下拉列表

GET方法&#xff1a;将网址中的两个参数读取出来显示到浏览器中 url示例&#xff1a;表单示例&#xff1a;服务器脚本hello.py文件是放在/Library/WebServer/CGI-Executables&#xff0c;hello.py同样也需要通过chmod修改权限到755. 放在/Library/WebServer/Documents中的是get…

免费开源AI助手,颠覆你的数字生活体验

Apt Full作为一款开源且完全免费的软件&#xff0c;除了强大的自然语言处理能力&#xff0c;Apt Full还能够对图像和视频进行一系列复杂的AI增强处理&#xff0c;只需简单几步即可实现专业级的效果。 在图像处理方面&#xff0c;Apt Full提供了一套全面的AI工具&#xff0c;包…

关于写查询接口的一些理解

上篇文章我们讲了查看设备详细信息的接口。这篇文章我们来讲讲一般的查询接口怎么写。我们就以最简单的查询为例子&#xff0c;来讲讲怎么写查询接口。 这是写IT设备查询接口的要求&#xff1a; 首先要知道的是&#xff0c;你写任何接口都是针对某张表来进行操作的。就像这个接…

HCIP--1

同一区域内的OSPF路由器拥有一致的 LSDB, 在区域内&#xff0c;OSPF 采用 SPF算法计算路由一个区域太多路由器&#xff0c;硬件资源跟不上&#xff0c;所以多划分区域 OSPF 路由计算原理 1. 区域内路由计算 LSA 在OSPF中&#xff0c;每个路由器生成 LSA&#xff0c;用于告诉…

Bytebase 3.0.0 - AI 助手全面升级

&#x1f680; 新功能 SQL 编辑器里的 AI 助手&#xff1a;支持将自然语言转换成 SQL 语句&#xff0c;解释 SQL 代码&#xff0c;还能帮助发现潜在问题。 支持 SQL Server DML 语句一键回滚。支持 MariaDB 的在线大表变更。新的 SQL 审核规则&#xff1a; 要求为 MySQL 设置 …

我谈Sobel算子与高斯一阶微分的关系

现在算力提升了&#xff0c;最常用的一阶差分边缘检测算子已经不是Sobel算子了&#xff0c;而是高斯一阶微分。 高斯一阶微分 顾名思义&#xff0c;高斯函数的一阶导数。 Derivative of Gaussian 1D 一维直接扩展到二维。 禹晶、肖创柏、廖庆敏《数字图像处理&#xff08;面…

vue-router3基本使用

vuex基本使用 vue2 对应的 vuex、vue-router 都为3. 项目创建与框架安装如下 vue create hellorouter3 npm install vue-router3 npm i vuex3 npm install npm run serve 处理新建About组件报错 根路径下创建.eslintrc.js文件&#xff0c;其内容如下&#xff1a; module.ex…