基于Boosting的多分类器融合算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Multiple Classifiers Combination Algorithm Based on Boosting
LIN Lei1,WANG Xiaolong1,LIU Jiafeng1
(1.Department of Computer Science and Engineering, Harbin Institute of Technology Harbin, 150001, P.R. China)
Z t = ∑ Dt (i )(β t y i ht ( xi ))
i
(2)
从(1)和(2)中可以看出,在每一次循环中,通过选择 log 1 / β t 和 ht 可以减小 Z t ,
2
从而使训练错误快速地降低,同时训练错误是呈指数下降。
给定: ( x1 , y1 ), K , ( x m , y m ) 其中, xi ∈ X , y i ∈ Y = { 1, K , k } 初始化: Dt (i ) = 1 / m For t = 1, K , T : 1. 利用权值 Dt (i ) 训练弱学习算法。 2. 得到弱假设 ht : X × Y → [0,1] 3. 计算 ht 的误差:
5
同时,实验结果也表明 AdaBoost 算法在循环大约 35 次时,系统性能最佳,而并非循环 次数越多越好。
参考文献: [1] Michael Kearns and Leslie G. Valiant. Learning Boolean formulae or finite automata is as hard as factoring. Technical Report TR-14-88, Harvard University Aiken Computation Laboratory, August 1988. [2] Michael Kearns and Leslie G. Valiant. Cryptographic limitations on learning Boolean formulae and finite automata. Journal of the Association for Computing Machinery, 41(1): 67-95, January 1994. [3] L.G. Valiant. A theory of the learnable. Communications of the ACM, 27(11):1134-1142, November 1984. [4] Robert E. Schapire. The strength of weak learnability. Machine Learning, 5(2):197-227, 1990. [5] Yoav Freund. Boosting a weak learning algorithm by majority. Information and Computation, 121(2):256-285,1995. [6] Freund, Y. and Schapire, R.E. A decision theoretic generalization of on-line learning and an application to boosting, Journal of Computer and System Science, 55(1):119-139,1997. [7] Breiman, L. Bias, Variance, and arcing classifiers. Technical Report 460, Statistics Department, University of California at Berkeley, 1996. [8] Freund, Y. and Schapire, R.E., Experiments with a new boosting algorithm. In Machine Learning: Proceedings of Thirteenth International Conference, 148-156, 1996. [9] Schapire, R.E. and Yoram Singer, Improved boosting algorithms using confidence-rated predictions, In Proceedings of the Eleventh Annual Conference on Computational Learning Theory, 80-91, 1998. [10] Eric B.Baum and David Haussler, What size net gives valid generalization? Neural Computation, 1(1):151-160,1989. [11] Anselm Blumer, Andrzej Ehrenfeucht, David Haussler and Manfred K. Warmuth, Learnability and the Vapnik-Chervonenkis dimension. Journal of the Association for Computing Machinery, 36(4): 929-965, October 1989.
1 引言
在模式识别应用的各个领域,通常,采用单一方法的效果是有限的,采用多方法的有机 组合,使其优势互补,走多特征组合,多方案集成的道路,是目前模式识别的一个发展趋势。 本文将介绍并分析一种高效的多分类器融合算法:AdaBoost 算法[6]。 Boosting 作为一种通用的学习算法,可以提高任一给定算法的性能。 Kearns and Valiant [1,2] 最先指出,在 PAC 学习模型中[3],若存在一个多项式级的学习算法来识别 一组概念,并且识别率很高,那么这组概念是强可学习的;而如果学习算法识别一组概念的 正确率仅比随机猜测的略好, 那么这组概念是弱可学习的。 如果能将一个弱学习算法提升为 强学习算法,那么在学习概念时,只要找到一个比随机猜测略好的弱学习算法,就可以将其 提升为强学习算法,而不必直接去找通常情况下很难获得的强学习算法。此后,众多研究者 提出了一些更有效的 boosting 算法[4,5], 但是这些算法在实际应用中都存在某些不足。
t = 1,K, T 中,反复地调用弱学习算法,同时对输入的训练集保持一系列的权值分布。此权
值对于第 i 个训练例子,在第 t 次循环中的值定义为 Dt (i ) 。初始状态,所有权值都相等,但 是,每循环一次,便增加不正确分类例子的权值,强迫弱学习算法将注意力集中到训练集中 较 难 分 类 的 例 子 上 。 首 先 , 弱 学 习 算 法 的 任 务 是 发 现 适 合 权 值 Dt 的 弱 假 设 :
3
手写汉字
笔划分割
结构和部件分析
部件原型知识库
字符分类
标准词典
字符 ID 图2 手写体汉字识别系统基本原理图
4 实验结果
本文实验中所用的数据库包含了 757555 个样本,而且每个字符包含 200 多个样本。所 用的三个分类器的性能见表 1(Recogn.为识别率的缩写) 。应用 Adaboost 算法得到的结果 与传统加权方法的比较见表 2 (E1 为 Adaboost 算法的结果,E2 位传统加权方法的结果)。 图 3 给出了以 AdaBoost 算法循环次数为变量的融合分类器识别率的函数曲线。该曲线 表明融合分类器的识别率在算法循环大约 35 次时达到最高,其后尽管增加循环次数,识别 率并没有更大的提高。以上的实验结果可以作如下解释,由 Adaboost 算法带来的系统错误 最大为[6,10]:
*
国家自然科学基金(NO. 69973015) ;863 项目(NO.2001AA114041)智能化中文信息处理平台 1
最近, Schapire 和 Freund 提出了一个新的 boosting 算法: AdaBoost 算法[6],它解决了早 期 boosting 算法的许多不足。 一些研究者报告了他们应用此方法较大地提高了系统的性能 [7,8]。但是,他们在实验中使用的数据库和输出类别的集合规模都较小(仅仅为几百个训 练样本的数据库及不超过十个类别的输出类别集) 。 然而,在手写汉字识别, 语音识别等领域 中,我们不得不面对大量的数据以及成百甚至上千个输出类别,那么 Adaboost 算法是否有 效,会出现那些问题?因此,本文在描述 AdaBoost 算法的同时,将以手写体汉字识别系统 为测试平台,研究 AdaBoost 算法的优化此类系统的效果。 本文余下部分结构如下:第二部分介绍 AdaBoost 算法,第三部分将介绍手写体汉字识 别系统,第四部分将介绍应用 AdaBoost 算法的实验结果,并同应用其它分类器融合算法得 到的结果进行比较,同时介绍算法在优化过程中的一些特性,最后为结论部分。
2 Adaboost 算法
通常, 手写体汉字识别系统分类器的输出不仅仅是一个类别, 而且包含类的后验概率的 信息,即输出的各个类的可信度。而此类问题适用于 AdaBoost 算法的另一个版本,即所谓 的 AdaBoost. M2 算法[6],算法的伪代码如图 1 所示。 AdaBoost 算法的输入训练集为 ( x1 , y1 ), K , ( x m , y m ) ,其中每个 xi 属于输入特征集 X , 每个类别 y i 属于类别集合 Y = { 1, K , k }。 AdaBoost 算法的主要思想是,在一系列的循环
Hale Waihona Puke Baidu
e system = P[H ( x ) ≠ y ] + O Td m
~
(3)
其中, e system 为系统最大错误, P[H ( x ) ≠ y ] 为由训练样本产生的错误,m 为样本的个 数,d 为弱假设空间的 VC 维数(VC 维数是假设空间复杂性的一种标准的度量[11]) ,T 为 算法循环次数。 随着算法循环次数的增加,等式(3)中的 P[H ( x ) ≠ y ] 一项,如同本文第一部分分析 的那样会逐渐地减小,而等式(3)中的第二项 O Td
1 {i : H (xi ) ≠ yi } ≤ 1 ∑ exp(− yi f (xi )) = ∏ Z t m m i t
其中,f ( x ) =
t t t
(1)
− yi f ( xi )
(1) 中的不等式部分可由以下事实得到: e ∑ (log1 / β )h (x ) 。
≥1
当, y i ≠ H ( xi ) 。 (1)中的等式部分可以由 Dt 的递归定义展开而得到。
~

会逐渐地增大。所以,算法循环 m
次数不能过大,否则系统的性能会下降。因此,只有循环次数在合适的范围内时,系统的性 能才能达到最佳。
4
75 72 69 66 63 60
识别正确率
%
1
5
10
15
20
25
30
35
40
45
50
循环次数
55
60
图 3 识别正确率曲线 从表 2 中可以注意到,应用 Adaboost 算法得到的结果较传统加权方法高出 4.75%,较 性能最好的单个分类器高出 8.19%, 由此看到 Adaboost 算法-优化系统性能的效果十分显著。
et =
1 ∑ Dt (i )(1 − ht (xi , yi ) + ht (xi , y )) 2 i
et 1 − et
(1+ ht ( xi , yi )− ht ( xi , y )) Dt (i ) 1 β t2 Zt
4. 令: β t =
5. 更新: Dt +1 (i ) =
其中, Z t 为归一化常数,使得 Dt +1 为一概率分布 输出:
Table 1. 单个分类器性能 分类器 Recogn. (首选)
e1 e2
52.35%
62.80%
e3
Table 2. 两种方法结果比较 输出
64.09%
Recogn. (首选)
E1 E2
72.28% 67.53%
5 结论
本文研究了基于 AdaBoost 算法的多分类器融合方法,并且应用于优化手写体汉字识别 系统,实验结果表明经过 AdaBoost 算法优化的系统性能不但优于单个分类器的性能,同时 也优于传统加权融合方法。实际上,AdaBoost 算法还有许多优点,例如,快速、简单、易 于编程,除了循环次数 T 需要调整之外,不存在其它参数。同时,我们对于要优化的弱学习 算法的性能无需深入了解。
Abstract: In various application areas of pattern recognition, combining multiple classifiers is regarded as a new method for achieving a substantial gain in performance of system. This paper presents a boosting method for combining multiple classifiers. This combination method is experimentally tested on online handwritten Chinese character recognition system and the results compare with other combining method. Their effectiveness is considered. Key words: AdaBoost algorithm; Combination; handwritten Chinese character recognition
基于 Boosting 的多分类器融合算法*
林磊 ,王晓龙 ,刘家锋
1 1 1
(1.哈尔滨工业大学计算机科学与技术学院,哈尔滨 150001)
摘要: 在模式识别应用的各个领域, 多分类器融合被认为是提高系统性能的一种新方 法。 本文应用了一种基于 boosting 的融合方法,此融合方法经联机手写体汉字识别系统的测 试,并且同其它融合方法比较,其效果显著。 关键字: AdaBoost 算法;融合;手写体汉字识别
1 H (x ) = ∑ log β t t
ht ( x, y )
图 1 Adaboost 算法(可信度版本)
3 手写体汉字识别系统
本文研究内容的测试平台为手写体汉字识别系统,该系统采用传统的统计模式识别与结 构模式识别相结合的方法, 建立了识别系统的信息传递模型。 同时该系统采用了多分支多级 分类技术, 解决了多级分类过程中误差累积的问题, 整个识别过程分为笔段识别-字根识别字根识别三个层次,其基本原理图如图 2。 本系统在笔段排序和部件分析识别中采用的知识是一种专家知识,表示形式是一条条的 规则。在整字识别中采用的模板也是基于专家知识确定的,因而具有知识表达精炼、内存开 销少、识别效果好、识别速度快等优点。 此外,本系统中采用了三个不同的分类器:基于结构的分类器( e1 ), 动态规划分类器 ( e 2 )和高斯分类器( e3 )。 最终输出的分类器(E1)为这些单个分类器经 Adaboost 算法融合而 得到。
ht : X × Y → [0,1] ,然后,尽量减小其错误率( et ): et = Pi ~ Dt [ht ( xi ) ≠ y i ] 。一旦确定了
同时, 权值 Dt 应用图 1 中的规则更新。 弱假设, Adaboost 算法给 ht 确定一个权值 log 1 / β t 。 最终的输出 H 由 T 个弱假设的加权投票得到。 AdaBoost 算法的基本理论特性是:它具有减小训练错误的能力。 文献[6]和[9]给出了算 法输出错误由以下不等式界定:
相关文档
最新文档