“偏差-方差分解”是解释学习算法的泛化性能的一种重要工具,即算法**“为什么”具有这样的性能**。
偏差-方差分解对学习算法的期望泛化错误率进行拆解。
对测试样本 x x x,有:
变量 | 含义 |
---|---|
y D y_D yD | x x x在数据集上的标记。 |
y y y | x x x的真实标记。 |
f ( x ; D ) f(x;D) f(x;D) | 训练集D上学得模型f在 x x x上的预测输出。 |
含义 | 公式 | 影响 |
---|---|---|
算法的期望预测 | f ‾ ( x ) = E D [ f ( x ; D ) ] ( 2.5 − 1 ) \overline f(x)=E_{D}[f(x;D)] \qquad (2.5-1) f(x)=ED[f(x;D)](2.5−1) | |
样本数相同的不同训练集产生的方差 | v a r ( x ) = E D [ ( f ( x ; D ) − f ‾ ( x ) ) 2 ] ( 2.5 − 2 ) var(x) =E_{D}[{(f(x;D)-\overline f(x))}^2] \qquad (2.5-2) var(x)=ED[(f(x;D)−f(x))2](2.5−2) | 度量同样大小的训练集的变动所导致的学习性能的变化,即数据扰动所造成的影响。 |
噪声(如输出为错误的样本) | ε 2 = E D [ ( y D − y ) 2 ] ( 2.5 − 3 ) {\varepsilon }^2 =E_{D}[{(y_D-y)}^2] \qquad (2.5-3) ε2=ED[(yD−y)2](2.5−3) | 表达当前任务上任何算法所能达到的期望泛化误差的下界,即学习问题本身的难度。 |
偏差 | b i a s 2 ( x ) = ( f ‾ ( x ) − y ) 2 ( 2.5 − 4 ) {bias}^2(x) ={(\overline f(x)-y)}^2 \qquad (2.5-4) bias2(x)=(f(x)−y)2(2.5−4) | 度量算法的期望预测与真实结果的偏离程度,即算法本身的拟合能力。 |
以回归任务为例:
假设噪声期望=0,则通过多项式展开合并,得到算法的期望泛化误差为:
E
(
f
;
D
)
=
b
i
a
s
2
(
x
)
+
v
a
r
(
x
)
+
ε
2
(
2.5
−
5
)
E(f;D)={bias}^2(x)+var(x)+\varepsilon ^2\qquad (2.5-5)
E(f;D)=bias2(x)+var(x)+ε2(2.5−5)
即泛化误差可分解为偏差、方差、噪声之和。
偏差-方差分解说明了泛化性能是由学习算法的能力、数据的充分性、学习任务本身的难度共同决定的。因此欲提高泛化性能,则需要使得偏差较小,即能充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。
而偏差、方差存在冲突,即“偏差-方差窘境”,如给定学习任务,假定控制学习算法的训练程度(决策树控制层数,神经网络控制训练轮数,集成学习方法控制基学习器个数),则训练不足时,学习器拟合能力不够强,训练数据的扰动不足以使学习器产生显著变化,此时偏差主导了泛化错误率;随着训练程度加深,学习器拟合能力增强,训练数据发生的扰动可被学习器学到,方差开始主导泛化错误率;训练程度充分即学习器拟合能力足够,训练数据的轻微扰动都会导致学习器发生显著变化,若训练数据自身的、非全局的特性被学习器学到,则将导致过拟合。