《机器学习:算法视角(原书第2版)》 —2.5 权衡偏差与方差

举报
华章计算机 发表于 2019/12/21 13:42:17 2019/12/21
【摘要】 本节书摘来自华章计算机《机器学习:算法视角(原书第2版)》 一书中第2章,第2.5节,作者是[新西兰] 史蒂芬·马斯兰(Stephen Marsland),高 阳 商 琳 等译。

2.5 权衡偏差与方差

为了完善本章,我们使用上一节的统计思想再次审视如何从理论角度评估学习量。

每次训练任何类型的机器学习算法时,我们都会对要使用的模型做出一些选择,并拟合该模型的参数。算法具有的自由度越大,拟合模型就越复杂。我们已经看到,更复杂的模型存在固有的危险,例如过拟合,这时就需要更多的训练数据,通过验证数据来确保模型不会过拟合。还有另一种方法可以理解这种观点,即更复杂的模型不一定能产生更好的结果。有些人称之为偏差方差困境(bias-variance dilemma)而不是折中,但这似乎过于戏剧化了。

事实上,这是一个非常简单的思路。模型很糟糕可能由于两个原因。要么因不准确而与数据不匹配;要么不是很精确,结果有很多不稳定性。第一个被称为偏差,而第二个是统计方差。更复杂的分类器倾向于改善偏差,但是这样的成本是增大了方差,而通过减少方差使模型更具体则将增加了偏差。就像量子物理学中的海森堡不确定性原理(Heisenberg Uncertainty Principle)一样,有一条基本定律,即我们不能同时拥有所有东西。例如,考虑直线拟合某些数据与高次多项式之间的差异,多项式可以精确地通过数据点。直线没有方差,但是偏差很大,因为它通常不适合拟合数据。样条曲线可以以任意精度拟合训练数据,但方差会增加。请注意,方差会增加相当于偏差减少,因为我们期望样条给出更好的拟合。有些模型肯定比其他模型更好,但选择模型的复杂性对于获得良好的结果非常重要。

计算目标和预测输出之间误差的最常用方法是计算两者之间差异的平方和(如果我们不这样做,而只是将差异加起来,考虑这样的例子,其中一个目标比预测大5,同时另一个目标比预测小5,那么它们的总和将为零,这正是我们求平方的原因)。在查看这个平方和误差函数(sum-of-squares error function)时,我们可以将它划分成代表偏差和方差的单独部分。假设我们试图逼近的函数是y=f(x)+ε,其中ε是噪声,被假设为均值为0、方差为σ2的高斯分布。我们使用机器学习算法来拟合数据的假设h(x)=wTx+b(其中w是2.1节中提到的权重向量),目的是最小化平方和误差∑i(yi-h(xi))2。

为了确定我们的方法是否有效,需要在独立数据上验证它,所以我们输入一个新的随机变量x*并计算它的平方和误差的期望值。其中E[x]=x是均值。我们现在要做一些代数操作,主要是基于这样的事实(其中Z只是某个随机变量):E[(Z-Z)2]=E[Z2-2ZZ+Z2]

=E[Z2]-2E[ZZ]+Z2

=E[Z2]-2ZZ+Z2

=E[Z2]-Z2(2.28)使用如下公式,我们可以计算新的数据点的平方和误差的期望:E[(y*-h(x*))2]=E[y*2-2y*h(x*)+h(x*)2]

=E[y*2]-2E[y*h(x*)]+E[h(x*)2]

=E[(y*2-f(x*))2]+f(x*)2+E[h(x*-h(x*))2]

 +h(x*)2-2f(x*)h(x*)

=E[(y*2-f(x*))2]+E[(h(x*)-h(x*))2]

 +(f(x*)+h(x*))2

=噪声2+方差+偏差2(2.29)等式右边三项中的第一个是我们无法控制的。它是不可约的误差(irreducible error),是测试数据的方差。 第二项是方差,第三项是偏差的平方。方差告诉我们所使用的特定训练集x*的变化程度,而偏差告诉我们h(x*)的平均误差。你可以改变偏差和方差,这样你就可以得到一个具有低偏差的模型(意味着平均输出是当前的),但是高方差(意味着答案在各处浮动),反之亦然。注意,你不能使它们都为零——对于每个模型,偏差和方差之间存在权衡。但是,对于任何特定的模型和数据集,都有一些合理的参数集可以为偏差和方差提供最佳结果,而模型拟合的部分挑战就是找到这一点。

这种权衡是一种有用的方式,可以看到机器学习一般在做什么,而且现在是时候去看看我们可以用一些真正的机器学习算法实际做些什么,下面的章节首先介绍神经网络。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。