吴恩达2022机器学习专项课程C2W3:2.25 理解方差和偏差(诊断方差偏差正则化偏差方案搭建性能学习曲线)

目录

  • 引言
  • 名词替代
  • 影响模型偏差和方差的因素
    • 1.多项式阶数
    • 2.正则化参数
  • 判断是否有高偏差或高方差
    • 1.方法一:建立性能基准水平
    • 2.方法二:建立学习曲线
  • 总结

引言

机器学习系统开发的典型流程是从一个想法开始,然后训练模型。初次训练的结果通常不理想,因此关键在于如何决定下一步该做什么以提高模型性能。观察算法的偏差和方差(Bias and Variance)在很多应用场景中能很好地指导下一步的改进。

名词替代

J_train:训练误差
J_cv:交叉验证误差
J_test:测试误差

影响模型偏差和方差的因素

1.多项式阶数

(1)什么是高偏差和高方差

  • 如果用一条直线来拟合数据,效果不好,则认为此时模型有高偏差,高偏差的模型J_train和J_cv都很高,表现为欠拟合。
  • 如果用一个四阶多项式来拟合数据,则认为此时模型有高方差,高方差的模型J_train很低,但J_cv很高,表现为过拟合。
  • 如果用一个二次多项式来拟合数据,效果最好,此时模型既没有高偏差也没有高方差,合适的模型J_train和J_cv都较低。

在这里插入图片描述


(2) 模型复杂度对模型表现的影响

当多项式阶数(模型复杂度)增加时:

  • J_train会下降,因为模型变得更加复杂,更能拟合训练数据,此时模型高偏差。
  • J_cv在多项式次数(d)很低时很高,表示欠拟合,此时模型高偏差;在多项式次数(d)很高时也很高,表示过拟合,此时模型高方差。

只有在适中的多项式次数(如二次多项式)时,模型的J_train和J_cv都较低,表现最好。 因此要选择一个合适的多项式次数,使模型在训练数据和未见过的数据上都有较好的表现,达到偏差和方差的平衡。

在这里插入图片描述


(3)结论

  • 高偏差(欠拟合):主要指标是J_train高,表示模型在训练集上表现不好。通常J_train和J_cv接近。

  • 高方差(过拟合):主要指标是J_cv远高于J_train,即J_cv >> J_train。训练误差低但交叉验证误差高,表明模型在训练数据上表现好但在新数据上表现差。

  • 同时存在高偏差和高方差:这种情况较少见,但在某些复杂模型如神经网络中可能出现。表现为训练误差高,交叉验证误差更高。

  • 关键在于:高偏差表示模型在训练集上表现不好,高方差表示模型在交叉验证集上比在训练集上表现差得多。
    在这里插入图片描述


2.正则化参数

(1)过大的λ和过小的λ

λ过大导致模型高偏差(欠拟合),w参数几乎为0没有影响了,只有λ的常量值,此时模型绘制出来就是一条线,因此无法拟合训练样本,Jtrain较高。λ过小导致模型高方差(过拟合),Jcv远大于Jtrain。最终,合适的λ值能平衡偏差和方差,减少训练集和验证集的误差。
在这里插入图片描述


(2)通过交叉验证选择适合的λ

类似于之前选择多项式阶数的方法,先设定λ值(如λ=0),最小化成本函数得到参数,然后计算J_cv。不断尝试不同的λ值,逐步翻倍,并计算每次的J_cv。最终,通过比较不同λ值对应的J_cv差,选择J_cv最小的λ值及其对应的参数。最后,用J_test评估算法的泛化性能,并展示J_train和J_cv如何随λ变化。
在这里插入图片描述


(3)正则化参数λ对模型表现的影响

当正则化参数(λ)变大时:

  • λ=0时表示没有正则化,容易过拟合(高方差),J_train小而J_cv大。
  • λ值很大时会欠拟合(高偏差),导致J_train和J_cv都很大。随着λ增大,J_train增加。两端λ值过大或过小时J_cv都会增加。

适中的λ值可以使模型性能最佳,J_train和J_cv都较低。 最终得出结论:通过交叉验证尝试不同的λ值,选择J_cv最小的λ值,可以得到合适的模型。类似于选择多项式次数,两者图形在偏差和方差方面是镜像关系。

在这里插入图片描述


判断是否有高偏差或高方差

1.方法一:建立性能基准水平

(1)语音识别案例概述
训练一个语音识别系统,J_train(没有正确转录的部分占总体的比例)为10.8%,J_cv(测试系统性能)为14.8%。尽管10.8%看起来像是高偏差,但通过与人类表现(10.6%误差)对比,发现算法在训练集上的表现接近人类水平,仅差0.2%。真正的问题是J_cv比J_train高很多,有4%的差距,这表明算法存在高方差问题,而不是高偏差问题。通过这样的基准测试,可以更准确地判断算法性能的不足之处。
在这里插入图片描述


(2)建立性能基准水平的三种方法
在判断训练误差是否高时,建立性能的基准水平很有用。基线水平帮助你对学习算法的误差有合理的预期。

  • 常见的方法是衡量人类在该任务上的表现,因为人类通常擅长处理非结构化数据(如音频、图像或文本)。
  • 另一种方法是参考已有的竞争算法或之前的实现,通过测量这些算法的性能来建立基准。
  • 有时也可以根据之前的经验进行猜测。
    在这里插入图片描述
    (3)性能基准水平判断高偏差和高方差
    首先,通过建立性能基准水平(如人类表现)和测量训练误差及交叉验证误差来评估算法的性能。
  • (左侧)如果训练误差高于基线水平,则算法存在高偏差。
  • (中间)如果交叉验证误差远高于训练误差,则表明算法有高方差。

通过这些数值差距,可以直观地判断算法的问题。(右侧)有时算法可能同时存在高偏差和高方差,具体表现为训练误差高于基线水平,且训练误差与交叉验证误差之间的差距很大。理解这些指标有助于更好地分析和改进算法。
在这里插入图片描述


(4)小结
判断算法是否有高偏差的一种方法是看训练误差是否大,然而,在某些应用中,数据可能嘈杂,零误差不现实,因此建立性能基准很有用。你可以将训练误差与期望误差(如人类表现)对比,来判断误差是否大。同样,比较交叉验证误差和训练误差,来判断算法是否有高方差问题。通过这些方法,可以准确评估算法的偏差和方差问题。此外,学习曲线也是理解算法性能的一个有用工具。

2.方法二:建立学习曲线

学习曲线(Learning curves)是一种帮助你了解学习算法性能如何的方式,曲线随着经验的数量发生变化。,经验数量指的是算法所拥有的训练样本数。
(1)训练样本数的变化与J_train,J_cv
学习曲线帮助了解学习算法性能随训练样本数量变化的方式。横轴表示训练样本数,纵轴表示误差,包括训练误差(J_train)和交叉验证误差(J_cv)。当训练样本增多,交叉验证误差减少,因为模型变得更好。而训练误差则会增加,因为随着样本增多,模型很难完美拟合所有训练样本。少量样本时,训练误差接近零,但样本增多后,误差会增加。

通常交叉验证误差比训练误差高,因为模型更好地拟合了训练集。
在这里插入图片描述


(2)高偏差的学习曲线
高偏差情况下,训练误差和交叉验证误差随着样本增加,初期会下降但随后趋于平稳。这是因为模型太简单(如线性函数),无法适应更多数据,即使增加训练数据,误差也不会降低。

通过比较基准线(如人类表现),可以看到J_train与基准线的较大误差(间隙较大),说明高偏差问题。结论是,如果算法有高偏差,增加更多训练数据效果不大,需要其他方法改善算法性能。
在这里插入图片描述


(3)高方差的学习曲线
高方差情况下,训练误差(J_train)随训练集变大而增加,但交叉验证误差(J_cv)更高,两者之间差距大,表明模型在训练集上表现好但不能泛化。高方差的信号是交叉验证误差远高于训练误差。

增加训练数据有助于降低交叉验证误差,使其接近训练误差,从而改善算法性能。因此,扩展训练集对高方差算法有显著帮助,但对高偏差算法效果不大。总结来说,更多的训练数据可以帮助高方差算法降低误差,提高性能。在这里插入图片描述


总结

正常来讲,先判断模型出现了什么问题,通过建立性能基准水平或学习曲线,观察模型出现了高方差还是高偏差。然后在根据影响方差或偏差的因素,选择对应的方案优化模型。下一篇会通过案例应用本篇的两个过程。

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

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

相关文章

今日分享丨inBuilder低代码平台打印格式设计器

打印在企业日常办公中占据核心地位,是处理各种关键文件不可或缺的一环。无论是签署合同、报销费用、记录凭证与账表、处理回单与库存单据、开出库单据,还是开具发票、制作条码与标签,打印都发挥着至关重要的作用,确保企业运营的高…

rv1126-rv1109-串口显示路径不变化

串口只有#, 后来看了教程改成如下 但是没有变化,那个路径都只显示rootLonbon# 于是最后改成了这样 因为:

linux 安装sftp及使用sftp上传和下载

一、centos7 安装sftp 1.安装 OpenSSH 服务: sudo yum install openssh-server2.启动 SSH 服务,并设置为开机启动: sudo systemctl start sshd sudo systemctl enable sshd3.创建一个新用户,用于SFTP连接(替换your_…

【C++高阶】C++继承学习手册:全面解析继承的各个方面

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:模板进阶 🌹🌹期待您的关注 🌹🌹 继承 📖1. 继承的概念及定义…

MPLS提高网络服务质量的原理

MPLS(Multiprotocol Label Switching,多协议标签交换)是一种网络技术,它能够提高网络的服务质量(Quality of Service,QoS)以及整体性能。MPLS通过以下几种方式来提升网络服务质量:标…

220v转3v用多大电阻

在设计一个电压转换电路,将220V交流(AC)电压转换为3V直流(DC)电压时,我们需要考虑几个关键因素,包括安全、效率和电路的稳定性。AH8651是一款DC-DC转换器,通常用于将较高的输入电压转…

如何基于 Python 快速搭建 QQ 开放平台 QQ 群官方机器人详细教程(更新中)

注册 QQ 开放平台账号 账号注册 QQ 机器人:一个机器人可以被添加到 群聊/频道 内对话,QQ 用户也可以直接跟机器人 单独对话。 开发者账号主体要求 单聊对话:【定向邀请】 群聊场景:仅支持企业主体【个人主体暂不支持】 频道场…

笔记98:按列压缩矩阵 csc_matrix 的 “含义”

1. 如何按列压缩矩阵: 注:按列压缩(Compressed Sparse Column -- CSC),是一种使用三个特征数组就可以表示整个矩阵的方法; 标准二次规划问题 :状态量:矩阵:向量&#xff…

Linux内核驱动入门 编译环境搭建、编译内核

文章目录 前言搭建内核驱动编译环境下载交叉编译工具编译内核minicom工具使用找不到ttyUSB设备问题编译内核编译报错解决小坑编译选项说明 从零开始的驱动程序 前言 哎…有时候我都不知道自己是干啥的 说是运维吧,docker不会,k8s不会;说是驱…

【安卓】在安卓中使用HTTP协议的最佳实践

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

领夹无线麦克风哪个品牌好?分享麦克风什么牌子的音质比较好!

​无线领夹麦克风作为现代音频技术的杰出代表,正逐渐改变着我们的声音表达方式。它以其独特的便携性、稳定性和高音质,成为了众多声音创作者的首选工具。面对市场上琳琅满目的无线领夹麦克风选项,找到一款贴合个人需求的设备无疑是一项挑战。…

万字长文爆肝Spring(一)

Spring_day01 今日目标 掌握Spring相关概念完成IOC/DI的入门案例编写掌握IOC的相关配置与使用掌握DI的相关配置与使用 1,课程介绍 对于一门新技术,我们需要从为什么要学、学什么以及怎么学这三个方向入手来学习。那对于Spring来说: 1.1 为什么要学? …

金融科技助力绿色金融:可持续发展新动力

随着全球气候变化和环境问题的日益严重,绿色金融作为推动环境保护和经济可持续发展的重要手段,已经受到越来越多的关注。而金融科技,作为科技与金融深度融合的产物,正以其独特的优势为绿色金融的发展注入新动力。本文将探讨金融科…

Vue 路由:一级路由,嵌套路由

1、安装路由插件,因为用的是vue2 所以路由版本要和vue2对应上,所有有3 yarn add vue-router3 2、在main.js里引入 import VueRouter from vue-router Vue.use(VueRouter) 3、新建文件夹 router,创建index.js 4、引入路由插件,并且暴露出来这个路由 5、在…

基于机器学习的C-MAPSS涡扇发动机RUL预测

美国国家航空航天局的商用模块化航空推进仿真系统(CMAPSS)所模拟出的涡扇发动机性能退化数据进行实验验证,数据中包含有风扇、涡轮、压气机等组件参数。C-MAPSS中所包含的数据集可以模拟出从海平面到42千英尺的高度,从0到0.9马赫的…

一键实现电脑投屏到电视机,轻松享受更大画面

在数字化的今天,我们常常希望在更大的屏幕上分享电脑上的内容,观看视频、展示演示文稿,或者与家人一同欣赏照片。而实现电脑屏幕投射到电视机上,成为了许多人追求的方便而实用的功能。本文将为您详细介绍电脑投屏到电视机的方法&a…

汽车IVI中控开发入门及进阶(二十六):视频解码芯片ADV7180

前言: ADV7180芯片的功能框图如下: ADV7180自动检测并将兼容全球NTSC、PAL和SECAM标准的标准模拟基带电视信号转换为兼容8位ITU-R BT.656接口标准的4:2:2分量视频数据。简单的数字输出接口与各种MPEG编码器、编解码器、移动视频处理器以及Analog Devices数字视频编码器(如A…

跨平台看抖音、哔哩哔哩、虎牙、斗鱼啦,一个app即可完成

一、简介 1、一款免费、开源、无广告、跨平台的,可以观看抖音、哔哩哔哩、虎牙、斗鱼等平台的直播内容的软件。它简单好用,支持 Windows、MacOS、Linux、Android、iOS 等平台。 二、下载 1、文末有下载链接,apk手机可直接安装,不明白可以私聊我哈(麻烦咚咚咚,动动小手给个…

Matrix->Matrix工具类获取Matrix的平移、缩放、错切数值

// 传入矩阵,获取矩阵数值 class MatrixValues(matrix: Matrix) {val scaleX: Floatval scaleY: Floatval transX: Floatval transY: Floatval skewX : Float val skewY : Floatinit {val fromValues FloatArray(9)matrix.getValues(fromValues)// 缩放数值scaleX …

有什么好用的ai智能写作手机版?6个软件帮助你快速进行智能写作

有什么好用的ai智能写作手机版?6个软件帮助你快速进行智能写作 AI智能写作在现代社会中扮演着越来越重要的角色,许多人依赖这些工具来提高写作效率和质量。以下是六款不同类型的AI智能写作手机应用,它们可以帮助你快速进行智能写作&#xff…