Boosting算法研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:cdna3
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:Boosting 算法是近年来在机器学习领域中一种流行的用来提高学习精度的算法。文中以AdaBoost算法为例来介绍Boosting的基本原理。
  关键词:机器学习;Boosting;泛化误差;分类
  中图分类号:TP181文献标识码:A文章编号:1009-3044(2008)36-2698-02
  A Study of Boosting Algorithm
  LU Gang1, CHEN Yong1, FAN Yong-xin2, HU Cheng1
  (1.The Artillery Academy of PLA, Hefei 230031, China;2.China Construction Bank Yunnan Branch, Kunming 650021, China)
  Abstract: Boosting is a general method for improving the accuracy of any given learning algorithm.This short overview paper introduces the boosting algorithm AdaBoost, and explains the underlying theory of boosting.
  Key words: machine learning; boosting; generalization error; classification
  1 引言
  Freund 和 Schapire的AdaBoost算法問世便引起了机器学习和数理统计两大领域的广泛关注。它的思想起源于Valiant提出的PAC ( Probably Approximately Correct)学习模型。Kearns 和Valiant首次提出PAC学习模型中任意给定仅比随机猜测略好的弱学习算法是否可“boosted”为强学习算法。1990年,Schapire构造出一种多项式级的算法,对该问题做了肯定的证明,这是最初的Boosting算法。一年后,Freund提出了一种效率更高的Boosting算法。但是,这两种算法存在共同的实践上的缺陷,那就是都要求事先知道弱学习算法学习正确率的下限。这些早期的Boosting 算法首先被Drucker、Schapire和Simard应用于一次OCR工作中。1995年,Freund和schapire改进了Boosting算法,提出了AdaBoost (Adaptive Boosting)算法,此算法不需要任何关于弱分类器的先验知识,可以非常容易地应用到实际问题中。
  2 AdaBoost算法
  在机器学习领域中,AdaBoost算法得到极大的重视。实验结果显示,AdaBoost能显著提高学习精度和泛化能力,已经成为Boosting 系列中的代表算法。之后出现的各种Boosting算法都是在AdaBoost算法的基础之上发展而来的。对AdaBoost算法的研究应用大多集中在分类问题中,近年来也出现了一些在回归问题上的研究。寻找多个识别率不是很高的弱分类算法比寻找一个识别率很高的强分类算法要容易得多,AdaBoost算法的任务就是完成将容易找到的识别率不高的弱分类算法提升为识别率很高的强分类算法,这也是AdaBoost 算法的核心指导思想所在,如果算法完成了这个任务,那么在分类时,只要找到一个比随机猜测略好的弱分类算法,也就是给定一个弱学习算法和训练集,在训练集的不同子集上,多次调用弱学习算法,最终按加权方式联合多次弱学习算法的预测结果就可得到最终学习结果。
  AdaBoost算法的基本思想是:首先给出任意一个弱学习算法和训练集(x1,y1), (x2, y2 ) ,..., (xm, ym) ,此处,xi∈X, X表示某个域或实例空间,在分类问题中是一个带类别标志的集合,yi∈Y={+1, -1}。初始化时, Adaboost为训练集指定分布为1/m,即每个训练例的权重都相同为1 /m 。接着,调用弱学习算法进行T次迭代,每次迭代后,按照训练结果更新训练集上的分布,对于训练失败的训练例赋予较大的权重,使得下一次迭代更加关注这些训练例,从而得到一个预测函数序列h1,h2,...,ht,每个预测函数ht也赋予一个权重,预测效果好的,相应的权重越大。T次迭代之后,在分类问题中最终的预测函数H采用带权重的投票法产生。单个弱学习器的学习准确率不高,经过运用Boosting算法之后,最终结果准确率将得到提高。每个样本都赋予一个权重, T次迭代,每次迭代后,对分类错误的样本加大权重。
  离散的AdaBoost算法,给定训练样本集S={(x1,y1),(x2,y2)),…, (xl,yl)∈Rn×{-1,+1}}。其中xi(i=1,2,…,l)服从独立同分布。
  离散的AdaBoost 算法的伪码描述如下:
  1) 初始化权重:wi=1/l,i=1,2,…,l
  2) 循环:Repeat from m=1,2,…,M:
  ① 使用权值wi,用弱分类器fm(x)拟合训练数据;
  ② 计算:
  ;
  ① 计算:Cm=log((1-errm)/errm);
  ② 置wi<—wiexp[Cm•I(yi≠fn(xi))],i=1,2,…,l,并且重新正则化权重使得 wi=1。
  3)输出:分类器决策函数。
  一个弱分类器的误差率只比随机猜测略好一些。Boosting的目的就是连续对反复修改的数据应用弱分类算法,由此产生一个弱分类器序列fm(x),m=1,2,…,M。然后,通过一个加权的多数表决来合并全部预测,以产生最终预测:
  
  这里,C1,C2,…,Cm由boosting算法来计算,并对每个fm(x)的贡献加权。它们的作用是对序列中较精确的分类器给予较高的影响。
  在每个boosting迭代中,数据修改就是对每一训练样本(xi,yi)(i=1,2,…,l)实施加权w1,w2,…,wl。开始,所有权都被置成wi=1/l,以便第一步能够简单地用通常的方式在数据上训练分类器。对每一个相继的迭代m=2,3,…,M,样本的权值被分别修改,并且分类算法被再次应用于加权样本。在第m步,那些被前一个迭代步骤导出的分类器fm-1(x)误分类的样本权值提高,而被正确分类的样本权值降低。这样,随着迭代的进行,那些很难正确分类的样本受到了权重不断增长的影响。因此,每个后继分类器被强制关注那些被前面的分类器误分类的训练样本。
  离散的AdaBoost算法中,步骤2(a)在加权样本上导出当前的分类器fm (x)。步骤2(b)计算当前加权误差率,步骤2(c)计算权值Cm,该权值在产生最终分类器f(x)时(步骤3)赋予fm(x)。在步骤2(d),为下一步迭代更新每个样本的权值。被fm(x)误分类的样本的权值被放大一个因子exp(Cm),增加了对导出序列中下一个分类器fm+1(x)的相对影响。
  离散的AdaBoost算法中弱分类器fm(x)返回离散的类标号。如果弱分类器改为实数值预测(如映射到区间[0,1]的概率),则可以对离散的AdaBoost做适当的修改,即下面所述的Real AdaBoost算法。
  Real AdaBoost算法的伪码描述如下:
  1)初始化权重:wi=1/l,i=1,2,…,l。
  2)循环:Repeat for m=1,2,…,M:
  ① 在加权为wi的训练数据上拟合分类器以获得在区间[0,1]上的类概率估计Pm(x)=Pw(y=1|x);
  ② 置弱分类器: ;
  ③ 置权重,wi<—wiexp[-yifm(xi)],i=1,2,…,l,重新正则化权重使得 wi=1。
  3)输出:分类器决策函数 。
  以离散AdaBoost为例,如图1所示,其中弱分类器仅仅是个树桩——两个端节点的分类树。
  初始的时候,只用单个弱分类器的分类错误率较高,但随着boosting迭代的进行,分类错误率明显减小,可见AdaBoost算法能够显著提升很弱的分类器的性能。
  3 Boosting算法理论分析
  Schapire, Singer和Freund首先从理论上推导出最终预测函数的训练误差:定义f(x)=αtht(x),则有H(x)=sign(f(x)),推出误差边界为:
  
  式中我们可以看出,可以通过选择每一轮中的αt和ht来最小化Zt,使得训练误差迅速减小。大量的试验表明,Boosting不但能够提高学习精度,而且在训练了几千轮之后也不会发生过适应现象,而且其泛化误差在训练误差已经降到零后仍会继续降低。Schapire和Freund用Boosting C4.5对UCI中的“letter”样本集进行分类,图2是得出的相对于迭代次数T的误差曲线。
  
  图2 图3
  图2中,上面一条曲线是泛化误差,下面一条曲线是训练误差。从图中我们可以看出,在训练误差已经达到零后, Boosting仍能继续降低泛化误差,而不会因此出现泛化误差恶化的现象。泛化误差与训练轮数T无关,也就是说泛化误差不受训练轮数影响。图3反映出Boosting对边界的影响。当训练误差降为零后,Boosting仍然会继续提高训练样本的边界值,从而增大了最小边界,使分类的可靠性增加,使得泛化误差也能够继续下降。(下转第2708页)
  (上接第2699页)
  4 结束语
  Boosting是近十几年来提出的最有效的学习思想之一,它最初是为分类问题而设计的,但也可以对它进行扩充以解决回归问题,并且Boosting的思想已被用到ranking和cost-sensitive上,也有一些研究者将Boosting应用到非监督学习问题上。Boosting在实际当中也得到了很多应用,例如,语音识别、医疗诊断等。目前,Boosting算法仍有许多值得研究的方向。Boosting中迭代次数是一个经验值,如何选择合适的迭代次数;Boosting在某些情况下会发生过适应现象,找到产生过适应的条件也是一个值得研究的方面;如何减少Boosting对噪声的敏感;Boosting和模糊集理论相结合在多分类中的应用等。近年来,张通等人在分析了一些流行的学习算法后,从一致性的观点对一些流行的学习算法如最小二乘法、支持向量机、Boosting等等进行了理论分析,发现这些学习算法都具有逼近贝叶斯最优解的性能,只是使用了不同的损失函数而已。这种理论分析的方法进一步完善了统计学习理论体系,得到了研究者们的普遍关注。另外,Boosting在实际应用中也有广泛的前景,例如:图像识别及检索、手写体字符识别、语音识别、文本分类等。
  
  参考文献:
  [1] ValiantL G .A Theory of the Learnable[J].Communications of the ACM,1984,27(11):1134-1142.
  [2] Schapire R E, Freund Y, Bartlett P et al.Boosting the Margin: a New Explanation for the Effectiveness of Voting Methods [J].The Annals of Statistics,1998,26(5):1651-1686.
  [3] Freund Y, Robert E. Schapire. A Short Introduction to Boosting[J].Journal of Japanese Society for Artificial Intelligence,1999,14(5):771-780.
  [4] Freund Y, Schapire R. Experiments with a new boosting algorithm[C].In: Proceedings of the Thirteenth International Conference.San Francisco: Machine Learning,1996:148-156
  [5] Zhang T. Statistical behavior and consistency of classification methods based on convex risk minimization[J].Annals of Statistics,2004(32):56-85
  [6] Friedman J, Hastie T, Tibshirani R. Additive logistic regression: a statistics view of boosting[J].Annals of Statistics, 2000(28):337-407.
  
  注:“本文中所涉及到的圖表、注解、公式等内容请以PDF格式阅读原文。”
其他文献
摘要:分析了VMWARE虚拟机的网段的三种类型,bridge网段、host only网段和NAT网段。對这三种类型的网段和网卡的host主机表现形式和虚拟机表现形式做了分析和阐述,最后以DHCP的中继应用为例,示意了虚拟网段在网络实验中的应用优势。  关键词:VMWARE;bridge;host only;NAT;DHCP;TEAM
期刊
摘要:Femtocell(毫微微小区)是一种改善市内覆盖的小型低成本基站,能够提供很好的深层覆盖,适用于家庭和办公室环境。文章在分析了Femtocell的优势的基础上,简单介绍了它的体系结构、接口以及其对现有移动通信网络的影响,最后提出了Femtocell面临的困难以及良好的发展前景。  关键词:Femtocell;宏蜂窝;扁平化;室内覆盖;网关  中图分类号:TP311文献标识码:A文章编号:1
期刊
摘要:随着通信技术的不断发展和通信规模的不断壮走,为适应当前复杂社会形式需求,“警网”成为一种趋势。本文以OPNET仿真软件为工具,系统研究验证了“警网”搭建的可行性,并针对仿真結果对网络性能进行了分析。  关键词:警网;网络仿真;性能分析
期刊
摘要:对于服务器的配置,学习更应该与企业应用靠近,有一定的实际价值。这里主要通过一个项目来学习Linux中DNS、Web和FTP服务器的配置。通过项目的学习,要求整体考虑DNS、Web和FTP多服务器的配置过程,深刻理解整体与部分的关系,充分提高学习者的思考能力和动手能力,以及分析和解决实际问题的技能。  关键词:项目;服务器配置;域名服務器;Web服务器:FTP服务器
期刊
摘要:随着计算机网络的迅速发展,Web服务已越來越广泛地应用于社会生产生活的各个方面。为了保证Web服务的正确性和可靠性,Web服务软件测试逐渐引起了各方面的广泛关注,而其性能测试模型的建立更成为了其中的关键环节。本文通过对Web服务模型及三个核心协议的介绍,提出了一种Web服务性能测试模型,其包括了应用在客户端、网络上和服务器上性能的测试及测试的策略和方法,从而可以度量和优化系统性能,为用户规划
期刊
摘要:本文设计与实现了基于Web的在线考试管理系统,分别从系统需求分析、模块设计、数据库设计和系统实现的主要技术这四部分来阐述。  关键词:在线考试;Web技术;数据库  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)31-0819-03  The Design and Implementation of Online Examination System Based
期刊
摘要:针对自组织特征映射(SOFM)神经网络应用于矢量量化具有收敛速度慢、计算量大等缺点,本文提出了一种基于PCA/SOFM混合神经网络的矢量量化的算法,先用主元分析(PCA)线性神经网络对输入矢量进行降维处理,再用SOFM神经网络进行矢量量化。通过调整SOFM神经网络的学习函数、邻域权值及初始码书对网络进行优化。实验表明,改进算法缩短了图像压缩的时间,提高了码书的性能。  关键词:矢量量化;自组
期刊
摘要:该文分析与研究了Apriori算法,指出其在实用中存在的主要问题。鉴于此,该文提出了一种改进的关联规则挖掘算法,使其可以有效地压缩数据规模,并给出了改进后的关联规则算法描述。最后将其应用于课程相关性分析,得到了有益于课程设置挖掘结果。实验结果表明了算法性能优良,提高了数据挖掘执行的效率。  关键词:数据挖掘;关联规则;Apriori算法  中图分类号:TP311文献标识码:A 文章编号:10
期刊
摘要:针对STATCOM的控制系统,引入了一种在全论域范围内带用变参数自调整因子的模糊PI控制策略。仿真结果表明:采用该方法所设计的控制系统可以有效地控制节点电压,改善接入点系统的稳定性,并且响应快,精度高,鲁棒性强。  关键词:静止同步补偿器;变参数;自调整;模糊PI控制  中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)36-2728-03  Study on ST
期刊
摘要:通过阐述了基于CTI(计算机电话集成)技术呼叫中心的经典ACD(自动呼叫分配)排队Erlang-C模型,并分析了其实际应用中的缺陷,在此基础上提出了两种改进ACD算法:线性加权优先级排队算法、预测等待时间算法,这两种算法具有很大的灵活性,实用性及智能性!  关键词:CTI;ACD;Erlang-C模型;自动呼叫分配  中图分类号:TP911文献标识码:A文章编号:1009-3044(2008
期刊