快捷搜索:  汽车  科技

机器学习的方差和偏差(集成学习的偏差和方差)

机器学习的方差和偏差(集成学习的偏差和方差)偏差指的是由大小为m的训练数据集训练出的模型的输出的平均值和真实模型输出之间的偏差。偏差通常是由于我们对学习算法做了错误的假设所导致的,比如真实模型是某个二次函数,但我们假设模型是一次函数。由偏差带来的误差通常在训练误差上就能体现出来。在有监督学习中,模型的泛化误差来源于两个方面——偏差和方差,具体来 讲偏差和方差的定义如下:泛化误差(generalization error)=偏差(Biase) 方差(Variance)二、 什么是偏差和方差什么是模型的偏差和方差,Boosting和Bagging方法与偏差和方差的关系是什么,如何根据偏差和方差这两个指标来指导模型的优化和改进。

简介:

我们经常用过拟合、欠拟合来定性地描述模型是否很好地解决了特定的问 题。从定量的角度来说,可以用模型的偏差(Bias)与方差(Variance)来描述模型的性能。集成学习往往能够“神奇”地提升弱分类器的性能。

一、 偏差和方差怎么来的

如果我们用训练数据集去训练一个模型,通常的做法是需要定义一个误差函数,接着是将这个误差的最小化过程,来提高模型的性能。不过单纯地将训练数据集的损失最小化,并不能保证在解决更一般的问题时模型仍然是最优,甚至不能保证模型是可用的。这个训练数据集的损失与一般化的数据集的损失之间的差异就叫做泛化误差(generalization error)。泛化误差我们也可以分解为偏差(Biase)和(Variance)两部分。

泛化误差(generalization error)=偏差(Biase) 方差(Variance)

二、 什么是偏差和方差

什么是模型的偏差和方差,Boosting和Bagging方法与偏差和方差的关系是什么,如何根据偏差和方差这两个指标来指导模型的优化和改进。

在有监督学习中,模型的泛化误差来源于两个方面——偏差和方差,具体来 讲偏差和方差的定义如下:

偏差指的是由大小为m的训练数据集训练出的模型的输出的平均值和真实模型输出之间的偏差。偏差通常是由于我们对学习算法做了错误的假设所导致的,比如真实模型是某个二次函数,但我们假设模型是一次函数。由偏差带来的误差通常在训练误差上就能体现出来。

偏差的计算方法:

机器学习的方差和偏差(集成学习的偏差和方差)(1)

方差指的是由大小为m的训练数据集训练出的所有模型的输出的方差。方差通常是由于模型的复杂度相对于训练样本数m过高导致的,比如一共有100个训练样本,而我们假设模型是阶数不大于200的多项式函数。由方差带来的误差通常体现在测试误差相对于训练误差的增量上。

方差的计算方法:

机器学习的方差和偏差(集成学习的偏差和方差)(2)

通过上面的定义我们可能很难直观的理解很准确,为了更清晰的理解偏差和方差,我们用一个投靶游戏的例子来进一步描述这二者的区别和联系。假设一次投靶就是一个机器学习模型对一个样本进行预测。射中靶心位置代表预测准确,偏离靶心越远代表预测误差越大。我们通过n次采样得到n个大小为m的训练样本集合,训练出n个模型,对同一个样本做预测,相当于我们做了n次投靶,投靶结果如图1所示。我们最期望的结果就是左上角的结果,投靶结果又准确又集中,说明模型的偏差和方差都很小;右上图虽然投靶结果的中心在靶心周围,但分布比较分散,说明模型的偏差较小但方差较大;同理,左下图说明模型方差较小,偏差较大;右下图说明模型方差较大,偏差也较大。

机器学习的方差和偏差(集成学习的偏差和方差)(3)

图1:偏差与方差表示图

三、 如何减小偏差和方差

我们通过Boosting和Bagging进行分析,简单回答这个问题就是:Bagging能够提高弱分类器性能的原因是降低了方差,Boosting能够提升弱分类器性能的原因是降低了偏差。为什么这么讲呢?

首先,Bagging是Bootstrap Aggregating的简称,意思就是再抽样,然后在每个样本上训练出来的模型取平均。

假设有n个随机变量,方差记为σ2,两两变量之间的相关性为ρ,则n个随机变量的均值

机器学习的方差和偏差(集成学习的偏差和方差)(4)

的方差为

机器学习的方差和偏差(集成学习的偏差和方差)(5)

。在随机变量完全独立的情况下,n个随机变量的方差为σ2/n,也就是说方差减小到了原来的1/n。

再从模型的角度理解这个问题,对n个独立不相关的模型的预测结果取平均,方差是原来单个模型的1/n。当然,模型之间不可能完全独立。为了追求模型的独立性,诸多Bagging的方法做了不同的改进。比如在随机森林算法中,每次选取节点分裂属性时,会随机抽取一个属性子集,而不是从所有属性中选取最优属性,这就是为了避免弱分类器之间过强的相关性。通过训练集的重采样也能够带来弱分类器之间的一定独立性,从而降低Bagging后模型的方差。

再看Boosting,在训练好一个弱分类器后,我们需要计算弱分类器的错误或者残差,作为下一个分类器的输入。这个过程本身就是在不断减小损失函数,来使模型不断逼近“靶心”,使得模型偏差不断降低。但Boosting的过程并不会显著降低方差。这是因为Boosting的训练过程使得各弱分类器之间是强相关的,缺乏独立性,所以并不会对降低方差有作用。

四、 偏差和方差的相互关系

关于泛化误差、偏差、方差和模型复杂度的关系如图2所示。不难看出,方 差和偏差是相辅相成,矛盾又统一的,二者并不能完全独立的存在。对于给定的 学习任务和训练数据集,我们需要对模型的复杂度做合理的假设。如果模型复杂 度过低,虽然方差很小,但是偏差会很高;如果模型复杂度过高,虽然偏差降低 了,但是方差会很高。所以需要综合考虑偏差和方差选择合适复杂度的模型进行 训练。一般来说,简单的模型会有一个较大的偏差和较小的方差,复杂的模型偏差较小方差较大。

机器学习的方差和偏差(集成学习的偏差和方差)(6)

五、 总结

本次分享我们主要了解了泛化误差的两个组成部分偏差和方差,以及抽象的描述了它们在模型预测中的特征现象。并且分析了在集成学习中Bagging方法有减小方差、Boosting有减小偏差的原因。偏差和方差是有相互关系的,设置模型比较复杂的时候可能有偏差小方差大的现象,模型简单的时候会有偏差大方差小的现象。所以需要根据数据的情况选择合理的模型,才能够避免遇到以上情况。

参考文献

[1] 陈雷.深度学习与MindSpore实践[M].清华大学出版社:2020.

[2] 诸葛越,葫芦娃.百面机器学习[M].人民邮电出版社:2020.

猜您喜欢: