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 预测的函数执行求期望操作
简而言之,从潜在分布中采样 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)是指给定数据集的模型预测的平均离散程度。
通过估计函数的方差可以知道该函数能够根据数据集的变化进行调整的程度。方差越大,函数对不断变化的数据集就越稳健。
例如,假设您训练两个不同的多项式来拟合从正弦曲线采样的数据,即 1 次和 3 次多项式。您在三个不同的数据集(D1、D2 和 D3)上训练这两个多项式。下图显示了多项式次数和数据集的估计函数。
可以看出,1 次多项式在三个不同的数据集上变化不大(因此方差较低),而 3 次多项式的估计彼此差异很大(因此方差较高)。
模型的Variance高一般来说与以下因素有关:
- 过拟合——对数据集中的噪声也进行了建模
- 更加强调尽可能接近地拟合每个数据点
- 训练数据错误率低,但测试数据错误率高
- 过于复杂的模型和稀疏的训练数据。
3.3 小结
一般来说,如果你增加深度学习系统的复杂度,系统的Bias会减少,而方差(Variance)会增加。它们此消彼涨。你不能同时减少它们, 这一点将是偏差-方差权衡的基础。
4 Bias-Variance 权衡
机器学习模型的预期测试误差可以通过以下公式分解为其偏差和方差:
一个完整的推导可以在这里找到。上述中是由于数据中的噪声引起的误差,与模型的选择无关.
因此,为了减少估计误差,我们需要同时减少偏差(Bias)和方差(Variance)。
我们必须选择一个模型(在我们的示例中是多项式的次数),以最小化误差的方式来权衡偏差和方差。在过拟合和欠拟合的情况下,测试误差都可能很高。因此,我们需要偏差和方差的最佳平衡,以便我们的模型既不会过拟合也不会欠拟合我们的数据。
考虑之前的示例,我们使用多项式从噪声采样数据 D 中估计正弦曲线。我们可以从各种不同程度的多项式中进行选择。在理想情况下,我们可以得到足够多的无噪声数据(噪声 = 0),泰勒级数展开告诉我们,如果我们继续增加多项式,那么我们的预测将无限逼近我们的正弦曲线。
但是在有噪声和有限数据集的情况下,增加多项式的次数也会开始拟合数据中的噪声,并且在测试数据集上表现不佳。因此,我们需要找到在我们的数据集上效果最好的多项式的最优次数(即测试误差最小化)。
上图绘制了不同多项式的正弦曲线估计。 1 次多项式太简单而无法捕捉正弦曲线,而 11 次多项式足够复杂,甚至可以拟合整体噪声(因此偏离了我们试图估计的实际正弦曲线)。
为了找到估计正弦曲线的最佳多项式,我们找到测试数据集的多项式(1、3、5、7、9 和 11 次)的偏差和方差。该图绘制如下。
可以看出,在存在噪声的情况下,7 次多项式为我们的正弦曲线提供了最佳拟合。该多项式的选择取决于
- 样本数据中噪声的数量和性质
- 训练数据集的大小
假设采样的数据集没有噪音。对这个干净的数据集运行相同的实验给出了下图:
上图符合正弦曲线的泰勒级数展开,表明多项式的次数越高,近似效果越好。完整的代码附在下面。
5 结论
通过上文分析,我们可以得到以下结论:
对于干净且足够大的数据集:
- 模型复杂度越大,估计误差越小,近似越好。
- 模型复杂度越大,偏差(Bias)越小
- 模型复杂度越大,方差(Variance)越小
对于嘈杂的数据集:
- 更高的模型复杂度并不意味着更低的估计误差
- 模型复杂度越大,偏差(Bias)越小
- 模型复杂度越大,方差(Variance)越大
由于现实世界中的数据集几乎总是含有噪声且有限的,因此我们需要找到机器学习模型的最佳复杂度,使我们在数据集上的误差最小。更高的复杂性并不能保证模型是最适合的。
6 总结
本文重点介绍了机器学习领域中 Bias-Variance Tradeoff的由来和相关应用,并给出了在理性数据集下和含噪声数据集下Bias和Variance的一些结论, 并提供了完整代码实现.