一、写在前面
分析一个算法的泛化能力,“偏差-方差分解”(bias-variance decomposition)是一种蛮重要的工具。我们一般是通过对学习器的泛化误差进行评估从而选择出最优的模型。而泛化误差可以分解为偏差(Bias)、方差(Variance)和噪声(Noise),那么我们可以从偏差、方差和噪声这三个角度去解释泛化误差,从而理解它为什么具有这样的性能。
二、偏差与方差、噪声
– | 涵义 | 触发因素 | 结果 |
---|---|---|---|
Bias | 度量了期望预测与真实结果的偏离程度,即其描述了模型对于数据的拟合程度, 偏差越小,说明模型对数据拟合的越好 。例如上图中子弹落地的平均位置偏离目标的距离。 | 学习器的设计选择的决策。如:KNN 中近邻个数 | 学习器的拟合能力不够强,即出现欠拟合 |
Variance | 度量了同样大小的训练集的变动所导致的学习性能的变化,即其描述了数据扰动所造成的影响 。例如上图中子弹落地的位置与其平均位置的偏离程度,也就是分散程度。 | 训练数据可变 | 训练数据的轻微扰动都会导致学习器发生显著变化, 当训练数据自身的、非全局的特性被学习器学到了, 则将发生过拟合. |
Noise | 表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界, 即 刻画了学习问题本身的难度。例如上图中若目标位置不固定。 | 目标类不确定 | 学习过程复杂 |
三、偏差-方差分解
(1) e x p e c t e d l o s s = b i a s 2 + v a r i a n c e + n o i s e 2 \red{\bm{expected \space loss =bias^2 + variance + noise^2}} \tag{1} expected loss=bias2+variance+noise2(1)
1、公式推导(以回归任务为例)
符合 | 涵义 |
---|---|
x | 测试样本 |
D | 数据集 |
y D y_D yD | x在数据集D中的对应标记 |
y | x的真实标记 |
f | 训练集D学得的模型 |
f(x;D) | 有训练集D学得的模型f对x的预测输出 |
f ˉ ( x ) \bar f(x) fˉ(x) | 模型f对x的期望预测输出 |
学习算法的期望预测为:
(2)
f
ˉ
(
x
)
=
E
D
[
f
(
x
;
D
)
]
\bar f(x) = E_D[f(x;D)] \tag{2}
fˉ(x)=ED[f(x;D)](2)
使用样本数相同的不同的训练集产生的方差:
(3)
v
a
r
(
x
)
=
E
D
[
f
(
x
;
D
)
−
f
ˉ
(
x
)
2
]
var(x) = E_D[f(x;D)- \bar f(x)^2] \tag{3}
var(x)=ED[f(x;D)−fˉ(x)2](3)
噪声为:
(4)
ε
2
=
E
D
[
(
y
D
−
y
)
2
]
\varepsilon^2= E_D[(y_D-y)^2] \tag{4}
ε2=ED[(yD−y)2](4)
偏差为:
(5)
b
i
a
s
(
x
)
2
=
(
f
ˉ
(
x
)
−
y
)
2
bias(x)^2=(\bar f(x)-y)^2 \tag{5}
bias(x)2=(fˉ(x)−y)2(5)
为了方便讨论,假设噪声期望为零,即
E
D
[
y
D
−
y
]
=
0
E_D[y_D - y]=0
ED[yD−y]=0.通过简单的多项式展开合并对期望泛化误差进行分解:
E
(
f
;
D
)
=
E
D
[
(
f
(
x
;
D
)
−
y
D
)
2
]
=
E
D
[
(
f
(
x
;
D
)
−
f
ˉ
(
x
)
+
f
ˉ
(
x
)
−
y
D
)
2
]
=
E
D
[
(
f
(
x
;
D
)
−
f
ˉ
(
x
)
)
2
+
2
(
f
(
x
;
D
)
−
f
ˉ
(
x
)
)
(
f
ˉ
(
x
)
−
y
D
)
+
(
f
ˉ
(
x
)
−
y
D
)
2
]
=
E
D
[
(
f
(
x
;
D
)
−
f
ˉ
(
x
)
)
2
]
+
E
D
[
(
f
ˉ
(
x
)
−
y
D
)
2
]
+
2
E
D
[
(
f
(
x
;
D
)
−
f
ˉ
(
x
)
)
(
f
ˉ
(
x
)
−
y
D
)
]
(
因
为
噪
声
与
模
型
f
无
关
,
最
后
一
项
为
0
)
=
E
D
[
(
f
(
x
;
D
)
−
f
ˉ
(
x
)
)
2
]
+
E
D
[
(
f
ˉ
(
x
)
−
y
+
y
−
y
D
)
2
]
=
E
D
[
(
f
(
x
;
D
)
−
f
ˉ
(
x
)
)
2
]
+
E
D
[
(
f
ˉ
(
x
)
−
y
)
2
]
+
E
D
[
(
y
−
y
D
)
2
]
+
2
E
D
[
(
f
ˉ
(
x
)
−
y
)
(
y
−
y
D
)
]
(
因
为
噪
声
期
望
为
0
,
最
后
一
项
为
0
)
=
E
D
[
(
f
(
x
;
D
)
−
f
ˉ
(
x
)
)
2
]
+
(
f
ˉ
(
x
)
−
y
)
2
+
E
D
[
(
y
−
y
D
)
2
]
=
b
i
a
s
(
x
)
2
+
v
a
r
(
x
)
+
ε
2
\begin{aligned} E(f;D) &=E_D[(f(x;D)-y_D)^2] \\ & =E_D[(f(x;D)- \bar f(x) + \bar f(x) -y_D)^2] \\ & =E_D[(f(x;D)- \bar f(x))^2 +2(f(x;D)- \bar f(x))(\bar f(x) -y_D)+( \bar f(x) -y_D)^2] \\ & =\red{E_D[(f(x;D)- \bar f(x))^2]} +E_D[( \bar f(x) -y_D)^2]+2E_D[ (f(x;D)-\bar f(x))(\bar f(x) -y_D)] \\ &(因为噪声与模型f无关,最后一项为0)\\ &=\red{E_D[(f(x;D)- \bar f(x))^2]} +E_D[( \bar f(x)-y+y -y_D)^2] \\ &=\red{E_D[(f(x;D)- \bar f(x))^2]} +E_D[( \bar f(x) -y)^2]+E_D[(y-y_D)^2]+2E_D[( \bar f(x) -y)(y-y_D)]\\ &(因为噪声期望为0,最后一项为0)\\ &=\red{E_D[(f(x;D)- \bar f(x))^2]} +( \bar f(x) -y)^2+E_D[(y-y_D)^2]\\ &=bias(x)^2 + var(x) + \varepsilon^2 \end{aligned}
E(f;D)=ED[(f(x;D)−yD)2]=ED[(f(x;D)−fˉ(x)+fˉ(x)−yD)2]=ED[(f(x;D)−fˉ(x))2+2(f(x;D)−fˉ(x))(fˉ(x)−yD)+(fˉ(x)−yD)2]=ED[(f(x;D)−fˉ(x))2]+ED[(fˉ(x)−yD)2]+2ED[(f(x;D)−fˉ(x))(fˉ(x)−yD)](因为噪声与模型f无关,最后一项为0)=ED[(f(x;D)−fˉ(x))2]+ED[(fˉ(x)−y+y−yD)2]=ED[(f(x;D)−fˉ(x))2]+ED[(fˉ(x)−y)2]+ED[(y−yD)2]+2ED[(fˉ(x)−y)(y−yD)](因为噪声期望为0,最后一项为0)=ED[(f(x;D)−fˉ(x))2]+(fˉ(x)−y)2+ED[(y−yD)2]=bias(x)2+var(x)+ε2
其中,由于噪声与模型f无关,导致下式为0
0
=
E
D
[
(
f
(
x
;
D
)
−
f
ˉ
(
x
)
)
(
f
ˉ
(
x
)
−
y
D
)
]
=
(
f
ˉ
(
x
)
−
y
D
)
E
D
[
f
(
x
;
D
)
−
f
ˉ
(
x
)
]
=
(
f
ˉ
(
x
)
−
y
D
)
(
E
D
[
f
(
x
;
D
)
]
−
f
ˉ
(
x
)
)
=
(
f
ˉ
(
x
)
−
y
D
)
(
f
ˉ
(
x
)
−
f
ˉ
(
x
)
)
=
0
\begin{aligned} 0 &=E_D[ (f(x;D)-\bar f(x))(\bar f(x) -y_D)] \\ &=(\bar f(x) -y_D)E_D[ f(x;D)-\bar f(x)] \\ &=(\bar f(x) -y_D)(E_D[ f(x;D)]-\bar f(x))\\ &=(\bar f(x) -y_D)(\bar f(x)-\bar f(x))\\ &=0 \end{aligned}
0=ED[(f(x;D)−fˉ(x))(fˉ(x)−yD)]=(fˉ(x)−yD)ED[f(x;D)−fˉ(x)]=(fˉ(x)−yD)(ED[f(x;D)]−fˉ(x))=(fˉ(x)−yD)(fˉ(x)−fˉ(x))=0
2、意义
偏差-方差分解说明。泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需要是偏差较小,即能够充分拟合数据,并且使方差较小,即能使数据扰动产生的影响小。
- 偏差-方差窘境:偏差与方差是有冲突的。
(1) 给定一个学习任务, 在训练初期, 由于训练不足, 学习器的拟合能力不够强, 偏差比较大, 也是由于拟合能力不强, 数据集的扰动也无法使学习器产生显著变化, 也就是欠拟合的情况;
(2)随着训练程度的加深, 学习器的拟合能力逐渐增强, 训练数据的扰动也能够渐渐被学习器学到,方差变大;
(3)充分训练后, 学习器的拟合能力已非常强, 训练数据的轻微扰动都会导致学习器发生显著变化, 当训练数据自身的、非全局的特性被学习器学到了, 则将发生过拟合。
四、总结
- 偏差-方差分解:
e
x
p
e
c
t
e
d
l
o
s
s
=
b
i
a
s
2
+
v
a
r
i
a
n
c
e
+
n
o
i
s
e
2
\red{\bm{expected \space loss =bias^2 + variance + noise^2}}
expected loss=bias2+variance+noise2
是一种用于解释算法泛化性能的工具。 - 要想得到一个相对较好的泛化性能,需要在方差和偏差之间取一个折中:
对于非常灵活的模型来说,偏差较小,方差较大。对于相对固定的模型来说,偏差较大,方差较小。有着最优预测能力的模型时在偏差-和方差之间取得最优的平衡的模型。