有监督学习中,预测误差的来源主要有两部分,分别为 bias  与 variance,模型的性能取决于 bias 与 variance 的 tradeoff ,理解 bias 与 variance 有助于我们诊断模型的错误,避免 over-fitting 或者 under-fitting.

在统计与机器学习领域权衡 Bias  与 Variance 是一项重要的任务,因为他可以使得用有限训练数据训练得到的模型更好的范化到更多的数据集上,监督学习中的误差来源主要为 Bias 与 Variance,接下来来看误差来源的推导。

我们知道,同样的算法在不同的数据集上得到的模型结果很可能不同,尽管数据集来自于同一个分部。对于观测数据 $X$ 以及待预测的变量 $Y$ ,假设两者服从 $Y = f(X) + \varepsilon$ ,$\varepsilon$ 为噪声,其服从的$N(0,\delta_{\varepsilon }^2)$ ,预测任务中需要得到 $Y$ 值,首先在数据集 $D$ 上通过算法学习一个近似 $f(X)$ 的模型 $\hat{f}(X)$ 来预测得到 $X$ 的输出。给定 $X$ 一个观测值 $x$ ,待预测变量 $y = f(x) +\varepsilon$ 。

  • 对于样本数量相同的不同训练集模型 $\hat{f}(x)$ 的期望输出为: $E\hat{f}(x)$
  • 对于样本数量相同的不同训练集模型产生的方差为:$E[\hat{f}(x) - E\hat{f}(x)]^2$

将模型的误差分解,采用均方损失,模型 $\hat{f}(X)$ 在点 $x$ 的整体预测误差为真实值与模型预测值之间的误差:\[Err(x) = E[(y - \hat{f}(x))^2]\] 这个式子其实等价于:

\[Err(x) = [E \hat{f}(x) –f(x)]^2 +E[\hat{f}(x) - E\hat{f}(x)]^2 + \delta_{\varepsilon }^2\]

——————————————————————————————————————————————————————————————

这里为推倒过程,先回忆几个公式 :$Var[X] = E[X^2]-E^2[X]$ , 且由于函数 $f(X)$ 是确定的,所以 $E[f(x)] = f(x)$,且有 $\varepsilon \sim N(0,\delta_{\varepsilon }^2)$ ,再结合 $y = f(x)  + \varepsilon$ 可以得到:

\[E[y] = E[f(x) + \varepsilon] = E[f(x)]+0 =E[f(x)] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \tag{1} \]

\[Var[y] = E[(y-E[y])^2] = E[(f(x) + \varepsilon –f(x))^2] = E[\varepsilon^2] = \delta_{\varepsilon }^2  \tag{2}\]

\begin{aligned}
Err(x) &= E[(y - \hat{f}(x))^2] \\
&= E[y^2 - 2y \hat{f}(x) + \hat{f}^2(x)] \\
&= E[y^2] - E[2y \hat{f}(x)] + E[\hat{f}^2(x)] \\
&= E[y^2] \mathbf{- E^2[y] +E^2[y]} - 2E[y]E[\hat{f}(x)] + E[\hat{f}^2(x)] \mathbf{ -E^2[\hat{f}(x)]+ E^2[\hat{f}(x)]} \\
& \ \ \ \ \ \ \mathbf{Combined \ with\ the\ above\ equations \ (1) \ (2).} \\
&= \color{Blue} {E^2[\hat{f}(x)] - 2f(x)E[\hat{f}(x)] +f^2(x)} +\color{Green} {E[\hat{f}^2(x)] -E^2[\hat{f}(x)]} + \color{Red} {E[y^2] - E^2[y]} \\
& \ \ \ \ \ \ \mathbf{The \ last\ two \ terms \ based \ on }: Var[X] = E[X^2] -E^2[X] \\
&= [E[\hat{f}(x)]-f(x)]^2+E[(\hat{f}(x)-E\hat{f}(x))^2]+Var[y] \\
&= E^2[\hat{f}(x)] +Var[\hat{f}(x)] +\delta_{\varepsilon}^2 \\
\end{aligned}

——————————————————————————————————————————————————————————————

$E \hat{f}(x) –f(x)$ 即为 Bias ,$E[\hat{f}(x) - E\hat{f}(x)]^2$ 为 Variance , $\delta_{\varepsilon}^2$  即为模型无法避免的 Noise ,也可称为 Irreducible  Error ,所以现在对于一个预测模型的误差可以 分为如下几部分:

\[Error = Bias^2 +Variance + Noise \]

对于预测模型问题,如果我们能够获得所有可能的数据集合,并在这个数据集合上将 Error 最小化,这样学习到的模型就可以称之为“真实模型”,当然,我们是无论如何都不能获得并训练所有可能的数据的,所以“真实模型”肯定存在,但无法获得,我们的最终目标就是去学习一个模型使其更加接近这个真实模型。为了在有限的训练数据集上达到这个目标,就要使 Error 最小了,Error 分为 Bias 、 Variance 与 Noise :

  • Bias:度量了学习算法的期望输出与真实结果的偏离程度, 刻画了算法的拟合能力,Bias 偏高表示预测函数与真实结果差异很大。
  • Variance:则代表“同样大小的不同的训练数据集训练出的模型”与“这些模型的期望输出值”之间的差异。训练集变化导致性能变化, Variance 偏高表示模型很不稳定。
  • Noise:刻画了当前任务任何算法所能达到的期望泛化误差的下界,即刻画了问题本身的难度。

由于 Bias 是无法避免的 所以要得到好的模型,就需要低 Bias 与低 Variance 下图给出一个 Bias 与 Variance 的示意图,明显可以看到低 Bias 与低 Variance 次次会命中靶心,而低 Bias 高 Variance 取均值后才会大多命中靶心,其他情况全打歪了。

低 Bias 与低 Variance 才会得到低 Error,但低 Bias 与低 Variance 往往是不能兼得的。如果要降低模型的 Bias,就一定程度上会提高模型的 Variance,反之亦然。这里以 K-NN 为例,看一些 K-NN 中 Bias 与 Variance 与其参数 K 的关系,在 K-NN 中,误差形式如下:

\[Err(x)=\underbrace{\left [f(x)-\frac{1}{k}\sum_{i=1}^kf(x_i) \right ]^2}_{\mathbf{Bias^2}} + \underbrace{ \frac{\delta^2}{k} }_{\mathbf{Var}}+ \underbrace{\delta^2}_{\mathbf{Noise}}\]

这里 $x_1,x_2,…x_k$ 是 $x$ 在训练数据集中最近的 $k$ 个邻居 ,当 $K$ 取值很小时,$\frac{1}{k}\sum_{i=1}^kf(x_i)$  与 $f(x)$ 十分接近,所以 Bias 很低,但第二项 Variance 很大,随着 $K$ 的增大,Bias 明显会增大,但 Variance 会减小,这便是 Bias 与 Variance 之间的一个很微妙的关系。 为什么这样呢?

因为预测模型试图用有限的训练样本上去得到一个用来预测全数据集的模型,为了降低模型的误差率,就要尽量使模型在训练数据集上更加“准确”,这样做往往会增加 Model Complexity ,但却忽略模型在全数据集的泛化能力,模型在训练数据集的Bias 减少了,但是对于训练数据集中没有出现的数据,模型对其预测就会很不稳定,这样就会造成高 Variance ,这也就是常说的 over-fitting ,为了避免 over-fitting,就不能完全依赖于有限的训练数据,这时可以加入一些先验信息,先验信息在模型求解的过程中会增加一些限制,提高模型的稳定程度,同时减少 Model Complexity,进而可以降低 Variance,但是由于“不信任”训练数据,会使模型的 Bias 增大,或者训练不足时,模型拟合能力不够,训练数据的扰动不足以使模型拟合其真实情况,这时候 Bias 太大,模型对训练数据的预测能力就会下降,这便是 under-fitting 了,所以需要要 Bias 与 Variance 之间 寻找一个 tradeoff。

因为 Noise 是不可避免的,这里忽略 Noise ,根据 Bias 、Variance 与 Model  Complexity 之间的关系,可以得到下图左所示的图形,该图表示在训练数据上几个量之间的关系,为了找到最优的模型,

在训练集中 Bias 下降与 Variance 上升的过程中来找到所谓的  tradeoff ,这时的 Model Complexity 是适中的,找到了这个 tradeoff ,在全数据集或者预测集上的预测集上的表现如下图右所示,所以 Bias 与 Variance 需要适中,才会得到在训练集与测试集误差都小的模型。

最后谈一下 K-fold Cross Validation 与权衡 Bais-Variance 之间的关系。这个理解其实很简单,先看对于数据的划分“

每次留出一个 fold 用来做“验证集”来计算误差,当 K 设置很大时,每个 fold 都会有很少的数据,小数据集更容易有噪音,所以小的数据集会有大的 Bias ,同时 K 个 fold 代表 K 组数据分别训练一个模型,求平均后 Variance 会很小;相反如果 K 很大,每个 fold 数据相对来说还是很多的,所以 Bias 相对较小,但是由于总模型数较小,所以 Variance 还是比较大的。

参考:

http://scott.fortmann-roe.com/docs/BiasVariance.html#fn:1

http://www.zhihu.com/question/27068705/answer/35151681

https://en.m.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff#K-nearest_neighbors

理解 Bias 与 Variance 之间的权衡的更多相关文章

  1. [转]理解 Bias 与 Variance 之间的权衡----------bias variance tradeoff

    有监督学习中,预测误差的来源主要有两部分,分别为 bias 与 variance,模型的性能取决于 bias 与 variance 的 tradeoff ,理解 bias 与 variance 有助于 ...

  2. bias、variance与拟合之间的关系

    Error = Bias^2 + Variance+Noise 误差的原因: 1.Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,即算法本身的拟合能力. 2.Variance ...

  3. week6:Diagnosing Bias vs. Variance难点记录

    1.Bias vs. Variance是什么概念? 图形上的理解:https://www.zhihu.com/question/27068705          http://blog.csdn.n ...

  4. 算法岗面试题:模型的bias和variance是什么?用随机森林举例

    校招在即,准备准备一些面试可能会用到的东西吧.希望这次面试不会被挂. 基本概念 说到机器学习模型的误差,主要就是bias和variance. Bias:如果一个模型的训练错误大,然后验证错误和训练错误 ...

  5. Bias and Variance 偏置和方差

    偏置和方差 参考资料:http://scott.fortmann-roe.com/docs/BiasVariance.html http://www.cnblogs.com/kemaswill/ Bi ...

  6. 机器学习中学习曲线的 bias vs variance 以及 数据量m

    关于偏差.方差以及学习曲线为代表的诊断法: 在评估假设函数时,我们习惯将整个样本按照6:2:2的比例分割:60%训练集training set.20%交叉验证集cross validation set ...

  7. Bias and Variance

    以下内容参考 cousera 吴恩达 机器学习课程 1. Bias 和 Variance 的定义 Bias and Variance 对于改进算法具有很大的帮助作用,在bias和Variance的指引 ...

  8. 机器学习模型 bias 和 variance 的直观判断

    假设我们已经训练得到 一个模型,那么我们怎么直观判断这个 模型的 bias 和 variance? 直观方法: 如果模型的 训练错误 比较大,并且 验证错误 和 训练错误 差不多一样,都比较大,我们就 ...

  9. 深入理解 sudo 与 su 之间的区别【转】

    深入理解 sudo 与 su 之间的区别 两个命令的最大区别是: sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码.另外一个区别是其默认行为.sudo 命令只允许使用提升 ...

随机推荐

  1. ExtJs之addManagedListener

    <!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...

  2. hdu 4759 Poker Shuffle 二进制

    思路:主要是二进制的运用. 为了方便从0开始,首先看下右移一下,高位异或1的规律:(可以从右往左一列一列看) 000(0) -> 100(4) -> 110(6) -> 111(7) ...

  3. Good Bye 2015 C. New Year and Domino 二维前缀

    C. New Year and Domino   They say "years are like dominoes, tumbling one after the other". ...

  4. hdu 4159 Indomie (DP,数学概率)

    推出数学公式: #include<stdio.h> #include<string.h> __int64 C(int m,int n) { __int64 tmp=; if(m ...

  5. Eclipse调试Java的十个技巧

      先提三点 不要使用System.out.println()作为调试工具 启用所有组件的详细的日志记录级别 使用一个日志分析器来阅读日志   1.条件断点 想象一下我们平时如何添加断点,通常的做法是 ...

  6. android 检测工具: drozer

    1. 下载 https://www.mwrinfosecurity.com/products/drozer/community-edition/ 可以下载windows的也可以下载linux的 2. ...

  7. mysql 常用命令(备忘)

    1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> CREATE DATABASE ...

  8. delphi中的Label控件背景透明

    Label1.Transparent:=true;你在它的属性窗口把它的Transparent属性改成TRUE就行了 来自为知笔记(Wiz)

  9. MakeObjectInstance的前世今生(关键是ECX的何时入栈以及Self指针何时存储的)

    高手们的文章有很大启发,但是总有些小错,也有没交代清楚的,以下是我的理解: 编译器编译MainWndProc的时候,它是一个正常Delphi普通函数,MakeObjectInstance对它做变换是运 ...

  10. wordpress模块无法拖拽/显示选项点击无反应

    问题:wordpress模块无法拖拽/显示选项点击无反应,还有编辑器的全屏什么的都用不了,按F12查看了console,提示很多jQuery is not defined... 解决方法:把wp-in ...