20偏差和方差:误差的两个主要来源(Bias and Variance The two big sources of error)

假设训练集,开发集和测试集都来自相同的分布,你应该获取更多训练数据,因为那样可以提高模型性能,对吧?
不幸运的是即使取得更多训练数据没有什么坏处,它也没有你想象的很多的好处。取得更多训练数据也有可能是在浪费时间,所以问题来了,你如何确定什么时候增加训练数据,什么时候不呢?

在机器学习领域有两大主要的误差来源:偏差和方差。理解了偏差和方差将帮助你确定什么时候增加数据,或者采用其他方式来提升性能。理解他们也会帮助你充分利用时间。

假设你想构建一个有5%错误率的猫分类器。现在你的训练集错误率为15%,开发集错误率16%。在这种情况下,增加训练数据可能没有什么帮助,你应该关注其他的方式。实际上,给训练集增加更多数据会导致算法更加难以在训练集上有好的表现(将会在下一章解释为什么)。

如果在训练集上错误率是15%(精度85%),但是你的目标是5%的错误率(精度95%),那么首要问题是提升算法在训练集的精度,因为算法在开发集/测试集上的表现一般比训练集差。所以如果算法在可见样本(训练集)上是85%精确度,那么在未见样本(开发集)上根本不可能获得95%的精确度。

像之前一样假设算法在开发集上错误率为16%(84%精度)。
将这16%的错误率拆解成两部分:

  • 首先,在本例中算法在训练集上的错误率是15%,我们认为这是算法的偏差(非正式的偏差)
  • 其次,算法在开发集(测试集)上的表现比训练集差了多少。在本例中,算法的开发集表现比训练集差了1%,我们认为这是算法的方差(非正式的方差)。

对算法进行修改可以解决第一方面的问题—偏差—提高算法在训练集上的性能。对算法做另一些修改解决第二方面的问题—方差—在开发集合测试集上获得更好的泛化性能。先理解这两方面的问题哪一个更加需要去解决,再决定对算法做什么样的修改,这样做非常非常的有用。

形成一个关于偏差方差直观的理解可以帮助你高效地修改算法。

1. 问题背景

NFL(No Free Lunch Theorem)告诉我们选择算法应当与具体问题相匹配,通常我们看一个算法的好坏就是看其泛化性能,但是对于一个算法为什么好为什么坏,我们缺乏一些认识。“Bias-Variance Decomposition”就是从偏差和方差的角度来解释一个算法的泛化性能。

2. 一点点数学

“Bias-Variance Decomposition” 是以测试集上的平方错误为基础的,假设我们的预测值为 g ( x ) g(x) g(x),真实值为 f ( x ) f(x) f(x),则均方误差为 E ( ( g ( x ) − f ( x ) ) 2 ) E((g(x)−f(x))^2) E((g(x)f(x))2)

为了让世界更加美好,我们在这里不考虑样本的噪声。噪声的存在是学习算法所无法解决的问题,数据的质量决定了学习的上限。而假设在数据已经给定的情况下,此时上限已定,我们要做的就是尽可能的接近这个上限)
在这里插入图片描述
参考:https://blog.csdn.net/wuzqChom/article/details/75091612

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值