深度学习_集成学习(Ensemble)学习记录(持续更新中)

一.集成学习(Ensemble)介绍

集成学习也称为模型融合(Model Ensemble)、多分类器学习(multiple Classifier System)或基于委员会的学习(Committee-Based Learning)。是一种有效提升机器学习效果的方法。
不同于传统的机器学习方法在训练集上构建一个模型,集成学习通过构建并融合多个模型来完成学习任务。

首先我们通过下图的一个例子来介绍集成的基本概念,下图是一个二分类问题。

深度学习_集成学习(Ensemble)学习记录(持续更新中)_第1张图片图中的数据均是测试数据,a、b、c分别是三个不同模型在测试集上的分类结果。需要注意的是,一般在做集成的时候,相同模型结构的不同参数是比较常见的情况(同质模型融合(Homogeneous Model Ensemble))。但是不能死板,我们也可以把不同模型甚至完全不同的算法做集成学习(异质模型融合(Heterogeneous Model Ensemble))。

上图中每个模型的错误分类的样本都用圆圈标了出来,可以看到每个模型大体都是准确的,但是错误的情况也会存在。这种情况下,我们可以考虑用集成的方法:将3个不同模型的记过进行综合考虑,因为错误分类毕竟是少数,所以最终的结果的可靠性就会增加。

上图d模型就是进行集成学习的结果,可以看到效果变好了。这里采用的方法是多数投票(majority vote):对3个模型分类结果中多数的结果作为最终结果。除了多数投票,在实际应用中常见的方法还有取均值或者中值,但是基本思想都是一样的。“三个臭皮匠,赛过诸葛亮”。

以上,集成学习主要包含两个步骤:

  1. 训练若干个单模型(Signle Model),也称作基学习器(Base Learner)、个体学习器(Individual Learner)或者组件学习器(Component learner)。这些单模型可以是决策树、神经网络或者是其他类型的算法。
  2. 模型融合,相应的方法有平均法、投票法和学习法等等。我们不单单可以进行一级模型融合,我们也可以进行多级模型融合,或者是一级模型和二级模型的混合融合类。

集成学习的泛化能力要比单模型强得多,这也是集成学习能够被人们广泛研究和应用的原因。集成学习可以整合多个"弱"模型最终得到一个"强"模型。

集成法是通过多个模型的结果综合考虑给出最终的结果,虽然准确率和稳定性都会提高,但是训练多个模型的计算成本也是非常高的,如果训练10个左右的模型,则计算成本高了一个量级。

二.集成学习理论分析

1.融合收益

2.模型误差-分歧分解

3.模型多样性度量

4.多样性增强

单模型的多样性对性能有很大的提高,那么我们就应该尽量有效地生成多样性大的单模型。一般增强多样性的思路是在学习过程中引入随机性,常见做法主要是对数据样本、输入属性、输出表示、算法参数进行扰动。

  1. 数据样本扰动:给定初始数据集,从中产生出不同的数据子集,再利用不同的数据子集训练出不同的单模型。数据扰动通常基于采样法,例如Bagging算法使用自助采样,AsdaBoost算法使用序列采样。此种做法简单高效、使用最广,但对扰动不敏感的基学习算法(稳定学习算法),如线性模型、朴素贝叶斯算法、支持向量机、k最近邻等,效果不佳。
  2. 输入属性扰动:训练样本通常由一组属性描述,不同的"子空间"提供了观察数据的不同视角。如果数据包含大量冗余属性,使用属性扰动会有好处(节省空间、多样性提升等);但是若样本数据属性较少或冗余属性很少,则输入属性扰动不适宜使用。
  3. 输出表示扰动:此类做法的基本思路是对输出表示进行操纵以增强多样性。如将多分类任务转换为多个二分类任务来训练单模型;"翻转法"随机改变训练样本标记(类似引入噪声);"输出调制法"将分类输出转换为回归输出来训练单模型。
  4. 算法参数扰动:模型训练一般都需要调配参数,如神经网络的隐层节点数量、连接权值等。基础参数被赋予不同的值,产生的单模型往往差别较大。单模型通常需要使用交叉验证来确定参数。事实上我们已使用了不同参数训练出多个单模型,只不过最终只使用了一个。而模型融合则是将它们结合起来使用。由此可见,模型融合技术实际开销并不比单模型大很多。

可以同时使用不同的多样性增强策略以达到最佳效果,例如随机森林算法同时使用了数据样本扰动和输入属性扰动两个策略。

三.融合方法

1.平均法

2.投票法

3.Bagging

4.Stacking

Stacking的基本思路是:通过一个模型来融合若干个单模型的预测结果,目的是降低单模型的泛化误差。

单模型被称为一级模型,Stacking融合模型被称为二级模型或元模型。

你可能感兴趣的:(深度学习)