偏差与方差
我们都知道,泛化误差可以分解为噪声,偏差和方差,即泛化误差是由噪声,偏差和方差共同决定的,但是为什么是由他们三个决定的,这里做一个比较详细的说明。
首先,我们先做几个符号的说明:
yD:
测试样本
x
在数据集中的标记;
那么我们可以知道模型的期望预测值为
f¯(x)=ED[f(x;D)]
方差为
var(x)=ED[(f(x;D)−f¯(x))2]
通过定义我们可以看到方差描述的是预测结果的稳定性,即数据集的变化对于预测结果的影响,同样也度量了数据集变化对于模型学习性能的变化,方差越小,说明我们的模型对于数据集的变化越不敏感,也就是对于新数据集的学习越稳定
偏差为
bias2(x)=(f¯(x)−y)2
我们可以看到偏差描述的是平均预测结果与真实结果之间的差距,即其描述了模型对于数据的拟合程度,偏差越小,说明模型对数据拟合的越好
噪声为
ϵ2=ED[(yD−y)2]
我们可以看到噪声描述的是数据集中样本的标记与这些样本真实标记的距离,只要是数据,都一定拥有噪声,因此我们可以认为噪声误差为模型训练的下限,因为这部分误差无论模型怎么学习都不可能消除,这是数据带来的本源误差。
通常来说,方差与偏差是冲突的,这个称之为 偏差-方差窘境。我们可以知道当我们的模型训练不足的时候,模型的方差是比较小的,但是偏差是比较大的,方差小的原因是此时的模型拟合能力不够强,因此数据的扰动还不足以是模型产生足够的变化,但是此时预测数据与真实label相差很大,故偏差很大;但是当模型训练过头,即过拟合的时候,此时偏差很小,几乎为0,但是方差很大,因为过拟合,所以数据只需要轻微的扰动,就可能导致预测结果很不确定。如下图所示:
最上面那一条是泛化误差,我们可以看到,随着训练程度的加深,方差在逐渐加大,而偏差则是在逐渐减小。
那么为什么泛化误差可以分解为方差+偏差+噪声,证明如下:
E(f;D)=ED[(f(x;D)−yD)2]=ED[(f(x;D)−f¯(x)+f¯(x)−yD)2]=ED[(f(x;D)−f¯(x))2+(f¯(x)−yD)2+2((f(x;D)−f¯(x))(f¯(x)−yD))]=ED[(f(x;D)−f¯(x))2]+ED[(f¯(x)−yD)2]=var(x)+ED[(f¯(x)−y+y−yD)2]=var(x)+ED[(f¯(x)−y)2]+ED[(y−yD)2]=var(x)+bias2(x)+ϵ2
故我们说泛化误差可以分解为方差、偏差和噪声
这里要注意,噪声的期望始终为0