variance&deviation tradeoff(方差、偏差权衡)

0 写在前面

今天,突然想起来偏方差的分解问题,于是我想系统的推一推公式,再次复习一下周志华老师的西瓜书上关于偏方差的问题。

1 正文

首先周老师为了引入偏方差分解问题,提出了一个问题:“对学习算法除了通过实验估计其泛化性能,人们往往还希望了解为什么具有这样的性能。偏差-方差分解(bias-variance decomposition)是解释学习算法泛化性能的一种重要工具。”

2 公式推导

西瓜书p45页公式推导:
这里解释一点:即假设噪声的期望为0的合理性
对于一般算法问题,我们都会假设噪声的分布是服从0均值和单位方差的高斯分布,这遵循大数定律,也遵循自然规则。
variance&deviation tradeoff(方差、偏差权衡)

3 偏差-方差窘境(bias-variance dilemma)

为了得到泛化性能好的模型,我们需要使偏差较小,即能充分拟合数据,并且使方差小,使数据扰动产生的影响小。但是偏差和方差在一定程度上是有冲突的,这称作为偏差-方差窘境。

下图给出了在模型训练不足时,拟合能力不够强,训练数据的扰动不足以使学习器产生显著变化,此时偏差主导泛化误差,此时称为欠拟合现象。当随着训练程度加深,模型的拟合能力增强,训练数据的扰动慢慢使得方差主导泛化误差。当训练充足时,模型的拟合能力非常强,数据轻微变化都能导致模型发生变化,如果过分学习训练数据的特点,则会发生过拟合

针对欠拟合和过拟合,我们都有对应的解决办法。

总结来说就如下图所示,简单的模型偏差大,方差小;复杂的模型则相反,偏差小,方差大。随着模型越来越复杂,偏差逐渐减小,方差逐渐增大。我们发现无法在减少偏差的同时也减少方差。因此,我们需要找到一个折中的方案,即找到总误差最小的地方,这就叫做偏差-方差均衡(Bias-Variance Tradeoff)

variance&deviation tradeoff(方差、偏差权衡)

3.1 如何确定自己的模型是偏差大还是方差大?

高偏差:训练集误差大,验证集误差和训练集误差差不多大

高方差:训练集误差小,验证集误差非常大

可以用**学习曲线(Learning Curves)**来查看模型是高偏差还是高方差。学习曲线会展示误差是如何随着训练集的大小的改变而发生变化的,我们会监控两个误差得分:一个针对训练集,另一个针对验证集。

下图深蓝曲线代表随训练样本数变化而变化的训练误差,浅蓝曲线则代表验证误差。

variance&deviation tradeoff(方差、偏差权衡)
variance&deviation tradeoff(方差、偏差权衡)

3.2 如何解决高偏差或者高方差问题

这个问题可以转换到如何解决过拟合和欠拟合问题

偏差-方差的分解公式只在基于均方误差的回归问题上可以进行推导,但通过实验表明,偏差-方差均衡无论是对回归问题还是分类问题都是适用的