偏差-方差分解是什么?把泛化误差拆成三部分来理解
偏差-方差分解(Bias-variance Decomposition)是解释学习算法泛化性能的一种重要工具:它把模型的期望泛化误差拆分成偏差、方差和噪声三个部分,帮助我们理解误差到底来自哪里,从而有针对性地改进模型。
分解的设定
设想这样一个思想实验:从同一个数据分布中,反复地抽取许多份大小相同、彼此独立的训练集,在每一份训练集上都用同一个算法训练出一个模型。由于训练集不同,这些模型对同一个测试样本 x 的预测会有所不同。记这些预测的平均值为“期望预测”。另外,样本 x 的真实值也可能带有噪声:我们观察到的标签,可能与它“本应”的真实值有出入,比如测量误差或标注错误。
三个组成部分
对于回归问题,使用平方误差作为损失,可以严格地推导出:在所有训练集上取平均的期望泛化误差,等于偏差的平方,加上方差,再加上噪声。偏差:期望预测与真实值之间的差距,度量的是学习算法的期望预测与真实结果之间的偏离程度,刻画了学习算法本身的拟合能力。偏差大,说明模型从根本上就没能抓住真实的规律。方差:在不同训练集上得到的预测与期望预测之间的差距的平均,度量的是同样大小的训练集的变动所导致的学习性能的变化,刻画了数据扰动所造成的影响。方差大,说明模型对训练数据过于敏感。噪声:观测标签与真实值之间差距的平均,表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,刻画了学习问题本身的难度。噪声是数据固有的,无论模型多好都无法消除。
可以用射箭来打比方:期望预测就像多次射箭的平均落点,偏差是平均落点离靶心有多远,方差是每支箭的落点有多分散,噪声则相当于靶心本身在随机晃动。
它告诉我们什么
偏差-方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。要取得好的泛化性能,需要让偏差较小,也就是能够充分拟合数据,同时让方差较小,也就是数据扰动产生的影响较小。高偏差对应欠拟合,可以通过使用更复杂的模型、增加特征、减弱正则化来改善;高方差对应过拟合,可以通过增加数据、加强正则化、简化模型或使用 Bagging 等集成方法来改善。如果两者都已经很小、误差仍然不低,那么剩下的主要是噪声,这时应该考虑改进数据的质量,而不是继续调整模型。
推广和局限
上面的严格分解只对平方误差成立。对于分类问题常用的 0-1 损失,误差不能简单地相加,研究者提出了多种推广的定义,比如 Pedro Domingos 在 2000 年提出的统一分解框架,但它们的形式更复杂,含义也不完全相同。另外,在实际中我们只有一份训练集,无法真的去抽取许多份,偏差和方差通常只能通过自助采样或交叉验证等方法来近似地估计。因此,偏差-方差分解更多地是一种帮助理解的理论工具。