机器学习--偏差(Bias)、方差(Variance)和误差(error)

来源:互联网 发布:素材软件 编辑:程序博客网 时间:2024/04/26 23:12

对学习算法除了通过实验估计其泛化性能,还通过“偏差-方差分解”来解释学习算法的泛化性能。偏差-方差分解试图对学习算法的期望泛化错误率(模型输出值与真实值之差的均值(期望))进行分解。
假设有一数据集,对测试样本xy为真实的标签,由于可能出现的噪声在数据集上的便签为yDf(x;D)为在训练集上训练得到的模型f在x上的输出。

偏差、方差和误差的含义:
偏差(Bias)度量了学习算法根据样本拟合的模型的输出预测结果的期望真实值之间的偏离程度,即刻画了学习算法本身的拟合能力。(在样本上拟合的好不好,模型本身的精准度)

方差(Variance) 度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响(模型的每一次输出结果与模型输出期望之间的误差(模型在测试集上的表现),模型的稳定性)

误差(Error)反映的是整个模型的准确度, Error = Bias + Variance

公式表示:

学习算法的期望预测(模型的输出预测结果的期望):

f^(x)=ED[f(x;D)]

Bias
bias(x)=f^(x)y

Variance:
var(x)=ED[f(x;D)f^(x)]

Error:
e(x)=f(x;D)y

通俗来说, 假设我们现在有一组训练数据,需要训练一个模型(基于梯度的学习)。起初,对于初始的模型,输出值和真实值差异很大,即偏差很大;但是方差很小,因为训练数据还没有对模型产生影响,不同的训练集对模型的输出影响不大。
随着训练过程的进行,偏差减小,输出值和真实值差异变小,模型在训练集上变得更加精准。但是如果我们训练得时间太久了,方差就会变得很大,因为我们除了学习到关于真实模型的信息,还学到了许多具体的,只针对我们使用的训练集的信息。而不同的可能训练数据集之间的某些特征和噪声是不一致的,这就导致了我们的模型在很多其他的数据集上就无法获得很好的效果,也就是所谓的overfitting(过拟合)。

在实际的机器学习中,Bias与Variance往往是不能兼得的。如果想要降低偏差,就要将模型复杂化,但是容易过拟合。反之,想要降低方差,就要简化模型,但是容易欠拟合。

给定一个学习任务,我们最终想要在测试集上的误差最小,minErrortest。一般的规则就是:先使训练误差最小,然后是训练误差尽量去接近测试误差。
minEtrain 就相当于将模型更好的拟合训练数据,复杂化模型—降低偏差
训练误差尽量去接近测试误差 就相当于将模型简化(模型参数少,也就是说可以挖掘出了不同数据集的共同内在规律),使得模型对不同的数据集结果波动不大—降低方差

更多了解可以参考:
https://www.zhihu.com/question/27068705

0 0