泛化能力, 偏差, 方差

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

算法在不同训练集上学得的结果很可能不同,即便训练集是来自同一个分布。对测试样本 $x$,令 $y_D$ 为 $x$ 在数据集中的标记,$y$ 为 $x$ 的真实标记,$f(x;D)$ 为训练集 $D$ 上学得模型 $f$ 在 $x$ 的预测输出。以回归任务为例,学习算法的期望预测为:

$D$ 是指在训练集 $D$ 上进行训练得到模型 $f$

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

理解为不同训练集 $D$ 预测结果的方差

噪声为:

标记 $y_D \neq y$ 的情况:也就是数据的标记不一定是真实的

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

为便于讨论,假设噪声期望为零,即 $\mathbb { E } _ { D } \left[ y _ { D } - y \right] = 0$,注意并不是噪声为零,通过简单的多项式展开合并,可对算法的期望泛化误差进行分解:

于是,

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

回顾偏差、方差、噪声的含义:偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差度量了同样大小的训练集的变动所导致的学习性能的变化,即科幻了数据扰动所造成的影响;噪声则表达了当前任务上任何学习算法所鞥呢达到的期望泛化误差的下界,即刻画了学习问题本身的难度。

偏差-方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度决定的,给定学习任务,为了取得好的泛化性能,则需使偏差较小,能够充分拟合数据,并使方差较小,即是的数据扰动产生的影响小。

一般来说,偏差与方差是有冲突的,这称为偏差-方差窘境(bias-variance dilemma)。



给定学习任务,假定我们能控制学习算法的训练程度,则在训练不足时,学习器的拟合能力不够强,训练数据的扰动不足以使学习期产生显著变化,此时偏差主导了泛化错误率;随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器所学到,方差逐渐主导了泛化错误率;在训练程度充足后,学习器的拟合能力已非常强,训练数据发生的轻微扰动都会导致学习器发生显著变化,若训练数据自身的、非全局的特性被学习器学到了,则将发生过拟合。