偏差与方差| 学习笔记

简介: 快速学习偏差与方差。

开发者学堂课程【机器学习算法 :偏差与方差】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/535/detail/7181


偏差与方差

 

内容介绍

一、概念引入

二、泛化误差组成推导*

三、偏差与方差的理解

四、偏差和方差的模拟

 

一、概念引入

偏差、方差与噪声

偏差(Bias):描述的是根据样本拟合出的模型的输出预测结果的期望与样本真实结果的差距,即在样本上拟合的好不好。

方差(Variance):模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。

噪声(Noise):为真实标记与数据集中的实际标记间的偏差。通常由多种因素综合影响造成,不可去除。

偏差度量了学习算法的期望预测与真实结果的偏离程度,刻画了学习算法本身的拟合能力。方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。

噪声表达了在当前任务上任何学习算法所能表达到的期望泛化误差的下界,即刻画了学习问题本身的难度。


二、泛化误差组成推导*

以下有一个泛化误差组成的推导,所涉及到的数学问题比较多,只需要知道结论即可,推导过程不必关心。

数据集D中的测试样本x的标记为image.png,就是训练集中样本推断的真实值。y为x的真实标记,就是客观世界中的真实值是y。前面这两个值还是有差异的,在做模型训练的时候通常会直接把image.png作为真实值.f(x;D)为基于数据集D学习的模型f对x的预测值。就是通过对数据集D进行训练,训练之后得到一个结果f,那么f(x;D)就是使用模型f对数据集D进行预测的预测值。

(1)以回归算法为例,其期望预测为:f(x) = ED[f(x;D)]

(2)使用样本相同的不同训练集产生的方差为:var(x) = Ep[(f(x;D)-f(x))2]。就是预测值减去期望值的平方的期望就是方差。在学习方差的时候就是每一个样本的值减掉平均值的平方的概念。

(3)噪声:image.png,回归方程的噪声的期望:image.png=0。 依普西隆等于标记减去真实值的差的平方,这是不可避免的。因为真实标记y到底是什么是不知道的,用来训练的真实值是image.png,而回归方程噪声的期望值为0。因为之前说过噪声是由很多综合因素造成,事实上要搞清楚一点,一般有综合因素影响的值一般符合正态分布,是符合一个image.png=0的正态分布。因为是噪声,所以是在image.png=0的上下进行浮动

(4)期望输出与真实标记的偏差:image.png。这个偏差就等于期望预测减去真实值,这个真实值是客观世界中真实值。

(5)期望泛化误差:预测值和真实值的差的平方和即为泛化误差

image.png

就是等于预测值 f(x;D)减去真实值image.png的平方,继续推导,把中间的内容减去一个期望预测再加上一个期望预测,这一步骤是为了拼凑。可以从上面的定义中看到在方差和偏差中都出现了期望预测,原来的公式内容上没有需要进行拼凑。之后结合起来在拆开就等于预测值减期望的平方再加上期望预测值再减上真实预测的平方,最后加上一个交叉项。交叉项数值为零,用红色框住的是交叉项。最后的结果即为前面两项的和,因为要引入真实值,所以要再次进行拼凑引入 y,再展开,同样红色框中的内容为零,结果为方差加上偏差加上噪声的总和。总之泛化误差就是由这几项组成的,第一项是方差就代表着模型的稳定性,第二项是偏差是模型的准确性,第三项是噪声无法去掉。所以泛化误差就取决于模型的方差及偏差的和

 

三、偏差与方差的理解

偏差:体现的是最终结果和实际结果的差异,偏差越小,和真实结果越接近

方差:体现的是整体水平波动,方差越小,结果稳定性越好

期望的模型结果为:低偏差,低方差

因为偏差和方差都是正的,泛化的误差是由这两项的和决定的,噪声无法去除,所以这两项越小,模型越好。

image.png

观察上述左边的图像,以射箭为例。左上角第一个图是一个低方差、低偏差的例子。可以看到每一箭都已经命中靶心,方差说明这些箭波动性小、表现比较稳定,所射中的面积比较小会集中到一起;而偏差是偏离靶心的位置,偏差越低和靶心越接近。低偏差和低方差就导致了所有箭都射在离靶心很近的位置上,这是最希望得到的结果,箭箭中靶心。而右上角对应的一个低偏差、高方差的图,低偏差实际上说所射出的箭均值或是期望值还是很接近靶心的,但由于方差比较高就导致了散步的面积较大,不稳定,所射中的环数忽上忽下。左下角的是一个低方差但高偏差的例子,就是基本射在同一个地方上,散步的面积小;但是高偏差使得距离靶心较远,全部离靶心远说明了和真实值的偏离较大,而整体的波动水平比较小,水平比较稳定。右下角的高偏差和高方差,距离靶心又远并且水平不稳定而造成的乱射。最期望的就是低偏差、低方差。

image.png

偏差体现的是拟合程度优劣,通常模型越复杂,偏差越小。当偏差较大时,即预期输出和实际结果偏离较大,称之为欠拟合。

方差体现的是模型的稳定程度。通常模型越简单,方差越小。当方差较大时,模型不稳定,即对一些新数据的预测不稳定。偏差小,方差大的情况即为过拟合。

可以联想到上一章的例子,比如有一个十组数,用七组数来去拟合它,在二次拟合的时候会有许多点距离线还有一段距离,就会有偏差比较大。但是如果用六次曲线的时候,基本上所有的点离曲线比较近,,就是偏差比较小。当然偏差比较大的时候。实际结果偏离较大,过大的话就是欠拟合。

在评估95风险的时候,用一次模型的话风险就很小,比较稳定;但是六次模型,风险预知就比较高了,此时的偏离程度很高,就是不稳定。方差比较大的时候就不稳定,对一些新数据的预测不稳定。偏差小,方差大的情况即为过拟合。偏差小就是在当前数据集上的表现好,经验风险小;方差大在新的数据集上表现不好,这就是过拟合。在曲线图上可以看到横坐标是模型的复杂程度,纵坐标是错误率。绿色的线是方差,同时可以看到随之模型的复杂程度错误率越来越高;红色的线是偏差,偏差随着模型的复杂程度越小。黑色的线是方差和偏差的和就是泛化误差,(噪声不可去除)可以看到在黑线上的最低点就是所期望得到的。所以要找到一个平衡点来获取。

 

四、偏差和方差的模拟

是所有的数据都符合这个方程,注意这些都是未知的,在这是按照这个方程来创造的一些数据,要知道一个数据集来计算偏差和误差,按照图上步骤。

假设有一个数据总体,其真实模型为一个一元二次的方程:y=x-,这些都是未知的。已知一个数据集,计算偏差和误差。

基本步骤:

准备一个测试集(其值为真实值),选其中一个样本计算偏差和误差

从已知数据集中抽样得到样本 D

使用该样本进行复杂度不同的模型的训练,此处选择了从0次到3次四种模型进行训练

每一个模型都作用于测试集中的指定样本,得到预测值

是否达到预先设置的循环次数

对指定样本计算 Bias、Variance

绘图会得到下图结果,横坐标是模型复杂程度逐渐增加,纵坐标是错误率。红色的线表示的是偏差,模型越复杂偏差越小;蓝色的是方差,模型越复杂方差越大;橙色的是 total error 所有的误差,可以看到 total error 就在模型复杂程度为2的时候,实际上和再造数的真实的逻辑值是一致的。

image.png

相关文章
|
双11
29 岁成为阿里巴巴P8,工作前5年完成晋升3连跳,他如何做到?
泡泡是我的好朋友。今年31岁,毕业后就进了阿里巴巴,工作五年内从P4晋升至 P6、P7、P8。
5458 0
|
人工智能 JSON API
阿里云文档智能 & RAG解决方案:提升AI大模型业务理解与应用
阿里云推出的文档智能 & RAG解决方案,旨在通过先进的文档解析技术和检索增强生成(RAG)方法,显著提升人工智能大模型在业务场景中的应用效果。该方案通过文档智能(Document Mind)技术将非结构化文档内容转换为结构化数据,提取文档的层级树、样式和版面信息,并输出为Markdown和Json格式,为RAG提供语义分块策略。这一过程不仅解决了文档内容解析错误和切块丢失语义信息的问题,还优化了输出LLM友好的Markdown信息。方案的优势在于其多格式支持能力,能够处理包括Office文档、PDF、Html、图片在内的主流文件类型,返回文档的样式、版面信息和层级树结构。
615 2
|
机器学习/深度学习 数据采集 监控
算法金 | 选择最佳机器学习模型的 10 步指南
许多刚入门的学习者也面临着相似的挑战,特别是在项目启动初期的方向确定和结构规划上。本文意在提供一份全面指南,助你以正确的方法开展项目。 遵循本文提供的每一步至关重要(虽有少数例外)。就像不做饭或点餐就无法享用美食一样,不亲自动手构建模型,就无法实现模型部署。
511 7
算法金 | 选择最佳机器学习模型的 10 步指南
|
SQL 分布式计算 Java
【赵渝强老师】Hive的体系架构
Hive是基于Hadoop的数据仓库平台,提供SQL-like的HQL语言进行数据分析,无需编写复杂的Java代码。Hive支持丰富的数据模型,可将SQL语句转换为MapReduce任务在Yarn上运行,底层依赖HDFS存储数据。Hive可通过CLI、JDBC和Web界面执行SQL查询。
551 2
|
Ubuntu Linux 开发工具
升级openssh前安装zlib报异常configure aborting
【8月更文挑战第22天】当升级OpenSSH前安装zlib遇到“configure aborting”异常,可尝试:1) 检查并确保所需依赖项(如gcc、make)已安装且版本兼容;2) 核实环境变量(如`PATH`, `LD_LIBRARY_PATH`)正确无误;3) 确认zlib版本与系统架构及OS版本匹配;4) 手动配置编译参数(如`--prefix`, `--with-pic`);5) 仔细审查configure脚本输出的错误信息;6) 在相关社区寻求帮助或查阅官方文档。遵循上述步骤有助于解决安装问题,顺利完成OpenSSH升级。
504 8
|
存储 监控 安全
【亮剑】指导初学者如何搭建和使用网络视频监控系统。
【4月更文挑战第30天】本文指导初学者如何搭建和使用网络视频监控系统。核心设备包括摄像头(如固定、PTZ、多目、夜视)、存储选项(NVR、DVR、云存储)及网络交换机等。安装配置步骤涉及规划布局、安装摄像头、设置存储设备和软件配置。实时监控包括实时查看、接收警报和录像回放。理解设备功能、合理布局并细心操作,就能建立稳定监控体系。随着技术进步,未来监控系统将更智能、高效,保障安全。
1645 0
|
存储 芯片
stm32f407探索者开发板(三)——GPIO工作原理(内部结构说明、八种输入输出分析、GPIO寄存器说明)(上)
stm32f407探索者开发板(三)——GPIO工作原理(内部结构说明、八种输入输出分析、GPIO寄存器说明)(上)
1492 0
stm32f407探索者开发板(三)——GPIO工作原理(内部结构说明、八种输入输出分析、GPIO寄存器说明)(上)
|
安全 Linux
如何查看Linux服务器的CPU频率?底层原理是什么?
如何查看Linux服务器的CPU频率?底层原理是什么?
2020 0
|
机器学习/深度学习 传感器 算法
【WSN定位】基于chan、taylor算法实现移动基站无源定位附matlab代码
【WSN定位】基于chan、taylor算法实现移动基站无源定位附matlab代码
|
存储 缓存 前端开发
微机原理之CPU架构详解
微处理器主要可以分为三类: 1. 通用高性能微处理器(通用CPU) 通用处理器追求高性能,它们用于运行通用软件,配备完备、复杂的操作系统。 通用微处理器一般指的是服务器用和桌面计算用的CPU芯片。目前,Intel 的CPU和其兼容产品统治着微型计算机的大半江山,这类微处理器主要采用x86构架的CISC(Complex Instruction Set Comouter)指令系统,同时,IBM、HP (COMPAO)等公司也有使用RISC指令系统的微处理器。 传统上,实现高性能的方法主要是开发指令级并行性(ILP)。以Intel x86为代表的CISC体系
998 0
微机原理之CPU架构详解