一、基本理论
1.概念理解
在机器学习中,我们通过数据样本去训练模型的过程中,通常是定义一个误差函数,利用梯度下降法不断地使误差函数达到最小值,来提高模型的收敛速度。但是只有这单一的指标不能完全的衡量模型的性能。所以,我们还会考虑所学习到的模型的期望风险来反映了学习方法的泛化能力。即泛化误差(generalization error)。 如果一种方法学习的模型比另一种方法学习的模型具有更小的泛化误差,那么就可以说明方法就是有效。
偏差(bias):偏差衡量了模型的预测值与真实值之间的偏离关系。 换句话说就是偏离正确结果的差值。通常,在模型训练中,偏差反映了我们每次训练迭代的新模型的预测结果与真实值的距离,真实值即为训练过程中的标签 (label)。如果在训练中准确度达到98%,说明所有的预测值基本都靠近真实值,偏差较小。反之,准确度为65%,偏差较大,需要适当调整参数,降低偏差。
方差(variance): 方差描述的是训练数据在不同迭代阶段的训练模型中,预测值的变化波动情况。简单来说是预测值之间的离散程度,预测值之间的距离越大,数据越散,方差越大。反之,距离越近,数据越集中,方差越小。通常在模型训练初始阶段时,模型复杂度较低,方差较小,但随着训练的迭代增加,模型变得越来越复杂,拟合度越高,方差也逐渐变大。
噪声(Noise):噪声表明的是样本中有问题的信息,噪声一般归结为两种:
(1)输入错误:输入的样本标记错误。 在收集数据源时会出现随机性错误,比如用户在填信息的时候不符合要求,出现误填。
(2)输出错误:不同的评判标准,导致噪声的产生。比如评定奖学金,两个用户的属性基本相同,评定一个获得奖学金,一个没有。
通常偏差(Biase)、方差(Variance)和噪声(Noise)之和可以统称为泛化误差。
2.公式
符 号 含 义 x 测 试 样 本 D 数 据 集 y D x 在 数 据 集 中 的 标 记 y x 的 真 实 标 记 f 训 练 集 D 学 到 的 模 型 f ( x ; D ) 由 训 练 集 D 学 到 的 模 型 f 对 x 的 预 测 输 出 f ‾ ( x ) 模 型 f 对 x 的 期 望 预 测 输 出 \begin{array}{c|c} \hline 符号 & 含义\\ \hline x & 测试样本\\ \hline D & 数据集\\ \hline y_D &x在数据集中的标记\\ \hline y & x的真实标记\\ \hline f & 训练集D学到的模型\\ \hline f(x;D)&由训练集D学到的模型f对x的预测输出\\ \hline \overline{f}(x) &模型f对x的期望预测输出\\ \hline \end{array} 符号xDyDyff(x;D)f(x)含义测试样本数据集x在数据集中的标记x的真实标记训练集D学到的模型由训练集D学到的模型f对x的预测输出模型f对x的期望预测输出
1.偏差定义
期望输出与真实标记的差别:
b
i
a
s
2
(
x
)
=
(
f
‾
(
x
)
−
y
)
2
bias^2(x)=(\overline{f}(x)-y)^2
bias2(x)=(f(x)−y)2
含义:模型的期望预测与真实结果的偏离程度。
2.方差定义
样本数相同的不同训练集产生的方差为:
v
a
r
(
x
)
=
E
D
[
(
f
(
x
;
D
)
−
f
‾
(
x
)
)
2
]
var(x)=E_D[ (f(x;D)-\overline{f}(x))^2]
var(x)=ED[(f(x;D)−f(x))2]
含义:训练集的离散程度。
3.噪声定义
独立随机抽样的时候会出现一些人为的错误信息:
ε
2
=
E
D
[
(
y
D
−
y
)
2
]
\varepsilon^2=E_D[(y_D-y)^2]
ε2=ED[(yD−y)2]
4.泛化误差的定义
泛
化
误
差
(
g
e
n
e
r
a
l
i
z
a
t
i
o
n
e
r
r
o
r
)
=
错
误
率
(
e
r
r
o
r
)
=
b
i
a
s
2
(
x
)
+
v
a
r
(
x
)
+
ε
2
泛化误差(generalization error)=错误率(error)=bias^2(x)+var(x)+\varepsilon^2
泛化误差(generalizationerror)=错误率(error)=bias2(x)+var(x)+ε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
]
+
E
D
[
f
‾
(
x
)
−
y
D
)
2
]
+
E
D
[
2
(
f
(
x
;
D
)
−
f
‾
(
x
)
)
(
f
‾
(
x
)
−
y
D
)
]
=
E
D
[
(
f
(
x
;
D
)
−
f
‾
(
x
)
)
2
]
+
E
D
[
(
f
‾
(
x
)
−
y
D
)
2
]
=
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
)
(
f
‾
(
x
)
−
y
D
)
]
=
E
D
[
(
f
(
x
;
D
)
−
f
‾
(
x
)
)
2
)
]
+
(
f
‾
(
x
)
−
y
)
2
+
E
D
[
(
y
−
y
D
)
2
]
\begin{aligned} E(f;D) &= E_D[(f(x;D)-y_D)^2] \\ &= 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{blue} \quad \ +E_D[2(f(x;D)-\overline{f}(x))(\overline{f}(x)-y_D)]\\ &=E_D[(f(x;D)-\overline{f}(x))^2]+E_D[(\overline{f}(x)-y_D)^2]\\ &=E_D[(f(x;D)-\overline{f}(x))^2]+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{blue}\quad \ +2E_D[(\overline{f}(x)-y)(\overline{f}(x)-y_D)]\\ &=\colorbox{aqua} {$E_D[(f(x;D)-\overline{f}(x))^2)]+(\overline{f}(x)-y)^2+E_D[(y-y_D)^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]+ED[f(x)−yD)2] +ED[2(f(x;D)−f(x))(f(x)−yD)]=ED[(f(x;D)−f(x))2]+ED[(f(x)−yD)2]=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)(f(x)−yD)]=ED[(f(x;D)−f(x))2)]+(f(x)−y)2+ED[(y−yD)2]
最后,可以得出:
E
(
f
;
D
)
=
b
i
a
s
2
(
x
)
+
v
a
r
(
x
)
+
ε
2
E(f;D)=bias^2(x)+var(x)+\varepsilon^2
E(f;D)=bias2(x)+var(x)+ε2
上述公式推导中标注蓝色字体的由于噪声期望为零可以消去。因此,泛化能力是由偏差(Biase)、方差(Variance)和噪声(Noise)的值共同决定的,在模型训练中,为了使泛化误差变小,提高泛化性能,则需要调整模型的参数是偏差减至最小,这样模型学习的效果更好,数据拟合能力越强,模型越稳定。
二、图形化理解
我们可以通过一张的靶心图来理解偏差与方差。红色靶心表示为实际值,蓝色点集为预测值。
由上图,在模型不断地训练迭代过程中,我们会有四种情况:
(1)低偏差,低方差:这是训练的理想模型,此时蓝色点集基本落在靶心范围内,且数据离散程度小,基本在靶心范围内,可以说明模型的准确度较高。
(2)低偏差,高方差:这是机器学习过程中一种过拟合。 由于模型过于复杂,数据拟合能力太强,导致其泛化能力变弱,如果这是用测试集去测试模型,可以发现,测试效果太差,准确度较低。
(3)高偏差,低方差:这是训练的初始阶段;模型简单,数据点集中。
(4)高偏差,高方差:这是训练最差的情况,可能训练模型的方向偏离过大,导致准确度低,数据的离散程度较大。
三、偏差和方差与拟合程度的关系
1.完美拟合:完美拟合可以理解为射击百发百中,全部击中靶心,数据较集中。因此,表现为低偏差,低方差。
2.欠拟合:欠拟合是因为模型过于简单,我们可以理解为在射击时,所能击中范围不包括靶心,所以偏差高。并且击中准度较高,基本上在很小的范围内击中点依靠紧密,则方差低。因此,欠拟合往往表现为高偏差,低方差的状况。
3.过拟合:过拟合是因为模型过于复杂,我们可以理解为射击的范围很大了,经过不断的训练射击的点靠近靶心的位置,所以偏差低。但是由于数据量有限,而射击范围很大,所有击中点之间距离较大,也就是方差很大。因此,过拟合往往表现为低偏差,高方差的状况。