您的位置:首页 > 其它

偏差(Bias)-方差(Variance)权衡(tradeoff)

2018-03-25 18:45 253 查看
参考文献:

1. Understanding the Bias-Variance Tradeoff

2. 机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?

3.Bias–variance tradeoff

在西瓜书第八章<集成学习>中看到两句话:

Boosting主要关注降低偏差

Bagging主要关注降低方差

对于这两句话到底有什么含义?

首先WIKI百科中有这样一段话:

In statistics and machine learning, the bias–variance tradeoff (or dilemma) is the problem of simultaneously minimizing two sources of error that prevent supervised learning algorithms from generalizing beyond their training set:

The bias is an error from erroneous assumptions in the learning algorithm. High bias can cause an algorithm to miss the relevant relations between features and target outputs (underfitting).

The variance is an error from sensitivity to small fluctuations in the training set. High variance can cause an algorithm to model the random noise in the training data, rather than the intended outputs (overfitting).

大意是这样:

在监督学习中,如果能将模型的方差与误差权衡好,那么可以认为该模型的泛化性能(对于新数据)将会表现出好的结果。

偏差刻画的是算法本身的性能。高偏差将会造成欠拟合(Underfitting) [miss the relevant relations between features and target outputs]。换句话说,模型越复杂偏差就越小;而模型越简单,偏差就越大。

方差用来衡量因训练集数据波动(fluctuations)而造成的误差影响。高方差将会造成过拟合(Overfitting)。

在周志华老师<机器学习>书中是这样阐述的:

偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了算法本身的拟合能力

方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响

噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题的本身难度

偏差-方差分解说明,泛化性能是由学习算法的能力数据的充分性以及学习任务本身的难度所共同决定的。给定的学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使数据扰动产生的影响小。一般来说方差与偏差是有冲突的,这称为方差-偏差窘境。如下图所示:



对于一个模型来说误差主要有三部分构成,推导过程

bias^2(x) + var(x) + ζ^2 (偏差+方差+噪声)

下面这张将更形象的阐述偏差与方差之间的关系:



从上图我们可以看到偏差与方差有四种组合。

:bias描述的是根据样本拟合出的模型的输出预测结果的期望与样本真实结果的差距,简单讲,就是在样本上拟合的好不好。要想在bias上表现好,low bias,就得复杂化模型,增加模型的参数,但这样容易过拟合 (overfitting),过拟合对应上图是high variance,点很分散。low bias对应就是点都打在靶心附近,所以瞄的是准的,但手不一定稳。

:varience描述的是样本上训练出来的模型在测试集上的表现,要想在variance上表现好,low varience,就要简化模型,减少模型的参数,但这样容易欠拟合(unfitting),欠拟合对应上图是high bias,点偏离中心。low variance对应就是点都打的很集中,但不一定是靶心附近,手很稳,但是瞄的不准。

如果我们能够获得所有可能的数据集合,并在这个数据集合上将loss最小化,这样学习到的模型就可以称之为“真实模型”,当然,我们是无论如何都不能获得并训练所有可能的数据的,所以“真实模型”肯定存在,但无法获得,我们的最终目标就是去学习一个模型使其更加接近这个真实模型。

而bias和variance分别从两个方面来描述了我们学习到的模型与真实模型之间的差距。Bias是 “用所有可能的训练数据集训练出的所有模型的输出的平均值” 与 “真实模型”的输出值之间的差异;

Variance则是“不同的训练数据集训练出的模型”的输出值之间的差异。

这里需要注意的是我们能够用来学习的训练数据集只是全部数据中的一个子集。想象一下我们现在收集几组不同的数据,因为每一组数据的不同,我们学习到模型的最小loss值也会有所不同,当然,它们与“真实模型”的最小loss也是不一样的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: