1.55k likes | 1.89k Views
第 四 章 集成学习与弱可学习理论. 1. 引言. 集成学习的根本思路是对同一问题使用一系列学习器进行学习,并使用一定的策略把各个不同的学习结果进行整合从而获得比单个学习器更好的学习效果。 主要任务 : 集成学习并非力求得到单一的最优分类器,而是通过一组由多个假设组合而成的集成得到更优的假设。. 泛化能力 ( generalization ability )是指机器学习算法对新鲜样本的适应能力。学习的目的是学到隐含在数据对背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。. 集成学习的发展和现状. 2.
E N D
1 引言
集成学习的根本思路是对同一问题使用一系列学习器进行学习,并使用一定的策略把各个不同的学习结果进行整合从而获得比单个学习器更好的学习效果。集成学习的根本思路是对同一问题使用一系列学习器进行学习,并使用一定的策略把各个不同的学习结果进行整合从而获得比单个学习器更好的学习效果。 • 主要任务:集成学习并非力求得到单一的最优分类器,而是通过一组由多个假设组合而成的集成得到更优的假设。
泛化能力(generalization ability)是指机器学习算法对新鲜样本的适应能力。学习的目的是学到隐含在数据对背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。
1990年,Hanson和Salamon对神经网络集成进行了研究,第一次提出了神经网络集成的概念。他们证明,在保证神经网络的精度高于50%的情况下,通过训练多个神经网络并将其结果通过投票法进行结合,可以显著地提高学习系统的泛化能力。1990年,Hanson和Salamon对神经网络集成进行了研究,第一次提出了神经网络集成的概念。他们证明,在保证神经网络的精度高于50%的情况下,通过训练多个神经网络并将其结果通过投票法进行结合,可以显著地提高学习系统的泛化能力。
Valiant和 Kearns提出了弱学习和强学习的概念 。识别错误率小于1/2,也即准确率仅比随机猜测略高的学习算法称为弱学习算法;识别准确率很高并能在多项式时间内完成的学习算法称为强学习算法。 • 同时 ,Valiant和 Kearns首次提出了 PAC学习模型中弱学习算法和强学习算法的等价性问题,即任意给定仅比随机猜测略好的弱学习算法 ,是否可以将其提升为强学习算法 ? 如果二者等价 ,那么只需找到一个比随机猜测略好的弱学习算法就可以将其提升为强学习算法 ,而不必寻找很难获得的强学习算法。1990年, Schapire最先构造出一种多项式级的算法 ,对该问题做了肯定的证明 ,这就是最初的 Boosting算法。
1995年,Freund对Schapire的算法(最初的 Boosting算法)进行了改进,提高了算法的效率。但Schapire 和Freund的算法在解决实际问题时有一个重大缺陷,即要求事先知道弱学习算法学习正确率的下界,这在实际问题中很难做到。
1996年,Freund和Schapire提出了著名的AdaBoost(Adaptive Boost)算法,该算法的效率与Freund算法很接近,却可以非常容易地应用到实际问题中,因此,该算法已成为目前最流行的Boosting算法。 • Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。
1996年,Breiman从可重复取样技术(Bootstrap Sampling)入手,提出了著名的Bagging方法。在该方法中,各学习器的训练集由从原始训练集中随机选取若干示例组成,训练集的规模与原始训练集相当,训练样本允许重复选取。这样,原始训练集中某些示例可能在新的训练集中出现多次,而另外一些示例则可能一次也不出现。在预测新的示例时,所有学习器的结果通过投票的方式来决定新示例的最后预测结果。Bagging方法通过重新选取训练集增加了个体学习器的差异,Breiman将此类算法称为P&C(Perturb and Combine)族算法,他指出,稳定性是Bagging能否发挥作用的关键因素,Bagging能提高不稳定学习算法例如神经网络和决策树的预测精度,而对稳定的学习算法例如k近邻和简单贝叶斯算法效果则不明显,有时甚至使预测精度降低。
国内,唐耀华等针对支持向量机(SVM)在应用于集成学习中会失效的问题,提出了一种选择性SVM集成学习算法(SE-SVM)。国内,唐耀华等针对支持向量机(SVM)在应用于集成学习中会失效的问题,提出了一种选择性SVM集成学习算法(SE-SVM)。 • 贾华丁等提出了采用二重扰动机制的支持向量机的集成训练算法。 • 2002年周志华等人提出了二次学习的思想,将集成学习用作预处理,设计出了泛化能力强、可理解性好的新型规则学习方法C4.5Rule-PANE。对二次学习进行了理论分析并设计出了新型决策树学习算法Nec4.5 。
在基本的Boosting和Bagging算法被提出以后,研究者们又陆续提出了大量的集成学习算法。一般来说,这些算法的学习过程可以分为两步,即个体学习器的生成以及个体学习器的结合。在基本的Boosting和Bagging算法被提出以后,研究者们又陆续提出了大量的集成学习算法。一般来说,这些算法的学习过程可以分为两步,即个体学习器的生成以及个体学习器的结合。
根据个体学习器生成方式的不同,目前的算法大致可以分为两类:根据个体学习器生成方式的不同,目前的算法大致可以分为两类: • 一类以AdaBoost为代表,在这一类算法中,个体学习器是顺序生成的,属于这一类的还有Arc-x4、MultiBoost 、fBoost、MiniBoost等算法。 • 另一类则以Bagging为代表,这类算法中个体学习器可以并行生成,属于这一类的集成算法还有SEQUEL、Wagging、P-Bagging和基于选择性集成的GASEN。
对个体学习器进行结合时,也有很多不同的策略。 • Perrone等人认为,采用加权平均可以得到比简单平均更好的泛化能力。但是,也有一些研究者认为,对权值进行优化将会导致过配(overfiting),从而使得集成的泛化能力降低,因此,他们建议使用简单平均。
在分类问题上,集成的输出往往由个体学习器投票决定,投票法是一种很早开始就获得广泛使用的方法,如quinlan和Breiman使用投票法对决策树算法进行集成等:在分类问题上,集成的输出往往由个体学习器投票决定,投票法是一种很早开始就获得广泛使用的方法,如quinlan和Breiman使用投票法对决策树算法进行集成等: • 绝对多数投票法:某分类成为最终结果当且仅当有超过半数的神经网络输出结果为该分类。 • 相对多数投票法:某分类成为最终结果当且仅当输出结果为该分类的神经网络的数目最多。 • 理论分析和大量实验表明,后者通常优于前者。因此,在对分类器进行集成时,目前大多采用相对多数投票法。
在2001年周志华提出了“选择性集成算法”之后,许多研究倾向于综合各种差异性获得方法、度量方法和选择性集成的思想来进行算法的设计。
ELRC(Byung等人提出 ) : 基于一种决策树的结构对原始数据进行划分,然后在划分 出的各个数据子集上基于不同的基本学习算法来生成基分类 器,最后选取分类效果最好的作为此数据子集上的分类器。 当对一个新示例作决策时,学习器能够自动选择与其相关的 基分类器参与决策。
数据离散化的基分类器构造方法(蔡铁等人提出 ) : 该方法采用粗糙集和布尔推理离散化算法处理训练样本集,能有效删除不相关和冗余的属性,提高基分类器的准确性和差异性。
集成学习是一个在迅速发展中的研究领域,从其出现到目前为止,短短十几年的时间,它已经广泛应用于语音识别、文本过滤、遥感信息处理、疾病诊断等众多领域,未来,仍将是一个快速发展期。集成学习是一个在迅速发展中的研究领域,从其出现到目前为止,短短十几年的时间,它已经广泛应用于语音识别、文本过滤、遥感信息处理、疾病诊断等众多领域,未来,仍将是一个快速发展期。
机器学习所关注的根本问题之一就是如何提高学习系统的泛化能力,也就是说,如何利用已有数据训练出学习器,使之能够尽可能好地处理新数据。由于集成学习为这一根本问题提供了一种有效可行的解决途径,因此它受到了国际机器学习界的广泛重视。
集成学习指的是为解决同一个问题训练出多个学习器。在对新的数据进行处理时,各个学习器在新数据上的结论以某种方式进行结合,以获得最终的结果。集成学习指的是为解决同一个问题训练出多个学习器。在对新的数据进行处理时,各个学习器在新数据上的结论以某种方式进行结合,以获得最终的结果。 • 以往的学习算法在假设空间中进行搜索时,往往会出现以下问题: 1.统计问题:如果有若干个假设在训练数据上的误差接近,学习算法就需要从中选择一个作为输出。这时就可能出现由于假设空间相对于可用的训练数据太大,使得选择出的假设不能够在未知的数据上获得好的效果。
2.计算问题:学习算法并不能保证学习到的假设是假设空间中最好的假设。例如,神经网络、决策树等技术为了寻找与训练数据吻合得好的假设,往往需要引入启发式的策略,然而启发式的策略(例如梯度下降)容易使学习算法陷入局部极小。2.计算问题:学习算法并不能保证学习到的假设是假设空间中最好的假设。例如,神经网络、决策树等技术为了寻找与训练数据吻合得好的假设,往往需要引入启发式的策略,然而启发式的策略(例如梯度下降)容易使学习算法陷入局部极小。 3.表示问题:如果学习算法搜索的假设空间中并不包含与目标函数相似的假设,在这样的假设空间中进行搜索会造成学习结果与学习目标有很大的差距。
集成学习能在一定程度上缓解上述的问题,这是因为:集成学习能在一定程度上缓解上述的问题,这是因为: 1.在统计问题上,集成学习通过保留多个与训练数据拟合较好的假设,并对它们的结果进行结合,从而可以在一定程度上缓解假设空间太大而训练数据相对不足的问题。 2.在计算问题上,集成学习的多个假设由于各自具有不同的局部极小,结合起来后就能够在一定程度上相互抵消,从而减小了算法陷入某个局部极小的风险。
3.在表示问题上,集成学习的多个假设的联合扩展了被表示的假设空间,从而使得搜索到的学习结果更加精确。3.在表示问题上,集成学习的多个假设的联合扩展了被表示的假设空间,从而使得搜索到的学习结果更加精确。
集成学习技术具有很强的泛化能力,它的作用主要体现在以下四个方面:集成学习技术具有很强的泛化能力,它的作用主要体现在以下四个方面: 1.提高预测结果的准确性 机器学习的一个重要目标就是对新的测试样本尽可能给出 最精确的估计。构造单个高精度的学习器是一件相当困难的 事情,然而产生若干个只比随机猜想略好的学习器却很容易。 研究者们在应用研究中发现,将多个学习器进行集成后得 到的预测精度明显高于单个学习器的精度,甚至比单个最好 的学习器的精度更高。因此,在难以直接获得高精度的学习 算法的问题上,可以利用集成学习技术将一些精度不够高的 弱学习算法提升为精度高的强学习算法。
2.提高预测结果的稳定性 有些学习算法单一的预测结果时好时坏,不具有稳定性, 能一直保持高精度的预测。通过模型的集成,可以以较高的 概率普遍取得很好的结果。 3.改进参数选择 对于一些算法而言,如BP神经网络、遗传算法,在解决实 际问题的时候,需要选择操作参数。但是这些操作参数的选 取没有确定性的规则可以依据,只能凭借经验来选取,为了 得到好的学习效果,往往需要反复调整学习参数。大多数情 况下,需要使用者具有充分的经验才能设定合适的参数值, 而对于非专业的一般操作人员会有一定的难度。而且参数选 择不同,结果会有很大的差异。集成学习技术可以利用一些 参数设置得并不太好的学习器取得较好的学习效果。
4.1 PAC(Probably Approximately Correct)理论 在机器学习领域中,自从Valiant关于PAC可学习性的文章发表后,改变了以往以概率1作为评价模式识别性能的局面,并带来了后来基于PAC学习模型的机器学习研究的巨大发展。
PAC(Probably Approximately Correct)理论 • PAC定义中有以下符号: • X: 实例空间,包含所有可能的样本 • c: 概念,是指一个X的子集,或者说是一个X中的元素到布尔值的{0,1}映射 • C: X上一系列概念的集合 D: X的概率分布 h: 要考察的算法输出的一个假设,我们希望它尽可能地接近c “尽可能地接近”的意思是,有比较大的概率(Probably)得到的结果在大部分情况下(Approximately)与c一致。
更严格地定义PAC : 集合C为PAC可学习的是指对于其中的所有c,对于任意分布D,对于任意小的数0<ε<1/2和0<δ<1/2,我们要考察的算法有至少(1-δ)的概率输出一个h满足P[h(x)!=c(x)] <=ε,并且算法花费时间与1/ε,1/δ成多项式关系。
4.2 强可学习与弱可学习理论: • 强可学习:令S为包含N个样本点(x1,y1),...,(xn,yn)的样本集,其中xn是按照某种固定但未知的分布D(x)随机独立抽取的。yn=f(xn),f属于某个已知的布尔函数集F。如果对于任意的D,任意的0≤ε,δ≤1/2,学习算法生成一个满足P[h(x)≠f(x)]≤ε的估计h的概率大于1-δ,并且学习算法的运行时间与1/ε,1/δ成多项式关系.则称这种学习算法为强学习算法。
弱可学习的相关定理:若一个满足P[h(x)≠f(x)]≤ε的估计h的概率大于(1/2)+δ,0≤δ≤1/2。弱可学习的相关定理:若一个满足P[h(x)≠f(x)]≤ε的估计h的概率大于(1/2)+δ,0≤δ≤1/2。 • 这意味着,一个概念如果是弱可学习的,那么只要求一个弱可学习算法产生的模型的精度高于50%,也就是比随机猜想稍好
强可学习在什么条件下与弱可学习等价? 1990年,Schapire回答了这个问题。他使用构造的方法证明:一个概念弱可学习的充要条件是这个概念强可学习。这个结论表明,在学习概念时,只需找到一个比随机猜测略好的弱学习算法,就可以将其提升为强学习算法,而不必直接去找通常情况下很难获得的强学习算法。
4.3 集成学习的基本概念 • 集成学习的广义定义:传统的机器学习方法是在一个由各种可能的函数构成的空间(称为假设空间)中寻找一个最接近实际分类函数的分类器。单个分类器模型主要有决策树、人工神经网络、朴素贝叶斯分类器等。集成学习的思路是在对新的实例进行分类的时候,把若干个单个分类器集成起来,通过对多个分类器的分类结果进行某种组合来决定最终的分类,以取得比单个分类器更好的性能。如果把单个分类器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。
狭义地说,集成学习是指利用多个同质的学习器来对同一个问题进行学习,这里的“同质”是指所使用的学习器属于同一种类型,例如所有的学习器都是决策树、都是神经网络等等。狭义地说,集成学习是指利用多个同质的学习器来对同一个问题进行学习,这里的“同质”是指所使用的学习器属于同一种类型,例如所有的学习器都是决策树、都是神经网络等等。 • 而随着该领域的发展,越来越多的学者倾向于接受广义定义。
采用广义定义有一个很大的好处,就是以往存在的很多名称上不同、但本质上很接近的分支,例如多分类器系统(multi-classifier system)、多专家混合(mixture of experts)、基于委员会的学习(committee-based learning)等,都统一地归属到集成学习之下。所以在广义的情况下,集成学习已经成为了一个包含内容相当多的、比较大的研究领域。
4.4 集成学习的算法框架 • 集成学习方法的三要素:个体生成方法、个体网络和结论合成方法。 • 两大步骤: 1.应用一定的个体生成方法,产生多个训练子集,分别训练得到多个独立的个体学习模型。 个体生成方法就是从原数据样本集产生不同的训练子集以训练得到个体网络,常用的如Bagging和Boosting使用的数据子集生成方法。 2.采用一定的结论合成方法,对构成集成的个体网络的输出进行合成,得到神经网络集成的结果。
4.4.1 个体基学习器的生成方式 • 为了获得较理想的结果,客观要求基分类器之间保证相互独立性,一般认为有效地产生泛化能力强且差异大的基学习器,是集成算法的关键。 • Lam提到分类器之间决策的独立性有助于提高正确分类的概率值。因此如何构造差异性大的,决策独立的个体学习器就成为各种集成学习算法的关键步骤。
1.基于训练集处理的产生方式 • 1)Bootstrap Sampling Bagging方法中生成基分类器的主要手段是通过Bootstrap Sampling(重采样)来获得训练集的不同子集,通过训练集的差异性来获得基分类器的差异性。使用Bootstrap Sampling方法时,理论上每个基分类器的训练集中只有63.2%的重复样本重复率,Breiman指出要使Bagging有效,基分类器的学习算法必须是不稳定的,也就是对训练数据敏感,决策树、神经网络等训练算法属于不稳定的学习算法,k近邻、聚类等算法属于稳定的算法。基于以上特点,Bagging算法非常适合于并行学习多个基分类器,这是其自身的一大优势。
2)Boosting • Boosting最早由Schapire提出,其思想为对那些容易被错分的训练样本进行强化学习:首先给每个训练样本赋予相同的权重,然后使用训练的基分类器进行测试,对于那些被错判的样本提高其权重,对于那些正确判决的样本降低其权重,然后根据权重调整后的训练集训练下一轮分类器,此过程反复迭代就可以得到一个足够好的强分类器。但问题也随之提出了 • Boosting框架中的基学习器算法并不是限定的,不是每一种都可以对带权训练集进行学习的,一般基于梯度的学习算法可以对带权训练集进行学习,如果学习算法不支持,那么可以通过重新采样的方法来获得一个与带权训练集权重分布接近的子集,通过对这个子集的学习来获得相应的基分类器,产生该采样子集的计算复杂度为
3)训练集分组 • 交叉验证法源自于K重交叉验证测试方法,属于无放回的抽样。其基本思想是将训练集划分为互不重叠的K等份,然后每次选定一份作为测试集,其他K-1份作为训练集,从而可得到K个不同的基分类器。将给定的学习对象分成若干组,对每个组分别进行训练,得到若干分类器,然后组合这些分类器,得到一个集成学习系统,该方法非常接近Bagging,与Bagging一样支持并行学习。除了交叉验证,还可以使用随机分组法,,逐次随机将原始数据集分为训练集和验证集,并将训练后的分类器逐个加入集成,以新个体的加入是否会导致集成性能改善为原则来决定保留或抛弃 。
2.基于特征集处理的产生方式 • 给定学习对象,提取反映该对象不同性质的特征集,针对这些不同的特征集分别训练学习器,然后组合得到一个集成学习系统。显然这些基于不同特征集的集成系统构造方式实际上也是一种基于训练数据集处理的产生方式,所不同的是更强调同一训练集的不同特征。
3.基于不同性质的分类器的产生方式 • 有效的分类器模型并不多,有时往往需要对每一类分类给出不同实例,这些不同实例的产生需要用到其他的基分类器产生方式,[48]的实验说明了,如果仅在相同特征集上训练不同类型的分类器进行实验并不能获得实质性的性能提升。
4.基于随机扰动的产生方式 • 可以通过对学习样本加入随机扰动来获得全新的学习器,或者是对学习器参数进行随机扰动,如对神经网络设定随机初始权值、层数、节点数和训练的误差目标;对于决策树,则可以在决策节点的特征选取时从某个特征子集里面随机选取一个作为该节点的分类特征。Dietterich对随机扰动法进行了各种实验比较,发现在噪声相对较低的情况下,其性能甚至会优于AdaBoost,但在噪声水平较高时该方法不能得到令人满意的结果。随机扰动法易于和其它基分类器产生方式结合。