方差-偏差分解

偏差-方差分析是(bias-variance decomposition)是解释算法学习泛化性能的一种重要工具。我们知道,算法在不同训练集上得到的结果可能不同。
对测试样本x, 不同的训练集为D\in\{D_1,D_2,\dots,D_n\},y为x的真实标记,由于噪声或者类似于测量误差的东西,可能训练集中的y_D\neq y,事实上我们不知道真实的y,但是我们假定噪声期望为0, 即E_D[y_D-y]=0, 我们可以用y=E_D[y_D]来表示真实的y。记在训练集D上x的预测输出为f(x;D).

泛化误差分解

如上所示,\overline{f}(x)是f(x;D)的期望,y是y_D的期望。
方差var定义为E_D[(f(x;D)-\overline{f}(x))^2],即在不同的数据集上的离散程度。
偏差bias定义为\overline{f}(x)-y, 这个值与D无关,因此不需要用期望形式来呈现。
噪声定义为y_D-y, 噪声引起的偏差记为\epsilon^2=E_D[(y_D-y)^2]

我们常用E_D[(f(x;D)-y_D)^2]来描述泛化误差,从图中很容易看出,
f(x;D)-y_D=f(x;D)-\overline{f}(x)+\overline{f}(x)-y+y-y_D
将三部分差分别用a,b,c来表示,由于,
(a+b+c)^2=a^2+b^2+c^2+2ab+2ac+2bc
将这个式子两边用算子E_D进行计算,右边的可以分配E_D算子。
由于b=\overline{f}(x)-y是常数,E_D(a)E_D(c)按照定义都为0,显然ab和bc项都为0。
比较难办的是E_D(ac), 但是好在按照常理分析,噪声与学习算法应该是独立的,因此
E_D(ac)=E_D(a)E_D(c)=0,
于是,我们有:
E_D[(f(x;D)-y_D)^2]=E_D[(f(x;D)-\overline{f}(x))^2]+(\overline{f}(x)-y)^2+E_D[(y_D-y)^2]
即:
泛化误差可分解为方差、偏差的平方、噪声的方差的和。
为了描述的简洁性,我们可以说,泛化误差分解为方差、偏差、噪声三部分。

本文内容出自清华大学出版社的周志华著的《机器学习》(俗称西瓜书)第44-45页的2.5章节“偏差与方差”。将其中的公式转化为更容易理解的图形。书中这段文字有几个不影响阅读和理解的歧义描述:
1、第二段第三行,y_D为x在数据集中的标记。疑改为“训练集D上”更合理。
2、公式2.39对噪声的定义与后续的“假定噪声期望为0”矛盾。疑改为噪声方差合理。
3、公式2.40对偏差的定义括号中没有平方,而公式2.42的解释中的偏差显然是有平方的。
书中公式2.41的第四行这一项为0,在左侧有解释为独立性,中间的逻辑不太直观。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 假设存在一个真实(但未知)的的分布,它输出带有噪声的数据。我们用由产生的集合中的个样本来估计,待估计的模型表示为。...
    cccshuang阅读 1,076评论 0 0
  • 1. 偏差-方差分解(bias-variance decomposition) 对于样本,令为在数据集中的...
    xChaconne阅读 1,715评论 0 0
  •   为了避免过拟合,我们经常会在模型的拟合能力和复杂度之间进行权衡。拟合能力强的模型一般复杂度会比较高,容易导致过...
    老羊_肖恩阅读 2,925评论 0 4
  • 偏差-方差分解的内容其实在看西瓜书的时候已经学习过,但印象并不深刻(可能和西瓜书上的符号比较繁琐有关吧),此次重温...
    单调不减阅读 2,560评论 0 0
  • "偏差方差分解" (bias-variance decomposition)是解释学习算法泛化性能的一种重要工具....
    井底蛙蛙呱呱呱阅读 2,582评论 0 3

友情链接更多精彩内容