偏差方差分解

偏差方差分解 (误差分解)

先引入一个问题: Machine Learning 与 Curve Fitting 的区别是什么?1

Curve Fitting 是使用所有的数据拟合一条曲线; 而 Machine Learning 是采用真实世界中采样的一小部分数据,并且我们希望我们的模型能够对于未知数据有不错的泛化性能.因此涉及到Bias-Variance的权衡.

学习算法的预测误差, 或者说泛化误差(generalization error)可以分解为三个部分: 偏差(bias), 方差(variance) 和噪声(noise). 在估计学习算法性能的过程中, 我们主要关注偏差与方差. 因为噪声属于不可约减的误差 (irreducible error).

下面来用公式推导泛化误差与偏差与方差, 噪声之间的关系.

符号 涵义
\(\mathbf{x}\) 测试样本
\(D\) 数据集
\(y_{D}\) \(\mathbf{x}\) 在数据集中的标记
\(y\) \(\mathbf{x}\) 的真实标记
\(f\) 训练集 \(D\) 学得的模型
\(f(\mathbf{x}; D)\) 由训练集 \(D\) 学得的模型 \(f\) 对 \(\mathbf{x}\) 的预测输出
\(\bar{f}(\mathbf{x})\) 模型 \(f\) 对 \(\mathbf{x}\) 的 期望预测 输出

泛化误差

以回归任务为例, 学习算法的平方预测误差期望为:

\begin{equation}
Err(\mathbf{x}) = E\left[\left( y - f(\mathbf{x}; D) \right)^2\right]
\end{equation}

方差

在一个训练集 \(D\) 上模型 \(f\) 对测试样本 \(\mathbf{x}\) 的预测输出为 \(f(\mathbf{x}; D)\), 那么学习算法 \(f\) 对测试样本 \(\mathbf{x}\) 的 期望预测 为:

\begin{equation}
\overline{f}(\mathbf{x}) = E_D\left[f\left(\mathbf{x}; D\right)\right]
\end{equation}

上面的期望预测也就是针对 不同 数据集 \(D\), \(f\) 对 \(\mathbf{x}\) 的预测值取其期望, 也被叫做 average predicted.

使用样本数相同的不同训练集产生的方差为:

\begin{equation}
\rm{var}(\mathbf{x}) = E_D\left[\left( f(\mathbf{x}; D) - \overline{f}(\mathbf{x}) \right)^2\right]
\end{equation}

噪声

噪声为真实标记与数据集中的实际标记间的偏差:

\begin{equation}
\varepsilon^2 = E_D\left[ (y_D - y)^2 \right]
\end{equation}

偏差

期望预测与真实标记的误差称为偏差(bias), 为了方便起见, 我们直接取偏差的平方:

\begin{equation}
\rm{bias}^2(\mathbf{x}) = \left( \overline{f}(\mathbf{x}) - y \right)^2
\end{equation}

对算法的期望泛化误差进行分解:

上面的公式2蓝色部分是对上面对应的等价替换, 然后对其展开后, 红色部分刚好为 0.

对最终的推导结果稍作整理:

至此, 继续来看一下偏差, 方差与噪声的含义 3:

偏差、方差、噪声

  1. 偏差:度量了模型的期望预测和真实结果的偏离程度,刻画了模型本身的拟合能力
  2. 方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响
  3. 噪声:表达了当前任务上任何模型所能达到的期望泛化误差的下界,刻画了学习问题本身的难度

偏差-方差窘境(bias-variance dilemma)

为了得到泛化性能好的模型,我们需要使偏差较小,即能充分拟合数据,并且使方差小,使数据扰动产生的影响小。但是偏差和方差在一定程度上是有冲突的,这称作为偏差-方差窘境。

下图给出了在模型训练不足时,拟合能力不够强,训练数据的扰动不足以使学习器产生显著变化,此时偏差主导泛化误差,此时称为欠拟合现象。当随着训练程度加深,模型的拟合能力增强,训练数据的扰动慢慢使得方差主导泛化误差。当训练充足时,模型的拟合能力非常强,数据轻微变化都能导致模型发生变化,如果过分学习训练数据的特点,则会发生过拟合。

  • 针对欠拟合,我们提出集成学习的概念并且对于模型可以控制训练程度,比如神经网络加多隐层,或者决策树增加树深。
    增加模型的迭代次数;更换描述能力更强的模型;生成更多特征供训练使用;降低正则化水平。
  • 针对过拟合,我们需要降低模型的复杂度,提出了正则化惩罚项。
    扩增训练集;减少训练使用的特征的数量;提高正则化水平。

随着模型复杂度的提升, 偏差逐渐减小, 方差逐渐增大. 最佳的模型复杂度是在 Total Error 最小的时候, 该点导数为0. 由于 Err=variance+bias+noise, 所以在拐点处:4

\[
\newcommand{\dif}{\mathop{}\!\mathrm{d}}
\frac{\dif\text{Bias}}{\dif\text{Complexity}} = - \frac{\dif\text{Variance}}{\dif\text{Complexity}}
\]

给出了寻找最优平衡点的数学描述。若模型复杂度大于平衡点,则模型的方差会偏高,模型倾向于过拟合;若模型复杂度小于平衡点,则模型的偏差会偏高,模型倾向于过拟合。

Bias-Variance Tradeoff 理论意义

  • 能够让我们更好地认识模型的复杂度, 指导我们对模型的改进方向.
  • 偏差-方差分解实用价值很有限. 偏差和方差并不能够真正的被计算,因为我们不知道数据的真实分布. 偏置-方差分解依赖于对所有的数据集求平均,而在实际应用中我们只有一个观测数据集。

K折交叉验证与Bias-Variance关系

为什么K-fold Cross Validation中的k值会影响偏差和方差呢?

K折交叉验证重复k次地把数据集分成训练集和测试集,K值越大,每次划分的训练集就越大,估计模型的期望\(E[\hat f]\)就越接近整个数据集的真实模型f,因此模型偏差就越小。 5

参考资料:


  1. http://www.learnopencv.com/bias-variance-tradeoff-in-machine-learning/?
  2. 偏差与方差?
  3. 《机器学习》, 周志华, 2.5 节偏差与方差.?
  4. Understanding the Bias-Variance Tradeoff?
  5. 机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系??

原文地址:https://www.cnblogs.com/makefile/p/bias-var.html

时间: 2024-10-08 16:24:15

偏差方差分解的相关文章

偏差-方差分解

1. 偏差-方差分解是解释学习算法泛化性能的一种重要工具,试图对学习算法的期望泛化误差率(generalization error)进行分解.可以分解为三部分,偏差(bias).方差(variance)和噪声(noise).其中, 偏差:度量了模型的期望值和真实结果的偏离程度,刻画了模型本身的拟合能力 方差:度量了同样大小的训练集的变动所导致的学习性能的变化,刻画了数据扰动所产生的影响. 噪声:表达了当前任务上任何学习算法所能达到的期望防滑误差的下界,刻画了学习问题本身的难度. 2. 泛化误差:

机器学习算法中的偏差-方差权衡(Bias-Variance Tradeoff)

简单的以下面曲线拟合例子来讲: 直线拟合后,相比原来的点偏差最大,最后一个图完全拟合了数据点偏差最小:但是拿第一个直线模型去预测未知数据,可能会相比最后一个模型更准确,因为最后一个模型过拟合了,即第一个模型的方差比最后一个模型小.一般而言高偏差意味着欠拟合,高方差意味着过拟合.他们之间有如下的关系:              本文地址                                            请参考一下三篇文章: 机器学习中的数学(2)-线性回归,偏差.方差权衡 Bi

机器学习理论知识部分--偏差方差平衡(bias-variance tradeoff)

摘要: 1.常见问题 1.1 什么是偏差与方差? 1.2 为什么会产生过拟合,有哪些方法可以预防或克服过拟合? 2.模型选择 3.特征选择 4.特征工程与数据预处理 内容: 1.常见问题 1.1 什么是偏差与方差? 泛化误差(general error)可以分解成偏差(bias)的平方加上方差(variance)加上噪声(noise).偏差度量了学习算法的期望预测和真实结果的偏离程度,刻画了学习算法本身的拟合能力,方差度量了同样大小的训练集的变动所导致的学习性能的变化,刻画了数据扰动所造成的影响

偏差和方差以及偏差方差权衡(Bias Variance Trade off)

当我们在机器学习领域进行模型训练时,出现的误差是如何分类的? 我们首先来看一下,什么叫偏差(Bias),什么叫方差(Variance): 这是一张常见的靶心图 可以看左下角的这一张图,如果我们的目标是打靶子的话,我们所有的点全都完全的偏离了这个中心的位置,那么这种情况就叫做偏差 再看右上角这张图片,我么们的目标是右上角这张图片中心的红色位置,我们射击的点都围绕在这个红色的点的周围,没有大的偏差,但是各个点间过于分散不集中,就是有非常高的方差 我们进行机器学习的过程中,大家可以想象,我们实际要训练

机器学习算法--集成学习

1. 个体和集成 集成学习通过构建并结合多个"个体学习器"来完成学习任务.个体学习器通常由一个现有的学习算法从训练数据产生,若集成中只包含同种类型的个体学习器,称为同质集成:若包含不同类型的个体学习器,为异质集成.同质集成中的个体学习器也成为"基学习器". 如何产生并结合"好而不同"的个体学习器,恰是集成学习研究的核心. 根据个体学习器的生成方式,目前的集成学习方法大致分为两大类: (1)个体学习器间存在强依赖关系,必须串行生成的序列化方法,代表

[笔记]Boosting和Bagging

集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务.集成学习通过将多个学习器进行结合,常可以获得比单一学习器显著优越的泛化性能.这对"弱学习器"尤为明显,因此集成学习的很多理论研究都是针对弱学习器进行的. 要获得好的集成,个体学习器应该"好而不同",即个体学习器要有一定的"准确性",即学习器不能太坏,并且要有"多样性",即学习器之间有差异. 根据个体学习器的生成方式,目前的集成学习方法大致可以

周志华 机器学习 笔记

首先的阶段由卷积层和池化层组成,卷积的节点组织在特征映射块(feature maps)中,每个节点与上一层的feature maps中的局部块通过一系列的权重即过滤器连接.加权和的结果被送到非线性函数中如ReLU.一个feature maps中所有的节点分享相同的过滤器,即共享权重.这种结构的原因是双重的,第一,图像中一个值附近的值是高度相关的,第二,不同区域的值是不相干的.换句话说,一个图像某部分出现的特征会在其他部分出现,因此可以实现权值共享并且检测到相同模式在矩阵的不同部分,这种操作在数学

面试创业公司算法工程师

两轮技术骨干,一轮技术总监,最后CTO,然后hr.总共四轮技术+hr,还是小有收获的. 总体觉得面试问题灵活,难度中和公司业务衔接的知识点结合强.下面说下具体的流程: 一.一面 1.两道代码(时间复杂度) 2.k-means的伪码(提及了EM) 3.项目有挑战的地方,调参 4.讲解word2vec 5.大致谈了下深度学习 6.偏差-方差分解,过拟合和欠拟合的措施 二.二面 1.编代码(动态规划,代码检查以及异常处理非常有必要) 2.logistic回归的损失函数以及讲解 3.避免过拟合的措施,在

机器学习笔记(二)模型评估与选择

2.模型评估与选择 2.1经验误差和过拟合 不同学习算法及其不同参数产生的不同模型,涉及到模型选择的问题,关系到两个指标性,就是经验误差和过拟合. 1)经验误差 错误率(errorrate):分类错误的样本数占样本总数的比例.如果在m个样本中有a个样本分类错误,则错误率E=a/m,相应的,1-a/m称为精度(accuracy),即精度=1-错误率. 误差(error):学习器的实际预测输出和样本的真实输出之间的差异.训练误差或经验误差:学习器在训练集上的误差:泛化误差:学习器在新样本上的误差.