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