偏差与方差是解释学习算法泛化性能的重要工具。
定义
在机器学习利用训练数据集学习模型时,通过最小化损失函数(Loss function)来提高模型性能。但训练数据集error最小并不能保证在测试集或外推时性能最优,则训练数据集的Loss与预测数据集的Loss之间的差异为Generalization error。
Err
(
X
)
=
E
[
(
y
−
f
^
(
X
)
)
2
]
=
E
[
(
f
(
X
)
+
ϵ
−
f
^
(
X
)
)
2
]
=
(
E
[
f
^
(
X
)
]
−
f
(
X
)
)
2
+
E
[
(
f
^
(
X
)
−
E
[
f
^
(
X
)
]
)
2
]
+
σ
ϵ
2
=
Bias
+
Variance
+
Random Error.
\begin{aligned} \operatorname{Err}(X) &=E\left[(y-\hat{f}(X))^{2}\right] \\ &=E\left[(f(X)+\epsilon-\hat{f}(X))^{2}\right] \\ &=(E[\hat{f}(X)]-f(X))^{2}+E\left[(\hat{f}(X)-E[\hat{f}(X)])^{2}\right]+\sigma_{\epsilon}^{2} \\ &=\operatorname{Bias}+\text { Variance }+\text { Random Error. } \end{aligned}
Err(X)=E[(y−f^(X))2]=E[(f(X)+ϵ−f^(X))2]=(E[f^(X)]−f(X))2+E[(f^(X)−E[f^(X)])2]+σϵ2=Bias+ Variance + Random Error.
Generalization error 可细分为Random error、Bias、Variance。由于随机误差不可消除,偏差和方差从两个方面描述学习到的模型与真实规律之间的差距,其与欠拟合及过拟合紧密相连,主要讨论偏差和方差之间的权衡(Bias-Variance Tradeoff)。
随机误差(Random Error)
随机误差为数据本身噪音所致,一般认为随机误差服从高斯分布,即
ϵ
∼
N
(
0
,
σ
ϵ
)
\epsilon \sim \mathcal{N}\left(0, \sigma_{\epsilon}\right)
ϵ∼N(0,σϵ),若
y
y
y为预测值,
X
X
X为自变量,数据背后真实规律为
f
f
f,则
y
=
f
(
X
)
+
ϵ
y=f(X)+\epsilon
y=f(X)+ϵ
真实规律客观存在,但基于有限的样本和随机误差干扰无法获得,我们的最终目标为学习到更加接近真实规律的模型。
偏差(Bias)
偏差对于固定大小的训练数据集,描述"通过学习得到到所有模型的输出预测结果的期望"与"真实规律"之间的差距,即
Bias
(
X
)
=
E
[
f
^
(
X
)
]
−
f
(
X
)
\operatorname{Bias}(X)=E[\hat{f}(X)]-f(X)
Bias(X)=E[f^(X)]−f(X)
关于模型拟合程度的衡量,增加模型参数,降低偏差可提高训练集拟合效果,但容易出现过拟合(overfitting)。
方差(Variance)
方差对测试集,描述通过学习拟合出来的结果自身的不稳定性,即 Var ( X ) = E [ ( f ^ ( X ) − E [ f ^ ( X ) ] ) 2 ] \operatorname{Var}(X)=E\left[(\hat{f}(X)-E[\hat{f}(X)])^{2}\right] Var(X)=E[(f^(X)−E[f^(X)])2]
偏差与方差的权衡
在VC维中,已推得
E
o
u
t
<
E
i
n
+
Ω
E_{out}<E_{in}+\Omega
Eout<Ein+Ω,其决定了
E
o
u
t
E_{out}
Eout的边界,可用VC维解读偏差和方差:
将
E
o
u
t
E_{out}
Eout分解为两个部分:
- 假设空间 H \mathcal{H} H近似 f f f的能力(即 H \mathcal{H} H中与 f f f距离最近的集合 G G G与 f f f的误差大小–偏差)
- 在假设空间 H \mathcal{H} H中找到该 G G G的能力 (即 H \mathcal{H} H中找到的 g g g与 G G G的误差大小–方差)
在实践中,Bias与Variance往往不能兼得的。若要 H \mathcal{H} H更好近似 f f f,则要求 H \mathcal{H} H更复杂,包含更多假设,降低模型的Bias,但相应在更大范围内寻找 G G G,找到的 g g g越可能远离 G G G,就一定程度上会提高模型的Variance。偏差与方差就是为了描述这两种情况且找到一个平衡点,使得 E o u t E_{out} Eout 与 E i n E_{in} Ein足够接近且 E o u t E_{out} Eout 足够小。
模型复杂度的影响
当固定训练样本,改变模型复杂度(模型描述能力),随着模型复杂度的增加,其对训练数据集的描述能力增加(可能发生过拟合),该模型在验证集上偏差减小、方差增大。相反,随模型复杂度降低,其对训练集描述能力降低(可能发生欠拟合),模型在验证集上偏差增大、方差减少。
样本量的影响
在样本量较少时,应选择简单的模型,否则方差可能很大。样本量充分大时,应选择较为复杂的模型,因为大量数据可减少方差,复杂模型可减少偏差。
在试图用有限训练样本去估计无限的真实数据时,这些数据的真实性>模型的先验知识,就会尽量保证模型在训练样本上的准确度,这样可以减少模型的Bias,但学习到的模型很可能会失去一定的泛化能力,从而造成过拟合,降低模型在真实数据上的表现,增加模型的不确定性。相反,对于模型的先验知识更重要时,在学习模型的过程中对模型增加更多的限制,就可以降低模型的variance,提高模型的稳定性,但也会使模型的Bias增大。
学习曲线
当模型简单时,起初 E o u t E_{out} Eout 与 E i n E_{in} Ein都很大,随着 N N N的增加, E o u t E_{out} Eout 与 E i n E_{in} Ein将近。当模型很复杂时, N N N很小时, E i n E_{in} Ein起初可小至0; E o u t E_{out} Eout非常大;随着 N N N的增加, E o u t E_{out} Eout 与 E i n E_{in} Ein靠拢,其靠拢值要小于简单模型,但 E o u t E_{out} Eout 与 E i n E_{in} Ein距离程度要大于简单模型。由于目的为得到小的 E o u t E_{out} Eout,所以大量数据时,应优先选择复杂模型。
VC维与方差偏差比较:
在Bias-Variance图中,蓝色点表示方差,其未随 N N N而改变。原因:偏差是相同大小的不同数据集下拟合效果最好的。虽然可能 更大的数据集能够得到更好的近似,但不同大小非常多的数据集拟合时,它们的数学期望应该是相近的而且接近 f f f,所以在上图中就表现为一条平行于 x 轴的水平线。