1、误差的两大来源

机器学习中有两个主要的误差来源:偏差和方差。理解它们将协助合理安排时间去执行策略来提升性能。

首先了解一下数据集的分类:

  • 训练集(training set) 用于运行你的学习算法。
  • 验证集(hold-out cross validation set) 用于调整参数,选择特征,以及对学习算法作出其它决定。
  • 测试集(test set) 用于评估算法的性能,但不会据此改变学习算法或参数。

偏差,可以理解为样本y与模型预测结果的差距,可以使用平方差计算。
方差,是样本y值与模型期望的差的平方和。

如果你在训练集上的错误率是 15%(即 85% 的精度),但你的目标是 5% 错误率(95% 精度),那么首先要解决的问题是提高算法在训练集上的性能。算法在验证/测试集上的性能通常比在训练集上要差。所以,如果算法在已知样本上达到了 85% 的精度,那么是不可能在未知样本上达到 95% 精度的。

如上所述,假设你的算法在验证集上有 16% 的错误率(84% 精度),我们将这 16% 的错误率分为两部分:

  • 第一部分是算法在训练集上的错误率。在本例中,它是 15%。我们非正式地将它作为算法的 偏差(bias) 。
  • 第二部分指的是算法在验证集(或测试集)上的表现比训练集上差多少。在本例中,验证集表现比训练集差 1%。我们非正式地将它作为算法的 方差(variance)

注意:在统计学领域有着更多关于偏差和方差的正式定义。粗略地说,偏差指的是算法在大型训练集上的错误率;方差指的是算法在测试集上的表现低于训练集的程度。当你使用均方误差(MSE)作为误差度量指标时,你可以写下偏差和方差对应的两个公式,并且证明总误差=偏差+方差。

模型对实验数据欠拟合(underfitting) 是会出现搞偏差,而过拟合(overfitting)会造成高方差。

因此,一些学习算法的优化能解决误差来源的第一个部分——偏差,并且提高算法在训练集上的性能;而另一些优化能解决第二个部分——方差,并帮助算法从训练集到验证/测试集上更好地泛化。还有一些方法能够对系统架构做出较大改变,同时减少偏差和方差。但是这些方法往往难以鉴定和实
现。

2、最优错误率

假设你正在构建一个语音识别系统,并发现 14% 的音频片段背景噪声太多,或者十分难以理解,导致即使是人类也无法识别出所说的内容。在这种情况下,即使是“最优”的语音识别系统也可能约有 14% 的误差。

假设在这个语音识别问题上,你的算法达到:

  • 训练错误率 = 15%
  • 验证错误率 = 30%

算法在训练集上的表现已经接近最优错误率 14%,因此在偏差上或者说在训练集表现上没有太大的提升空间。然而,算法没有很好地泛化到验证集上,在方差造成的误差上还有很大的提升空间。可以将 30% 的总验证集误差分解如下(类似的分析可以应用于测试集误差):

  • 最优错误率(“不可避免偏差”):14%。假设我们决定,即使是世界上最好的语音系统,仍会有 14% 的误差。我们可以将其认为是学习算法的偏差“不可避免”的部分。
  • 可避免偏差:1%。即训练错误率和最优误差率之间的差值。
  • 方差:15%。即验证错误和训练错误之间的差值。

如果可避免偏差值是负的,即算法在训练集上的表现比最优错误率要好。这意味着你正在过拟合训练集,并且算法已经过度记忆(over-memorized)训练集。你应该专注于有效降低方差的方法,而不是选择进一步减少偏差的方法。

为了将这与我们之前的定义联系起来,偏差和可避免偏差关系如下:

偏差 = 最佳误差率(“不可避免偏差”)+ 可避免的偏差

使用这些定义是为了更好地帮助读者理解如何改进学习算法。这些定义与统计学家定义的偏差和方差不同。从技术角度上说,这里定义的“偏差”应该叫做“我们认为是偏差的误差”;另外“可避免偏差”应该叫做“我们认为学习算法的偏差超过最优错误率的误差”

这个“可避免偏差”反映了算法在训练集上的表现比起“最优分类器”差多少。

方差的概念和之前保持一致。理论上来说,我们可以通过训练一个大规模训练集将方差减少到接近零。因此只要拥有足够大的数据集,所有的方差都是可以“避免的”,所以不存在所谓的“不可避免方差

再考虑一个例子,该例子中最优错误率是 14%,我们有:

  • 训练误差 = 15%
  • 验证误差 = 16%

可避免的偏差误差是 1%,方差误差约为 1%。因此,算法已经做的很好了,几乎没有提升的空间。它只比最佳错误率低 2%。

从这些例子中我们可以看出,了解最优错误率有利于指导我们的后续工作。在统计学上,最优错误率也被称为贝叶斯错误率(Bayes error rate),或贝叶斯率。

如何才能知道最优错误率是多少呢?对于人类擅长的任务,例如图片识别或音频剪辑转录,你可以让普通人提供标签,然后测评这些人为标签相对于训练集标签的精度,这将给出最优错误率的估计。如果你正在解决一项人类也很难解决的问题(例如预测推荐什么电影,或向用户展示什么广告),这将很难去估计最优错误率。

3、减少可避免偏差的方法

如果你的学习算法遭受高可避免偏差,你可以尝试以下方法:

  • 增加模型大小(如神经元/层的数量):该方法可以减少偏差,因为它可以让你更好的适应训练集。如果你发现该方法增加了方差,那么使用正则化方法,它通常能够消除方差的增加。
  • 基于错误分析的洞察修改输入特征:假设错误分析启发你去创建额外的特征,以帮助算法消除特定类别的错误。理论上来说,增加更多的特征可能会增加方差,但如果你发现这种情况,那么久使用正则化方法,它通常能够消除方差的增加。
  • 减少或消除正则化(L2正则化,L1正则化,dropout):这将减少可避免偏差,但会增加方差。
  • 修改模型架构(如神经网络架构)以便更适合你的问题:这种方法能够影响偏差和方差。

注意:

  • 增加更多训练数据:这种方法有助于解决方差问题,但是它通常对偏差没有显著的影响。

4、减少方差的方法

如果你的学习算法遭受高方差,你可以尝试以下方法:

  • 添加更多训练数据:只要你能够获取更多的数据和处理这些数据的充足计算能力,这是处理方差问题最简单也是最可靠的方法。
  • 添加正则化(L2正则化,L1正则化,dropout):该方法减少了方差,但增加了偏差。
  • 添加提前停止(early stopping)(基于验证集错误提前停止梯度下降):该方法减少方差但增加了偏差。提前停止的行为很像正则化方法,一些作者称它为正则化方法。
  • 选择特征以减少输入特征的数目/类型:该方法可能有助于解决方差问题,但也可能增加偏差。

这里有两个额外的策略,重复上一节处理偏差中的方法:

  • 基于错误分析的洞察修改输入特征:假设错误分析启发你去创建额外的特征,以帮助算法消除特定类别的错误。这些新特征可能有助于减少偏差和方差。理论上来说,增加更多的特征可能会增加方差,但如果你发现这种情况,那么就使用正则化方法,它通常能够消除方差的增加。
  • 修改模型架构(如神经网络架构)以便更适合你的问题:这种方法能够影响偏差和方差。

5、偏差和方差间的权衡

以下是处理偏差和方差问题最简单的公式:

  • 如果具有较高的可避免偏差,那么增加模型的大小(例如,通过添加层/神经元来增加神经网络的大小)。
  • 如果具有较高的方差,那么增加训练数据集。

如果你可以增加神经网络的大小,并无限制的增加训练集数据,在实践中,增加网络的模型终将导致你会遇到计算问题,因为训练大的模型很慢。你也可能会增加方差和过拟合的风险。

模型的大小和方差的使用:增加模型的大小,通常可以减少偏差,但可能会增加方差。但是,可以通过正则化补充,因为增加正则化一般会增加偏差,但是能减少方差。

通过增加训练数据,你通常也可以在不影响偏差的情况下减少方差。

选择合适的特征数目/类型:减少特征数量可能有助于解决方差问题,但也可能增加偏差。略微减少特征数量(比如从1000个特征减少到900)不太可能对偏差产生很大影响。显著地减少它(比如从1000减少到100——减少10倍)更可能有显著的影响,只要你没有将太多有用的特征排除在外。在现代深度学习中,当数据丰富时,已经特征选择了,尽可能给算法我们所有的特征,并让算法根据数据分类使用哪些特征。但是当你训练集比较小时,特征选择可能非常有用。

减少模型大小(如神经元/层的数量):谨慎使用。该方法能够减少方差,但可能增加偏差。但是,我不推荐使用该方法来处理方差。增加正则化通常能得到更好的分类性能。减少模型大小的好处就是降低计算成本,从而加快训练模型的速度。如果加快模型的训练是有用的,那无论如何考虑减少模型的大小。但是如果你的目标是减少方差,并且你不关心计算成本,那么考虑添加正则化替代之。

不同的模型架构(例如,不同的神经网络架构)对于你的问题将有不同的偏差/方差量。

假设你正在应用深度学习,有L2正则化和dropout,有在验证集上表现最好的正则化参数。如果你增加模型的大小,通常你的表现会保持不变或提升,它不太可能明显的变差。避免使用更大模型的唯一原因就是计算代价变大。

蓝色的训练错误曲线相对低,红色验证错误曲线远高于蓝色训练错误。因此,偏差较小,但是方差较大。添加更多训练数据可能有助于缩小验证错误和训练错误之间的差距。

这次,训练错误较大,远高于期望性能水平。验证错误也比训练错误大很多。因此,具有显著的偏差和方差。你将不得不在算法中去寻找同时减少偏差和方差的方法。


参考:

https://xiaqunfeng.gitbooks.io/machine-learning-yearning/content/chapter31.html

机器学习中的偏差和方差相关推荐

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

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

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

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

  3. 理解机器学习中的偏差与方差

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

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

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

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

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

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

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

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

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

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

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

  9. 吴恩达机器学习作业5.偏差和方差

    机器学习作业 5 - 偏差和方差 import numpy as np import scipy.io as sio import scipy.optimize as opt import panda ...

最新文章

  1. Vmware提示:host usb device connections disabled-(vmware 主机已禁用 usb 设备连接)
  2. python中loop的用法_python-在Tensorflow中使用tf.while_loop更新变量
  3. 最近总结——关于自己的基础问题
  4. Eureka和Zookeeper区别 —— 杂记
  5. bzoj 2705: [SDOI2012]Longge的问题(欧拉函数)
  6. Android 手势检测实战 打造支持缩放平移的图片预览效果(下)
  7. 局域网视频共享 php,window_Windows 7媒体库管理音视频文件实现局域网共享, 任务分析 多台电脑连接的家 - phpStudy...
  8. 2019牛客多校第二场F Partition problem(暴搜)题解
  9. 使用curl与wget发送get与post请求
  10. FFT(不ji是干甚用的diao操作)
  11. vue 识别身份证内容并映射到来源地区的js
  12. GIS应用技巧之制作土地利用转移矩阵表
  13. vue中使用富文本编辑器
  14. BoundsChecker用法
  15. 安装最新版 MySQL 8.0.30
  16. python 爬虫 | selenium换页问题
  17. Excel函数IF的多条件通配使用方法
  18. 计算机工程与应用退休被拒,如果您退休了,还能坚持独立做科学研究,那么和大家分享一下您的经验吧...
  19. 丐帮 beggar gangs
  20. 响应时间与滤波器截止频率的关系

热门文章

  1. ubuntu 禁止/取消系统自动更新的方法
  2. React ajax 发送请求(六)
  3. 大数据分析实训——使用Spark SQL分析美国新冠肺炎疫情
  4. DB2数据库性能优化介绍
  5. 一、Dell服务器的iDRAC管理卡连接
  6. defi 去中心化金融
  7. 七牛云存储——许式伟
  8. 华为UPS电源的8个功能作用
  9. Wifi小车之 - STM32无线视频篇
  10. 嵌入式技术学习分享如何系统提升技能