Variance-Bias 分解

来源:互联网 发布:龙卷风翻墙软件 编辑:程序博客网 时间:2024/06/05 01:59

Variance-Bias 分解

Notations:

t: 真实label

x: 数据分布

D: 数据集标识

y(x;Di): 在Di上的预测函数

E(t|x): 回归函数,即p(t|x)tdt

单个数据集下的回归函数

下面首先证明,对于单个数据集Di,当期望均方误差最小时,y(x;Di)=E[t|x]。由期望均方误差定义:

这里写图片描述

这里写图片描述

单数据集下的损失函数分解

对于某个数据集Di,对应预测函数的误差可以表示为

L=y(x;Di)t)2=(y(x;Di)E[t|x]+E[t|x]t)2=[y(x;Di)E[t|x]]2+2[y(x;Di)E[t|x]][E[t|x]t]+[E[t|x]t]2

因此,期望误差为对Lp(x)上积分,注意由回归函数的定义,E[t|x]=y(x;Di),可知交叉项为0,则

E(L)=Ex{[y(x;Di)E[t|x]]2}+Ex{[E[t|x]t]2}

其中,Ex{[E[t|x]t]2}被称为noise,衡量单个数据集的真实标签与平均数据集上真实标签的波动,与预测函数无关。

对于Ex{[y(x;Di)E[t|x]]2},可对[y(x;Di)E[t|x]]2进行variance-bias分解。

多数据集下的variation-bias 分解

现在考虑多个数据集的情况。variance-bias分解的考虑是出于衡量预测模型对多个数据集的泛化能力。在考虑多数据集时,有几个变化:

  1. 注意此时y(x;Di)=E[ti|x], 其中ti是第i个数据集的标签。
  2. 此时的期望误差除了对数据分布积分,还要对各个数据集求和。即ED,(x,t)[L]

先不考虑期望,如下:

[y(x;Di)Et,D[t|x]]2={y(x;Di)ED[y(x;D)]+ED[y(x;D)]Et,D[t|x]}2={y(x;Di)ED[y(x;D)]}2+{ED[y(x;D)]Et,D[t|x]}2+2{y(x;Di)ED[y(x;D)]}{ED[y(x;D)]Et,D[t|x]}

当对上式在D上积分,易知ED{y(x;Di)ED[y(x;D)}=0,从而交叉项为0,从而有:

ED{[y(x;Di)Et,D[t|x]]2}=ED{[y(x;Di)ED[y(x;D)]]2}+{ED[y(x;D)]Et,D[t|x]}2

于是,上式前一项为vairance,后一项为bias。

总结

bias=Ex{[E[t|x]t]2}: 衡量平均数据集上预测函数与平均数据集上真实标签分布的波动

variance: 衡量单个数据集预测函数与平均数据集上预测函数的波动

noise: 衡量单个数据集的真实标签与平均数据集上真实标签的波动,与预测函数无关

直观图解

这里写图片描述

参考文献

  1. Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006
0 0
原创粉丝点击