Adaboost人工神经网络集成(同济大学电子与信息工程学院,上海)摘要:Adaboost算法可以将分类效果一般的弱分类器提升为分类效果理想的强分类器,而且不需要预先知道弱分类器的错误率上限,这样就可以应用很多分类效果不稳定的算法来作为Adaboost算法的弱分类器。由于BP神经网络算法自身存在的局限性和对训练样本进行选择的主观性,其分类精度以及扩展性有待提高。将Adaboost算法与BP神经网络相结合,使用神经网络分类模型作为Adaboost算法的弱分类器。算法在Java中实现,对UCI中的鸢尾花数据集进行实验,结果表明Adaboost能有效改善BP神经网络的不足,提高分类正确率和泛化率。关键词:弱分类器;强分类器;BP神经网络;Adaboost算法TheEnsembleClassificationofAdaboostandBPHUZuoLiang1433275(TongjiUniversityofCollegeofElectronics&InformationEngineering,Shanghai,China)Abstract:Adaboostalgorithmcanpromoteaweakclassifiertoastrongclassifierwithoutknowingtheerrorrateupperlimitoftheweakclassifierinadvance.SoalotofclassifierswhicharenotsostablecanbeusedasweakclassifiersinAdaboostalgorithm.BecauseofthelimitationandsubjectivityintrainingsamplesselectionoftheBPneuralnetworkalgorithm,itsclassificationaccuracyandscalabilityneedtobeimproved.SotheAdaboostalgorithmiscombinedwithBPneuralnetwork.inwhichtheneuralnetworkclassificationmodelisusedasaweakclassifier.AlgorithmisrealizedinJava,andtheIrisDatasetofUCIdatasetsisusedtodotheexperiment.TheresultsshowthatAdaboostcaneffectivelyovercometheshortcomingsofBPneuralnetwork,improvetheclassificationaccuracyandtherateofgeneralization.Keywords:weakclassifier;strongclassifier;BPNeuralNetwork;Adaboostalgorithm1引言BP神经网络在分类算法中有广泛的应用,但是由于BP神经网络本质上是梯度下降法,当遇到比较复杂的目标函数时,其学习速度和收敛速度会变得很慢,导致训练失败的可能性较大。而Adaboost能够提升任意精度的弱分类器为强分类器,它的核心思想是通过对一个训练集训练得到多个分类结果,最后将它们集成起来。在BP神经网络中引入Adaboost算法作为分类器,可以弥补BP神经网络的缺点,能提高分类准确率和泛化率。2Adaboost-NN算法介绍2.1Boosting算法Boosting算法由Schapire和Freund在1990年提出,是最早提出的集成学习算法,是一种有效提高分类学习系统分类能力的算法。Boosting算法操纵训练样本来产生多个分类假设,从而建立通过加权投票结合的分类器集合,其过程如下:(1)首先对含有N条数据的训练样本进行学习,得到第一个弱分类器;(2)将在前面学习过程中分错的样本加上其他新数据,构成一个新的含N个数据的训练样本集,对这个训练样本集进行训练学习,得到新的分类器;(3)把在步骤(1)和(2)中都分错了的样本加上其他新数据,构成另一个新的包N个数据的训练样本集,对这个样本集进行训练学习得到新的分类器;(4)最后通过对全部得到的弱分类器进行加权投票表决得到强分类器,即某样本被分为哪一类要通过全部弱分类器的加权投票表决。Boosting算法需要解决两个主要问题:(1)怎样调整训练集里的样本分布,从而使训练集产生适合的弱分类器;(2)怎么把训练所得弱分类器集成得到效果更好的强分类器。2.2Adaboost算法Adaboost算法是Schapire和Freund在1995年提出的,其关键思想是根据每次训练过程中,样本集内每个样本的分类结果是否正确来改变数据样本分布,即修改样本的权值。修改过权值的新数据集再次训练得到新的弱分类器,最后通过某种策略,将得到的弱分类器集成起来,生成最后的决策分类器。Adaboost算法不需要预先知道弱学习算法的误差精度,并且最后得到的强分类器的分类精度依赖于所有弱分类器的分类精度,这样就可以去寻找要求更低的分类算法。算法过程如下:在训练集中维护一套权重分布,在第1,,,ttTT为迭代函数次迭代时,样本,iixy的分布权值记为tDi。初始时,所有样本的权重都设为1N,但是每一次错分的实例其权重将增加,以使弱学习器被迫集中在训练集的难点上。弱学习器的任务就是根据分布tD找到合适的弱假设:thXR。最简单的情况下每个th的范围是二值的:1,1,于是该学习器的任务就是最小化错误PrttiiDthxy,一旦得到th,Adaboost选择一个参数tR,该参数直观的测量th的重要程度。最终假设H是T次循环后用加权多数投票把T个弱假设的输出联合起来得到的。对二值,典型的设(1)1ln2ttt。可以证明Adaboost调用给定的弱学习算法weakLearning时,将产生错误率为1,,r的假设。假设每个12t,可以证明最终假设fh的错误率PriDtiihxy的上边界为:121TTtti,即随着弱分类器数目T的增加,最终假设fh的分类错误率以指数级下降。因此,只要弱分类器的分类正确率比随机猜测好,Adaboost就能提升其分类正确率。2.3BP神经网络BP神经网络是前馈型神经网络中研究最为成熟且应用最广的一种网络,由一个输人层、一个或多个隐层和一个输出层组成。每一层都包含不同数量的神经元,同一层节点间互不相连,相邻层节点间单向全互连。隐层为一层的BP网络结构如下图所示。网络共分为3层:i为输人层节点,为隐层节点,k为输出层节点。BP学习算法根据给定的学习样本对进行学习,通过调整网络连接权来体现学习的效果。在学习阶段,先将学习样本对的输人加在网络的输人端,沿着前向在各层神经元按输人和激励函数的方式产生输出。定义网络的学习误差函数为:E=1/2∑(dk−yk)2k式中:dk为网络的期望输出,yk为网络的实际输出。然后将学习误差逆向传播到各层神经元,根据误差的大小和符号相应地调整各连接权值。此过程一直进行到神经网络权连接方式能在给定输人样本条件下以一定精度产生输出为止。由于网络中sigmod函数的存在,BP算法易陷入局部极小、收敛速度慢,化能力受到限制,制约了模型的性能,因此需要寻找合适的方法弥补BP算法的这些不足。2.4Adaboost-NN算法的实现过程Adaboost(adaboost.M2)-NN算法具体实现过程如下:首先对原始样本特征进行归一化处理,根据在弱学习器中制定的编码规则,对训练样本的期望类别进行编码,从而生成训练样本集11(,),,(,)NNSxyxy,初始化权值对1,2,,iN,置权重1,(),{}(1)iyiDiWyYyk,1()DiN(其N为训练样本数,K为类别数),这样样本的初始分布服从均匀分布,在第一次学习时,所有样本的学习难易度都是一样的。其次,循环T次,第(1,2,,)ttT次循环时:1)令,ittiiyyyWW,得,(,)tiyttiWqiyW,其中iyy,继而()ititiyyWDtiW;2)根据分布tD和类别权重函数tq,调用weakLearning,返回假设j输入层隐层输出层kWijWjki:[0,1]thXY;3)计算th的伪误差:10.5()(1(,)(,)(,))iNtttiittiiyyDihxyqiyhxy;4)计算1ttt;5)更新权重向量0.5(1(,)(,))1,tiitihxyhxyttiyitWW;最后利用最大加权投票原则融合各基本分类器(),1,2,,tBPxtT,得到最后的判决结果:1()argmax(log)(,)tyYtthfxhxy可见,t越小,1logt越大,即分类器的置信度越高,在组合最后分类器时,其影响因子也越大。3实验与结果分析3.1实验数据本文提出算法的有效性和实用性,将用UCIMachineLearningRepository中的IrisDataset数据集来进行实验,并对数据都采用归一化处理,数据归一化把数据都转化为[0,1]之间的数,以便消除各维数据间的数量级差别,避免数据各维度之间由于数量级差别过大而造成误差过大。使用的归一化方法为:minmaxmin()21()iixxxxx式中maxx为数据集每一维的最大值,minx为数据集每一维的最小值。3.2实验结果分析鸢尾花数据是模式识别文献中最著名的数据集,该数据集包含3个类别的鸢尾花数据,每个类别50条数据,总共有150条数据,训练数据占70%,验证数据占30%。该数据集包含4个数值属性和1个类别标签,实验结果见如下:算法正确率(平均)BP91.20%Adaboost-NN95.16%BP学习参数选取如下:总层数4,隐藏层节点数5,学习速度0.01,达到均方误差0.001时停止。Adaboost学习参数选取如下:训练最大弱分类器数T=8,分类神经网络参数和BP一样,但是当在训练集上精度大于0.5时停止。4结束语本文将Adaboost算法与神经网络结合,弥补了传统的神经网络模型在学习过程中容易陷入局部极小和不稳定性缺点,提高了分类预测的泛化能力和精度。Adaboost-NN网络模型继承了传统的ANN方法的优点,具有很强的自学习、自组织能力,建立起输入与输出之间的复杂的非线性对应关系,且Adaboost算法可以与任意改进的BP算法相结合,在很大程度上弥补BP算法本身的缺陷,成为一种新的模型。参考文献[1]贾丽会,张修如.BP算法的分析与改进[J].计算机技术与发展,2006,16(10).[2]王妍凡,林宗虎.改进BP神经网络在流型判别中的应用[J].热能动力工程,16(91).[3]葛启发,冯夏庭.基于AdaBoost组合学习方法的岩爆分类预测研究[J].岩土力学,2008,29(4).[4]刘国海,肖夏宏,江辉,梅从立,丁煜函.基于BP-Adaboost的近红外光谱检测固态发酵过程pH值[N].江苏大学学报,2013,34(5).[5]彭天强,李弼程.一种基于Adaboost—NN与证据理论的遥感影像分类方法[N].仪器仪表学报,2007,28(4).[6]孙晓峰,何争光,高霞.适于水质评价的AdaBoost-NN模型研究[J].环境科学与技术,2007,30(11).[7]周志华,陈世福.神经网络集成[J].计算机学报,2002,25(1).[8]毕鹏翔,刘健,张文元.配电网络重构的研究[J].电力系统自动化,2001,25(14).[9]许剑,张洪伟.Adaboost算法分类器设计及其应用[J].四川理工学院学报(自然科学版),2014,27(1).[10]陈卫,周晓,叶菲,谭营.AdaBoost-NN在雷达信号识别中的应用[J].电子与对抗技术,2005,20(1).