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

首先抛开机器学习的范畴, 从字面上来看待这两个词:

  • 偏差.

    这里的偏指的是 偏离 , 那么它偏离了什么到导致了误差? 潜意识上, 当谈到这个词时, 我们可能会认为它是偏离了某个潜在的 “标准”, 而这里这个 “标准” 也就是真实情况 (ground truth). 在分类任务中, 这个 “标准” 就是真实标签 (label).

  • 方差.

    很多人应该都还记得在统计学中, 一个随机变量的方差描述的是它的离散程度, 也就是该随机变量在其期望值附近的 波动程度 . 取自维基百科一般化的方差定义:

如果 X X X 是一个向量其取值范围在实数空间 R n R^n Rn,并且其每个元素都是一个一维随机变量,我我们就称 X X X 为随机向量。随机向量的方差是一维随机变量方差的自然推广,其定义为 E [ ( X − μ ) ( X − μ ) T ] E[(X-\mu)(X-\mu)^T] E[(X−μ)(X−μ)T],其中 μ = E ( X ) \mu=E(X) μ=E(X), X T X^T XT是 X X X 的转置.

先从下面的靶心图来对方差与偏差有个直观的感受, 我对原图 1 进行了重绘:

假设红色的靶心区域是学习算法完美的正确预测值, 蓝色点为每个数据集所训练出的模型对样本的预测值, 当我们从靶心逐渐向外移动时, 预测效果逐渐变差.

很容易看出有两副图中蓝色点比较集中, 另外两幅中比较分散, 它们描述的是方差的两种情况. 比较集中的属于方差小的, 比较分散的属于方差大的情况.

再从蓝色点与红色靶心区域的位置关系, 靠近红色靶心的属于偏差较小的情况, 远离靶心的属于偏差较大的情况.

有了直观感受以后, 下面来用公式推导泛化误差与偏差与方差, 噪声之间的关系.

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

泛化误差

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

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

方差

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

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

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

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

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

噪声

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

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

偏差

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

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

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

不要被上面的公式吓到, 其实不复杂, 在已知结论的情况下, 了解每一项的意义, 就是一个十分简单的证明题而已, 蓝色部分是对上面对应的等价替换, 然后对其展开后, 红色部分刚好为 0.

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

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

  • 偏差.

    偏差度量了学习算法的期望预测与真实结果的偏离程序, 即 刻画了学习算法本身的拟合能力 .

  • 方差.

    方差度量了同样大小的训练集的变动所导致的学习性能的变化, 即 刻画了数据扰动所造成的影响 .

  • 噪声.

    噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界, 即 刻画了学习问题本身的难度 . 巧妇难为无米之炊, 给一堆很差的食材, 要想做出一顿美味, 肯定是很有难度的.

想当然地, 我们希望偏差与方差越小越好, 但实际并非如此. 一般来说, 偏差与方差是有冲突的, 称为偏差-方差窘境 (bias-variance dilemma).

  • 给定一个学习任务, 在训练初期, 由于训练不足, 学习器的拟合能力不够强, 偏差比较大, 也是由于拟合能力不强, 数据集的扰动也无法使学习器产生显著变化, 也就是欠拟合的情况;

  • 随着训练程度的加深, 学习器的拟合能力逐渐增强, 训练数据的扰动也能够渐渐被学习器学到;

  • 充分训练后, 学习器的拟合能力已非常强, 训练数据的轻微扰动都会导致学习器发生显著变化, 当训练数据自身的、非全局的特性被学习器学到了, 则将发生过拟合.

参考资料:


  1. Understanding the Bias-Variance Tradeoff ↩︎

  2. Bias variance tradeoff 公式图解 . ↩︎

  3. <<机器学习>>, 周 志 华, 2.5 节偏差与方差. ↩︎

理解机器学习中的偏差与方差相关推荐

  1. 转载:理解机器学习中的偏差与方差

    学习算法的预测误差, 或者说泛化误差(generalization error)可以分解为三个部分: 偏差(bias), 方差(variance) 和噪声(noise). 在估计学习算法性能的过程中, ...

  2. 机器学习中的偏差和方差是什么?

    机器学习中的偏差和方差是什么? 机器学习全部是关于给定输入数据(X)和给定输出数据(Y),然后去寻找一个最佳映射函数(F),这个映射函数通常也被叫做目标函数. 任何机器学习算法的预测误差可以分解为三部 ...

  3. 三个变量中怎么找出中间值_一文理解神经网络中的偏差和方差

    在深度学习中,数据过拟合,欠拟合的问题很常见,先总结一下:过拟合称为高方差,欠拟合称为高偏差. 可能只看偏差,方差不是很理解,下面先来个百度百科看一下. 偏差(统计学概念) 偏差又称为表观误差,是指个 ...

  4. 机器学习中关于偏差、方差和误差的理解

    在模型预测中,模型可能出现的误差来自两个主要来源:   1.因模型无法表示基本数据的复杂度而造成的偏差(bias);   2.因模型对训练它所用的有限数据过度敏感而造成的方差(variance).   ...

  5. 机器学习中的偏差和方差

    1.误差的两大来源 机器学习中有两个主要的误差来源:偏差和方差.理解它们将协助合理安排时间去执行策略来提升性能. 首先了解一下数据集的分类: 训练集(training set) 用于运行你的学习算法. ...

  6. 机器学习中的偏差、方差以及泛化误差

    在机器学习中学习器的实际预测结果与样本的真实输出往往存在误差(error) 学习器在训练集上的误差称为"训练误差"(training error)or "经验误差&quo ...

  7. 你真的理解机器学习中偏差 - 方差之间的权衡吗?

    作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 简书地址:http://www.jianshu.com/p/f143... 我认为对偏差 - 方差之间的 ...

  8. 机器学习模型中,偏差与方差的权衡及计算

    衡量一个机器学习模型的性能,可以用偏差和方差作为依据. 一个高偏差的模型,总是会对数据分布做出强假设,比如线性回归.而一个高方差的模型,总是会过度依赖于它的训练集,例如未修剪的决策树.我们希望一个模型 ...

  9. 吴恩达机器学习课后作业——偏差和方差

    1.写在前面 吴恩达机器学习的课后作业及数据可以在coursera平台上进行下载,只要注册一下就可以添加课程了.所以这里就不写题目和数据了,有需要的小伙伴自行去下载就可以了. 作业及数据下载网址:吴恩 ...

最新文章

  1. 洛谷 P1598 垂直柱状图【字符串+模拟】
  2. 一位入行4年的优化师是怎么写出一本信息流广告入门书的?
  3. 独家 | 手把手教你组织数据科学项目!(附代码)
  4. 从fig文件中读取数据
  5. 理解Vue深度响应原理
  6. vuex 实现vue中多个组件之间数据同步以及数据共享。
  7. 不要一辈子靠技术生存!!
  8. 嵌入式设备带操作系统的启动过程
  9. Python raw_input 函数 - Python零基础入门教程
  10. dj鲜生-11-优化url-合并视图函数
  11. 吴恩达深度学习 —— 4.3 核对矩阵的维数
  12. Linux内存管理:CMA(连续内存分配)(DMA)
  13. c++局部对象是什么_什么是Java内部类?
  14. Zebra-VTYSH源码分析和改造
  15. D3js-中国各主要大城市经纬度数据
  16. ora-01045 :user system lacks create session privilege; logon denied
  17. python正则表达式快速入门_Python 正则表达式入门
  18. 进程隐藏技术系列之简介
  19. 日暮途远,故吾倒行而逆施之.
  20. SQL中DDL、DML、DQL、DCL、TCL是什么意思

热门文章

  1. 苹果手机投影_投影仪连手机的两种方式介绍
  2. CC2541之串口(转)
  3. 【沉痛悼念】首届国医大师唐由之逝世 | 曾为毛主席治疗白内障
  4. (20200921 Solved)ConnectionResetError: [Errno 104] Connection reset by peer
  5. python罗马数字转换阿拉伯数字_20202427-张启辰《Python3初学:罗马数字转阿拉伯数字》...
  6. 【送豪礼】死了都要爱!不告白不痛快!
  7. 转:《七周成为数据分析师》总结
  8. 3*3 三行三列的圈叉棋
  9. android工程师考司考,法考真题app哪个好用_司考刷题哪个app好用_搜法考真题app哪个比较好用...
  10. react-create-app 配置alias别名