机器学习
上QQ阅读APP看书,第一时间看更新

2.5 偏差与方差

对学习算法除了通过实验估计其泛化性能,人们往往还希望了解它“为什么”具有这样的性能。“偏差–方差分解”(bias-variance decomposition)是解释学习算法泛化性能的一种重要工具。

有可能出现噪声使得yD≠y。

偏差–方差分解试图对学习算法的期望泛化错误率进行拆解。我们知道,算法在不同训练集上学得的结果很可能不同,即便这些训练集是来自同一个分布。对测试样本x,令yD为x在数据集中的标记,y为x的真实标记,f(x;D)为训练集D上学得模型f在x上的预测输出。以回归任务为例,学习算法的期望预测为

使用样本数相同的不同训练集产生的方差为

噪声为

期望输出与真实标记的差别称为偏差(bias),即

考虑到噪声不依赖于f,由式(2.37),最后项为0。

为便于讨论,假定噪声期望为零,即D[yD-y]=0。通过简单的多项式展开合并,可对算法的期望泛化误差进行分解:

于是,

噪声期望为0,因此最后项为0。

也就是说,泛化误差可分解为偏差、方差与噪声之和。

回顾偏差、方差、噪声的含义:偏差(2.40)度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差(2.38)度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声(2.39)则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。偏差–方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。

很多学习算法都可控制训练程度,例如决策树可控制层数,神经网络可控制训练轮数,集成学习方法可控制基学习器个数。

一般来说,偏差与方差是有冲突的,这称为偏差–方差窘境(bias-variance dilemma)。图2.9给出了一个示意图。给定学习任务,假定我们能控制学习算法的训练程度,则在训练不足时,学习器的拟合能力不够强,训练数据的扰动不足以使学习器产生显著变化,此时偏差主导了泛化错误率;随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器学到,方差逐渐主导了泛化错误率;在训练程度充足后,学习器的拟合能力已非常强,训练数据发生的轻微扰动都会导致学习器发生显著变化,若训练数据自身的、非全局的特性被学习器学到了,则将发生过拟合。

图2.9 泛化误差与偏差、方差的关系示意图