偏差-方差分解

1、
偏差-方差分解是解释学习算法泛化性能的一种重要工具,试图对学习算法的期望泛化误差率(generalization error)进行分解。可以分解为三部分,偏差(bias)、方差(variance)和噪声(noise)。其中,
偏差:度量了模型的期望值和真实结果的偏离程度,刻画了模型本身的拟合能力
方差:度量了同样大小的训练集的变动所导致的学习性能的变化,刻画了数据扰动所产生的影响。
噪声:表达了当前任务上任何学习算法所能达到的期望防滑误差的下界,刻画了学习问题本身的难度。

2、
泛化误差:以回归任务为例,学习算法的平方预测误差期望为:

[E(f;D) = E[(y_D-f(x;D))^2] ]

方差:在一个训练集(D)上模型(f)对测试样本(x)的预测输出为(f(x;D)),那么学习算法(f)对测试样本(x)的期望预测为:$$overline{f}(x) = E_D[f(x;D)]$$
上面的期望预测也就是针对不同数据集(D,f)(x)的预测值取其期望,也被叫做average predicted。
使用样本数相同的不同训练集产生的方差为:

[var(x)=E_D[f(x;D)-overline{f}(x))^2] ]

噪声:噪声为真实标记与数据集中的实际标记间的偏差

[varepsilon^2 = E_D[(y_D-y)^2] ]

偏差:期望预测与真实标记的误差成为偏差(bias),为了方便起见,我们直接取偏差的平方:

[bias^2(x)=(overline{f}(x)-y)^2 ]

对算法的期望泛化误差进行分解:

[egin{align} E(f;D) &=E_D[(f(x;D)-y_D)^2] \ &={color{Blue} {E_D[(f(x;D)-overline{f}(x) + overline{f}(x) - y_D)^2]}} \ &=E_D[(f(x;D)-overline{f}(x))^2]+E_D[(overline{f}(x) - y_D)^2]+{color{Red} {E_D[2(f(x;D)-overline{f}(x))(overline{f}(x) - y_D)]}} \ &=E_D[(f(x;D)-overline{f}(x))^2] + {color{Blue} {E_D[(overline{f}(x) - y + y - y_D)^2]}} \ &=E_D[(f(x;D)-overline{f}(x))^2]+E_D[(overline{f}(x) - y)^2]+E_D[(y - y_D)^2]+{color{Red} {E_D[2(overline{f}(x) - y)(y - y_D)]}} \ &=E_D[f(x;D)-overline{f}(x))^2] + (overline{f}(x)-y)^2 + E_D[(y_D-y)^2] \ &=var(x) + bias^2(x) + varepsilon^2 end{align} ]

会产生疑惑的地方:
1、(E_D[(overline{f}(x) - y)^2] = (overline{f}(x)-y)^2)
由于y是数据集x的真实标记,因此是一个固定的值;而(overline{f}(x))(f)(x)的期望预测输出,也是一个标量,因此(E_D(标量)=标量)
2、公式中两个标红的项,展开后结果为0

[egin{align} &E_D[2(f(x;D)-overline{f}(x))(overline{f}(x) - y_D)] \ &varpropto E_D(f(x;D)*overline{f}(x))-E_D(overline{f}(x)*overline{f}(x))-E_D(f(x;D)*y_D)+E_D(overline{f}(x)*y_D) \ & =overline{f}(x)*E_D(f(x;D))-overline{f}^2(x)-E_D(f(x;D)*y_D)+E_D(overline{f}(x)*y_D)\ & = overline{f}(x)*overline{f}(x)-overline{f}^2(x)-E_D(f(x;D)*y_D-overline{f}(x)*y_D)\ & = E_D(overline{f}(x)*(y+varepsilon) - f(x;D)*(y+varepsilon)) end{align} ]

利用了(y_D=y+varepsilon, varepsilon不依赖与f,且噪声期望E_D(varepsilon)=0)
3、绿色的地方是为了方便后续的计算,对表达式进行展开。

偏差-方差窘境(bias-variance dilemma)
为了得到泛化性能好的模型,我们需要使偏差较小,即能充分拟合数据,并且使方差小,使数据扰动产生的影响小。但是偏差和方差在一定程度上是有冲突的,这称作为偏差-方差窘境。
随着模型复杂度的提升, 偏差逐渐减小, 方差逐渐增大. 最佳的模型复杂度是在 Total Error 最小的时候, 该点导数为0。若模型复杂度大于平衡点,则模型的方差会偏高,模型倾向于过拟合;若模型复杂度小于平衡点,则模型的偏差会偏高,模型倾向于过拟合。

原文地址:https://www.cnblogs.com/laojifuli/p/11978809.html