当前位置: 首页 > article >正文

【机器学习及深度学习】机器学习模型的误差:偏差、方差及噪声

机器学习模型的误差分析

    • V1.0
    • 机器学习模型的衡量准则
    • 概念引入
    • 机器学习模型误差分析
    • 误差出现的原因及消除

V1.0

机器学习模型的衡量准则

衡量机器学习模型的好坏可以考虑以下几个方面:

  • 偏差(Bias)
    在充分训练的情况下,机器学习模型是否能够较好地拟合训练数据,以反映真实规律。

    这些问题可以被称为模型的能力,衡量这一问题的指标称为偏差(Bias)。

  • 方差(Variance)
    在充分训练的情况下,不同的机器学习模型对不同训练数据集敏感程度不同。某些机器学习模型使用不同的训练数据进行训练,所得到的模型的输出结果较为稳定。而某些机器学习模型使用不同的训练数据进行训练,所得到的模型的输出结果不稳定,有较大波动,即对不同训练数据的鲁棒程度较低。

    衡量机器学习对训练数据的鲁棒程度这一问题的指标称为方差(Variance)。

  • 噪声(Noise)
    机器学习模型是为了拟合训练数据,以达到反映真实数据规律的功能。在实际情况中,采集到的训练数据往往不等于真实数据,训练数据往往会包含随机波动,因此会对模型的结果造成一定的误差。训练数据的随机波动往往是因为测量方法限制、测量精度限制、标注错误等而产生的。

    衡量训练数据中真实规律数据以外的随机扰动的指标称为噪声(Noise)。

概念引入

为了对机器学习模型的误差进行分析,需要明确以下几个概念

  • f ^ ( x ) \space\hat{f}(x)\space  f^(x) 数据预测函数(Estimated function)
    数据预测函数 f ^ ( x ) \space\hat{f}(x)\space  f^(x) 是通过训练过程得到的机器学习模型,使用该模型对输入数据进行预测。
    同样结构的机器学习模型,使用不同的训练集和初始值以及训练方法进行训练,应该会得到有差异的结果。因此对预测函数的输出结果求期望值 E ( f ^ ( x ) ) \space E(\hat{f}(x))\space  E(f^(x)) 是有意义的,该期望值能够反映不同训练条件下,模型结果的平均水平。

  • y \space y\space  y 观测值(Observed Value)
    使用观测手段观测所得到的数据,即训练时模型使用的实际数据。观测值是包含噪声的真实数据,由于测量方法限制、测量精度限制、标注错误等原因会和真实值 f ( x ) \space f(x)\space  f(x) 有偏差。

    观测值 y \space y\space  y 与真实函数 f ( x ) \space f(x)\space  f(x) 的关系如下:
    y = f ( x ) + ϵ y=f(x)+\epsilon y=f(x)+ϵ

    其中 ϵ \space \epsilon\space  ϵ 是噪声,噪声的方差为 V a r ( ϵ ) = σ 2 \space{Var(\epsilon)}=\sigma^2  Var(ϵ)=σ2

  • f ( x ) \space f(x)\space  f(x) 真实函数(True Function)
    真实函数 f ( x ) \space f(x)\space  f(x) 反映问题的数据的客观真实规律,具体来说,即反映真实的数据输入到输出的映射规律,是理想的不包含噪声的。采集的训练数据往往是由真实数据及随机扰动的噪声 ϵ \space \epsilon\space  ϵ 两部分组成的。

机器学习模型误差分析

机器学习模型误差可以分解为偏差、方差和噪声3个部分,公式如下:
E [ ( f ^ ( x ) − y ) 2 ] = Bias 2 ( f ^ ( x ) ) ⏟ 偏差 + Var ( f ^ ( x ) ) ⏟ 方差 + σ 2 ⏟ 噪声 E[(\hat{f}(x)-y)^2]=\underbrace{\text{Bias}^2(\hat{f}(x))}_{偏差}+\underbrace{\text{Var}(\hat{f}(x))}_{方差}+\underbrace{\sigma^2}_{噪声} E[(f^(x)y)2]=偏差 Bias2(f^(x))+方差 Var(f^(x))+噪声 σ2
机器学习的误差分析公式,在满足噪声独立性、零均值噪声和模型针对多个训练集求期望时,公式是严谨的。这部分内容更加复杂,本文不进行探讨,可以自行寻找资料研究。

  • 偏差(Bias)
    偏差反映了多次训练模型预测结果与真实结果之间的系统性误差。公式如下:
    B i a s ( f ^ ( x ) ) = E [ f ^ ( x ) ] − f ( x ) Bias(\hat{f}(x))=E[\hat{f}(x)]-f(x) Bias(f^(x))=E[f^(x)]f(x)
    公式理解:偏差即为预测模型的预测结果的期望与真实函数预测结果的差值。

    偏差反映了在充分训练的情况下模型结构的能力。
    偏差越小,说明模型拟合能力越强,更适用于该种问题。偏差越小,也有可能是过拟合的原因,此时通常会偏差小而方差大。偏差越大,说明预测模型的预测结果的系统性偏离了要拟合的训练数据,无法有效反应真实规律。

  • 方差(Variance)
    方差反映了模型对不同的训练数据是否鲁棒。训练数据的随机波动会对模型训练结果产生影响。方差的公式如下:
    V a r ( f ^ ( x ) ) = E [ ( f ^ ( x ) − E [ f ^ ( x ) ] ) 2 ] Var(\hat{f}(x))=E[(\hat{f}(x)-E[\hat{f}(x)])^2] Var(f^(x))=E[(f^(x)E[f^(x)])2]

    公式理解:方差为各个训练集训练结果 f ^ ( x ) \space \hat{f}(x)\space  f^(x) 分别减去所有预测结果的期望值 E [ f ^ ( x ) ] \space E[\hat{f}(x)]  E[f^(x)],每个差值 ( f ^ ( x ) − E [ f ^ ( x ) ] ) \space (\hat{f}(x)-E[\hat{f}(x)])\space  (f^(x)E[f^(x)]) 平方后求期望,即正常求方差的过程。

    方差反映了模型对不同训练数据的敏感程度。方差高,同样的训练程度,不同的训练集训练出的机器学习模型的预测结果差异大。这通常是由于模型训练发生了过拟合,模型过多的拟合了训练数据中的噪声,造成其泛化能力下降。低方差的情况下,不同训练集训练出的模型预测结果更稳定。

  • 噪声(Noise)
    噪声是由于训练数据本身包含的不可约误差,给机器学习模型造成的误差。由于噪声的存在,导致采集到的训练数据偏离真实数据,这些有噪声的训练数据会限制模型性能的上限。

误差出现的原因及消除

  • 高偏差的原因
    训练不充分,或模型能力不足,可能是模型类型选择不当或模型参数量不够。

    解决方法:
    – 选择更合适的模型。
    – 增加同种模型的复杂度或参数量。如线性回归模型可使用多项式线性回归,或神经网络增加网络层数和参数数量。

  • 高方差的原因
    模型过于复杂,拟合能力过强,导致过度拟合了特定训练数据或噪声,导致其泛化能力差。

    解决方法
    – 可以进行模型简化,例如神经网络减少参数数量。
    – 增加训练数据量。
    – 使用正则化手段,如L1、L2正则化。
    – 使用集成学习方法。

  • 噪声出现的原因
    噪声产生于数据生成过程中的不确定因素,所导致的训练数据的随机扰动。
    噪声产生的原因包括数据采集层面的原因,如摄像头像素噪声,声音采集时的环境噪声等。以及数据标注层面的噪声,例如正负评论类别标注错误等。

    解决方法
    噪声不可能完全消除,可以对数据进行处理尽量降低其影响。
    – 可以使用更加鲁棒的模型。
    – 使用集成学习方法。

http://www.lryc.cn/news/2398573.html

相关文章:

  • 【学习笔记】On the Biology of a Large Language Model
  • 飞腾D2000,麒麟系统V10,docker,ubuntu1804,小白入门喂饭级教程
  • 星野录(博客系统)测试报告
  • 使用 Java 实现一个简单且高效的任务调度框架
  • 2022—2025年:申博之路及硕士阶段总结
  • 项目执行中缺乏灵活应对机制,如何增强适应性?
  • Agentic Workflow是什么?Agentic Workflow会成为下一个AI风口吗?
  • 大模型模型推理的成本过高,如何进行量化或蒸馏优化
  • BUUCTF[极客大挑战 2019]EasySQL 1题解
  • Css样式中设置gap: 12px以后左右出现距离问题解析
  • MySQL问题:count(*)与count(1)有什么区别
  • 大模型 提示模板 设计
  • excel表格记账 : 操作单元格进行加减乘除 | Excel中Evaluate函数
  • 20250602在荣品的PRO-RK3566开发板的Android13下的uboot启动阶段配置BOOTDELAY为10s
  • 如何合理设计缓存 Key的命名规范,以避免在共享 Redis 或跨服务场景下的冲突?
  • Trae CN IDE自动生成注释功能测试与效率提升全解析
  • 让AI弹琴作曲不再是梦:Python+深度学习玩转自动化音乐创作
  • C++概率论算法详解:理论基础与实践应用
  • ssh登录wsl2
  • 黑马Java面试笔记之 消息中间件篇(Kafka)
  • LeetCode - 234. 回文链表
  • PYTHON通过VOSK实现离线听写支持WINDOWSLinux_X86架构
  • nginx+tomcat动静分离、负载均衡
  • SQL进阶之旅 Day 13:CTE与递归查询技术
  • 【PmHub面试篇】Gateway全局过滤器统计接口调用耗时面试要点解析
  • neo4j 5.19.0两种基于向量进行相似度查询的方式
  • 项目课题——基于ESP32的智能插座
  • 华为云Flexus+DeepSeek征文|利用华为云 Flexus 云服务一键部署 Dify 平台开发文本转语音助手全流程实践
  • ck-editor5的研究 (7):自定义配置 CKeditor5 的 toolbar 工具栏
  • MPLS-EVPN笔记详述