机器学习之理解Bias-Variance Tradeoff

简介: 这篇内容讨论了机器学习中的Bias-Variance Tradeoff概念。Bias代表模型预测期望值与真实值的差距,高Bias(欠拟合)可能源于模型过于简单。Variance则是模型预测在不同数据集上的变异性,高Variance(过拟合)可能因模型过于复杂,过度拟合噪声。理想的模型应在Bias和Variance之间找到平衡,以降低测试误差。文章通过多项式拟合正弦曲线的例子说明了如何在不同复杂度模型间进行权衡。

Snipaste_2024-04-08_14-36-12.jpg


1 引言

在机器学习中,我们经常会遇到模型过拟合和欠拟合的现象, 二者背后就是Bias-Variance Tradeoff.

今天,我们将详细介绍什么是Bias-Variance Tradeoff,它从何而来,为什么需要考虑,以及可以做些什么来改进我们的机器学习模型。

好的,闲话少说,我们直接开始吧. :)

2 问题引入

机器学习系统的实质思想为从收集的样本数据中对数据的潜在分布进行建模。如果我们采样了足够多的准确样本,则可以很容易地拟合出数据的分布,如下所示。


将上述过程进行抽象, 即对于样本 (x,y) , 我们估计这样的函数 f.

但问题是在现实生活中收集的样本通常是含有噪声的。这种噪声的来源可能是很多因素,例如量化、传感器的限制等。


因此我们无法获得分布的确切输出,而是向其中添加了噪声因素。所以现在的问题转变为估计函数 f,给定输入 x,及其相应的噪声输出 y。


我们的目标是有效地估计函数 f 并滤除噪声。现在,由于我们对添加到样本输出中的噪声知之甚少,如果处理不当,机器学习系统最终会将输入 x 映射到含噪声输出 y(称为过拟合)。此映射不是函数 f 的准确表示,并且会在其他测试数据上产生更高的误差。

Bias-Variance Tradeoff告诉我们,在存在噪声的情况下,我们的底层系统 (f(x)) 应该有多复杂,才能相当准确地表示我们数据集的分布。

3 什么是Bias和 Variance?


Bias和Variance都可以视为机器学习系统中的错误来源。

假设我们有一个训练数据集 D,它由采用样本(x,y)组成,该数据集的潜在分布服从y=f(x)+e.

我们希望从数据集D中构建模型  ,以使得训练标签和预测值之间的误差最小


.

3.1 Bias定义

Bias被称为模型预测期望值

和gt值f(x) 之间的误差


对从不同数据子集 D_i 预测的函数执行求期望操作 Snipaste_2024-04-08_14-37-45.jpg

简而言之,从潜在分布中采样 n 个不同的数据集 D_i(每个数据集由多个 (x,y) 对组成),并估计 n 个不同的函数 f_i 。然后


通过估计函数的Bias我们可以知道基础模型预测的能力。一般而言,较简单的模型无法捕捉高维数据的复杂性,因此它们具有更高的偏差。

例如,您有一个从正弦曲线采样的数据集,并且您正尝试使用 1 次多项式来估计它,即通过函数 y = ax+b。无论您采样多少个数据点 (x,y),直线永远无法捕捉到正弦曲线的趋势。因此,对于正弦曲线,直线模型具有非常高的偏差。

另一方面,假设您将多项式的次数增加到 3,即现在通过 y = ax² +bx+c 对其进行估计。该多项式的性能将比前一个好得多,因此在估计正弦曲线时,3 次多项式的偏差比 1 次多项式小得多。


模型的BIas很高一般来说与以下因素有关:

  • 欠拟合——无法捕捉数据潜在分布
  • 训练和测试数据集上错误很高
  • 过于简化的模型

3.2 Variance定义

方差(Variance)是指给定数据集的模型预测的平均离散程度。

Snipaste_2024-04-08_14-38-13.jpg

通过估计函数的方差可以知道该函数能够根据数据集的变化进行调整的程度。方差越大,函数对不断变化的数据集就越稳健。

例如,假设您训练两个不同的多项式来拟合从正弦曲线采样的数据,即 1 次和 3 次多项式。您在三个不同的数据集(D1、D2 和 D3)上训练这两个多项式。下图显示了多项式次数和数据集的估计函数。


可以看出,1 次多项式在三个不同的数据集上变化不大(因此方差较低),而 3 次多项式的估计彼此差异很大(因此方差较高)。

模型的Variance高一般来说与以下因素有关:

  • 过拟合——对数据集中的噪声也进行了建模
  • 更加强调尽可能接近地拟合每个数据点
  • 训练数据错误率低,但测试数据错误率高
  • 过于复杂的模型和稀疏的训练数据。

3.3 小结

一般来说,如果你增加深度学习系统的复杂度,系统的Bias会减少,而方差(Variance)会增加。它们此消彼涨。你不能同时减少它们, 这一点将是偏差-方差权衡的基础。

4 Bias-Variance 权衡

机器学习模型的预期测试误差可以通过以下公式分解为其偏差和方差:

一个完整的推导可以在这里找到。上述中是由于数据中的噪声引起的误差,与模型的选择无关.

因此,为了减少估计误差,我们需要同时减少偏差(Bias)和方差(Variance)。

我们必须选择一个模型(在我们的示例中是多项式的次数),以最小化误差的方式来权衡偏差和方差。在过拟合和欠拟合的情况下,测试误差都可能很高。因此,我们需要偏差和方差的最佳平衡,以便我们的模型既不会过拟合也不会欠拟合我们的数据。

考虑之前的示例,我们使用多项式从噪声采样数据 D 中估计正弦曲线。我们可以从各种不同程度的多项式中进行选择。在理想情况下,我们可以得到足够多的无噪声数据(噪声 = 0),泰勒级数展开告诉我们,如果我们继续增加多项式,那么我们的预测将无限逼近我们的正弦曲线。

但是在有噪声和有限数据集的情况下,增加多项式的次数也会开始拟合数据中的噪声,并且在测试数据集上表现不佳。因此,我们需要找到在我们的数据集上效果最好的多项式的最优次数(即测试误差最小化)。

Snipaste_2024-04-08_14-39-21.jpg

上图绘制了不同多项式的正弦曲线估计。 1 次多项式太简单而无法捕捉正弦曲线,而 11 次多项式足够复杂,甚至可以拟合整体噪声(因此偏离了我们试图估计的实际正弦曲线)。

为了找到估计正弦曲线的最佳多项式,我们找到测试数据集的多项式(1、3、5、7、9 和 11 次)的偏差和方差。该图绘制如下。

可以看出,在存在噪声的情况下,7 次多项式为我们的正弦曲线提供了最佳拟合。该多项式的选择取决于

  • 样本数据中噪声的数量和性质
  • 训练数据集的大小

假设采样的数据集没有噪音。对这个干净的数据集运行相同的实验给出了下图:

上图符合正弦曲线的泰勒级数展开,表明多项式的次数越高,近似效果越好。完整的代码附在下面。

5 结论

通过上文分析,我们可以得到以下结论:

对于干净且足够大的数据集:

  • 模型复杂度越大,估计误差越小,近似越好。
  • 模型复杂度越大,偏差(Bias)越小
  • 模型复杂度越大,方差(Variance)越小

对于嘈杂的数据集:

  • 更高的模型复杂度并不意味着更低的估计误差
  • 模型复杂度越大,偏差(Bias)越小
  • 模型复杂度越大,方差(Variance)越大

由于现实世界中的数据集几乎总是含有噪声且有限的,因此我们需要找到机器学习模型的最佳复杂度,使我们在数据集上的误差最小。更高的复杂性并不能保证模型是最适合的。

6 总结

本文重点介绍了机器学习领域中 Bias-Variance Tradeoff的由来和相关应用,并给出了在理性数据集下和含噪声数据集下Bias和Variance的一些结论, 并提供了完整代码实现.


相关文章
|
2月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
117 4
|
16天前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
40 2
|
2月前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
52 1
|
2月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
2月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
105 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
|
2月前
|
机器学习/深度学习 算法
深入探索机器学习中的决策树算法
深入探索机器学习中的决策树算法
42 0
|
2月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
39 0
|
3月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)