机器学习(二十):偏差和方差问题

一、判断偏差和方差

以多项式回归为例,红点为训练集数据,绿点为交叉验证数据。

下图的模型,训练集误差大,交叉验证集误差大,这代表偏差很大

下图的模型,训练集误差小,交叉验证集误差小,这代表模型合适

下图的模型,训练集误差小,交叉验证集误差大,这代表方差很大。

下图是随着多项式的次数增加,训练集误差和交叉验证集误差的走势。如果没有正则项,随着多项式的次数增加,训练集误差变小,交叉验证集误差先降低后升高。

二、正则项的偏差和方差

在已经选择了多项式次数的前提下,正则化参数\lambda的选择对训练集和交叉验证集误差的影响如下:

如果正则化参数很大,训练集误差很大,偏差很大

如果正则化参数合适,训练集和交叉验证集误差会很小

如果正则化参数很小,相当于没有使用正则化,容易过拟合,,训练集误差小,交叉验证集误差大,方差会很大

三、建立性能基准

以语音识别为例,如果使用模型进行语音转文字,错误率有10.7%。单看这个数字,似乎错误率很高。但是如果很多语音有嘈音,导致人类也无法听清这些语音的文字,人类进行语音转文字时的错误率有10.3%。以人类水平作为基准,10.7%的错误率并不高,这个模型很合适。

建立性能基准的方法:

  • 根据人类能做到的水平
  • 根据竞争算法能做到的水平
  • 根据以往经验推测

四、学习曲线

学习曲线:随着训练集规模的增大,训练集和交叉验证集的误差曲线

学习曲线的趋势:随着训练集规模越来越大,训练集误差增加,交叉验证集误差减小

例子:给定一个二次回归模型,当有一个、两个、三个数据点,训练集误差为0或者非常非常小,但是当数据点增加,模型很难匹配上所有的训练集数据点,因此训练集误差增加。

4.1 高偏差场景

在高偏差的情况下,随着训练集规模提高,训练集误差增加,交叉验证集误差减小,越到后面,训练集误差和交叉验证集误差曲线趋于平缓。即使继续增加训练集数据,训练集误差和交叉验证集误差变化不大,且高于性能基准线。

以线性回归模型为例,不管训练集数据点有多少,线性回归模型都无法匹配上训练集,因此继续增加训练集数据点,也无法减小交叉验证集误差。

4.2 高方差场景

在高方差的情况下,随着训练集规模提高,训练集误差增加,交叉验证集误差减小,如果继续增加训练集数据,交叉验证集误差继续减小,可以到达性能基准线。

以四次多项式回归模型为例,当训练集的数据点少时,容易发生过拟合,当增加训练集数据点,可以减少过拟合。

五、解决高偏差和高方差问题

以下手段,分别可以解决高偏差和高方差问题

  • 获取更多的训练数据——解决高方差问题
  • 尝试减少特征——解决高方差问题
  • 尝试其他的特征——解决高偏差问题
  • 尝试增加多项式——解决高偏差问题
  • 尝试减小正则化参数\lambda——解决高偏差问题
  • 尝试增大正则化参数\lambda——解决高方差问题

六、神经网络的偏差和方差

在神经网络中,如何处理高偏差和高方差问题:

1、当训练集误差大,说明偏差大,需要建立更庞大的神经网络(建立更多的隐藏层、神经元),来减小偏差

2、当训练到训练集误差小,但交叉验证集误差大,说明方差大,需要获取更多的数据,然后重新训练模型,直至满足偏差和方差很小。

建立庞大的神经网络消耗性能,需要更强的计算机能力。

与此同时,庞大的神经网络需要引入正则项,避免过拟合。

TensorFlow的代码实现:

蓝框中的0.01指的是\lambda

                                                   

学习来源:吴恩达机器学习,12.1-12.6节 

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

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

相关文章

SpringBoot上传超大文件导致OOM,完美问题解决办法

问题描述 报错: Caused by: java.lang.OutOfMemoryError at java.io.ByteArrayOutputStream.hugeCapacity(ByteArrayOutputStream.java:123) ~[?:1.8.0_381] at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:117) ~[?:1.8.0_381] at java.…

Windows下载、安装、部署Redis服务的详细流程

本文介绍在Windows电脑中,下载、安装、部署并运行Redis数据库服务的方法。 Redis(Remote Dictionary Server)是一个开源、高性能的键值存储系统,最初由Salvatore Sanfilippo在2009年发布,并由Redis Labs维护。Redis因其…

【word转pdf】【最新版本jar】Java使用aspose-words实现word文档转pdf

【aspose-words-22.12-jdk17.jar】word文档转pdf 前置工作1、下载依赖2、安装依赖到本地仓库 项目1、配置pom.xml2、配置许可码文件(不配置会有水印)3、工具类4、效果 踩坑1、pdf乱码2、word中带有图片转换 前置工作 1、下载依赖 通过百度网盘分享的文…

Docker Desktop安装

0 Preface/Foreward 0.1 参考文档 Overview of Docker Desktop | Docker Docs (Docker Desktop使用手册) 0.1.1 Docker Dashboard Before going any further, we want to highlight the Docker Dashboard, which gives you a quick view of the cont…

vue3+element-plus 实现动态菜单和动态路由的渲染

在 Vue.js 中,使用 Vue Router 管理路由数据,并将其用于渲染 el-menu(Element UI 的菜单组件)通常涉及以下几个步骤: 定义路由元数据: 在你的路由配置中,为每个路由项添加 meta 字段&#xff0c…

RAG vs 微调:大模型知识的进化之路

2024年,大模型应用落地迎来全面提速。越来越多的企业在加大对大模型的投入,抢抓变革机遇,加速应用落地。大模型应用落地绕不开的两个关键词“RAG”和“微调”。那么什么是RAG?什么是大模型微调?大模型项目建设中RAG和微…

redis的使用场景和持久化方式

redis的使用场景 热点数据的缓存。热点:频繁读取的数据。限时任务的操作:短信验证码。完成session共享的问题完成分布式锁。 redis的持久化方式 什么是持久化:把内存中的数据存储到磁盘的过程,同时也可以把磁盘中的数据加载到内存…

基于Jeecgboot3.6.3的vue3版本前后端分离的流程管理平台

声明一下:因为这个项目license问题无法开源,更多技术支持与服务联系本人或加入我的知识星球提供一些技术服务。 初步完成了基于jeecgboot3.6.3的vue3版本的前后端流程管理平台,基于flowable6.8.1,同时支持bpmn流程设计器与仿钉钉流…

IT程序员的雷区都有哪些?你踩了哪些?

软件行业的工作经验和从事这个行业的工作年限直接相关。但从事这项工作的年限并不一定代表获得了相同年限的工作经验。 根据开发人员的习惯可以非常明显地分辨出谁更专业谁更业余。深入剖析下业余程序开发人员的种种表现,每个程序开发人员都应该引以为戒&#xff0…

怎样在 Nginx 中配置基于请求客户端屏幕尺寸的路由?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 文章目录 怎样在 Nginx 中配置基于请求客户端屏幕尺寸的路由?一、为什么要基于屏幕尺寸进行路由?二、准备工作三、获取客户端屏幕尺寸信息四、配置…

经纬恒润与奇瑞汽车签订新能源项目重点供应商合作协议,共同开启合作新篇章

近日,2024年国家级芜湖经开区汽车零部件生态大会成功举行,经纬恒润受邀出席,与行业各伙伴齐聚经开区,同绘发展蓝图,助力经开区汽车产业高质量发展。会上,经纬恒润与奇瑞汽车签署合作协议,成为奇…

el-image预览图片点击遮盖处关闭预览

预览关闭按钮不明显 解决方式: 1.修改按钮样式明显点: //el-image 添加自定义类名,下文【test-image】代指 .test-image .el-icon-circle-close{ color:#fff; font-size:20px; ...改成很明显的样式 }2.使用事件监听,监听当前遮…

npm下载pnpm

一、提供node_global和node_cache的文件夹 若不存在,可自行新建文件夹 二、配置环境变量 配置NODE_PATH变量: 配置Path变量: 三、执行cmd指令 npm config set prefix "D:\Configure\nodejs\node_global" npm config set cache &…

Redis的缓存问题:缓存穿透、缓存击穿和缓存雪崩

目录 一、缓存穿透 1、问题描述 2、解决方案 二、缓存击穿 1、问题描述 2、解决方案 三、缓存雪崩 1、问题描述 2、解决方案 3、雪崩案例 一、缓存穿透 1、问题描述 缓存穿透指的是⼤量请求的 key根本不存在于缓存中,每次针对此key的请求从缓存获取不到…

单证不一致清关难题 | 国际贸易综合服务平台 | 箱讯科技

什么是单证一致? 单证一致出口方所提供的所有单据要严格符合进口方开证银行所开信用证的要求,或者说出口方制作和提供的所有与本项货物买卖有关的单据,与进口方申请开立的信用证对单据的要求完全吻合,没有矛盾。 添加图片注释&am…

springboot整合 knife4j 接口文档

第一步&#xff1a;引入依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.4.0</version></dependency> 第二步&#xff1a;写入配置 方…

前端文件下载word乱码问题

记录一次word下载乱码问题&#xff1a; 用的请求是axios库&#xff0c;然后用Blob去接收二进制文件 思路&#xff1a;现在的解决办法有以下几种&#xff0c;看看是对应哪种&#xff0c;可以尝试解决 1.将响应类型设为blob&#xff0c;这也是最重要的&#xff0c;如果没有解决…

《梦醒蝶飞:释放Excel函数与公式的力量》18.1 图表类型与设计

第18章&#xff1a;创建图表和数据可视化 18.1 图表类型与设计 Excel提供了多种图表类型&#xff0c;帮助用户以直观的方式展示数据。选择合适的图表类型和设计可以显著提高数据的可读性和理解度。以下将介绍常见的图表类型及其应用&#xff0c;并通过具体案例进行说明。 18.…

C语言 ——— 函数指针数组的讲解及其用法

目录 前言 函数指针数组的定义 函数指针数组的使用 前言 数组是存放一组相同类型数据的存储空间 关于指针数组的知识请见&#xff1a;C语言 ——— 指针数组 & 指针数组模拟二维整型数组-CSDN博客 那么要将多个函数的地址存储到数组中&#xff0c;这个数组该如何定义…

FreeSWITCH 1.10.10 简单图形化界面26-在网页上播放SIP设备视频

​ FreeSWITCH 1.10.10 简单图形化界面26-在网页上播放SIP设备视频 1、前言2、大概流程3、测试环境4、安装流媒体服务器5、设置流媒体服务器接口6、简单写个web接口7、测试一下1、web播放在线播放器1在线播放器2本地video控件 2、vlc播放vlc播放rtmpvlc播放rtsp 8、总结 1、前…