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
因此,期望误差为对L在p(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分解的考虑是出于衡量预测模型对多个数据集的泛化能力。在考虑多数据集时,有几个变化:
注意此时y(x;Di)=E[ti|x], 其中ti是第i个数据集的标签。此时的期望误差除了对数据分布积分,还要对各个数据集求和。即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: 衡量单个数据集的真实标签与平均数据集上真实标签的波动,与预测函数无关
直观图解

参考文献
Christopher M. Bishop, Pattern Recognition and Machine Learning, SPRinger, 2006