BP神经网络在数据挖掘中的应用第一章数据挖掘及现代神经网络1.1数据挖掘数据挖掘(DataMining)是20世纪90年代中期兴起的一项新技术,是多门学科和多种技术相结合的产物。1989年8月,在美国底特律召开的第11届国际人工智能联合会议的专题讨论会上,首次提出了知识发现KDD(KnowledgeDiscoveryinDatabase)这个概念。1995年,美国计算机学会(ACM)会议提出了数据挖掘,它形象地把大型数据库看成是存放有价值信息的矿藏,通过有效的知识发现技术,从中挖掘或开采出有用的信息。由于数据挖掘是KDD过程中的关键步骤,所以常不加区分地使用知识发现KDD和数据挖掘DM这两个术语。而所谓数据挖掘,就是对观测到的数据集(经常是很庞大的)进行分析,目的是发现未知的关系和以数据拥有者可以理解并对其有价值的新颖方式来总结数据。数据挖掘常采用的算法及理论有粗糙集(Roughsets)、人工神经网络(Artificialneuralnetworks)、决策树(Decisiontrees)、遗传算法(Geneticalgorithms)等。数据挖掘技术主要来源于四个领域:统计分析、机器学习、神经网络和数据库。所以,数据挖掘的主要方法可以粗分为:统计方法、机器学习方法、神经网络方法和数据库方法。统计方法主要包括:回归分析(多元回归、自回归等)、判别分析(贝叶斯判别、费歇尔判别、非参数判别等)、聚类分析(系统聚类、动态聚类等)、探索性分析(主元分析法、相关分析法等)、以及模糊集、粗集、支持向量机等。模糊集方法即利用模糊集合理论对实际问题进行模糊评判、模糊决策、模糊模式识别和模糊聚类分析。系统的复杂性越高,模糊性越强,一般模糊集合理论是用隶属度来刻画模糊事物的亦此亦彼性的。粗集方法建立在粗集理论上。粗集理论是一种研究不精确、不确定知识的数学工具。粗集方法有几个优点:不需要给出额外信息;简化输入信息的表达空间;算法简单,易于操作。粗集处理的对象是类似二维关系表的信息表。目前成熟的关系数据库管理系统和新发展起来的数据仓库管理系统,为粗集的数据挖掘奠定了坚实的基础。但粗集的数学基础是集合论,难以直接处理连续的属性。而现实信息表中连续属性是普遍存在的。因此连续属性的离散化是制约粗集理论实用化的难点。机器学习方法主要包括:归纳学习方法(决策树、规则归纳等)、基于范例的推理CBR、遗传算法、贝叶斯信念网络等。决策树是一种常用于预测模型的算法,它通过将大量数据有目的分类,从中找到一些有价值的,潜在的信息。它的主要优点是描述简单,分类速度快,特别适合大规模的数据处理。最有影响和最早的决策树方法是由Quinlan提出的著名的基于信息熵的ID3算法。它的主要问题是:ID3是非递增学习算法;ID3决策树是单变量决策树,复杂概念的表达困难;同性间的相互关系强调不够;抗噪性差。针对上述问题,出现了许多较好的改进算法,如Schlimmer和Fisher设计了ID4递增式学习算法;钟鸣,陈文伟等提出了IBLE算法等。遗传算法是一种基于生物自然选择与遗传机理的随机搜索算法,是一种仿生全局优化方法。遗传算法具有的隐含并行性、易于和其它模型结合等性质使得它在数据挖掘中被加以应用。但遗传算法的算法较复杂,收敛于局部极小的较早收敛问题尚未解决。神经网络方法主要包括:前向神经网络(BP算法等)、自组织神经网络(自组织特征映射、竞争学习等)等。神经网络由于本身良好的鲁棒性、自组织自适应性、并行处理、分布存储和高度容错等特性非常适合解决数据挖掘的问题,因此近年来越来越受到人们的关注。典型的神经网络模型主要分3大类:以感知机、BP反向传播模型、函数型网络为代表的,用于分类、预测和模式识别的前馈式神经网络模型;以Hopfield的离散模型和连续模型为代表的,分别用于联想记忆和优化计算的反馈式神经网络模型;以ART模型、Koholon模型为代表的,用于聚类的自组织映射方法。神经网络方法的缺点是“黑箱”性,人们难以理解网络的学习和决策过程。数据库方法主要是基于可视化的多维数据分析或OLAP方法,另外还有面向属性的归纳方法。1.2人工神经网络1.2.1人工神经网络的发展史人工神经网络(ANN,ArtificialNeuralNetwork)是20世纪80年代后期迅速发展起来的人工智能技术。神经网络是模拟人脑内部结构,在模拟推理、自动学习等方面接近人脑的自组织和并行处理的数学模型。其优点之一,是不依赖于对象,通过学习将输入、输出以权值的方式编码,把它们联系起来。神经网络在数据挖掘中的优势是:噪声数据的强承受能力,对数据分类的高准确性,以及可用各种算法进行规则提取。因此,常常借助神经网络来进行数据挖掘。现代意义上对神经网络(特指人工神经网络)的研究一般认为1943年美国的生理学家Pitts和MeCulloch提出了神经网络的第一个数学模型。1949年Hebb从条件反射的研究中提出了Hebb学习规则。到20世纪50年代末期,以Rosenblatt提出的知觉器为代表,形成了人工神经网络研究的第一次高潮。1969年,Minsky和Papert的《Perception》一书出版,在大量数学分析的基础上,指出了知觉器的局限性,从而导致了神经网络的研究降温。到20世纪70年代,仅有少数学者致力于神经网络的研究。1982年,JJHopfield提出了Hopfield神经网络模型,使人工神经网络的研究有了突破性的进展。他把神经网络看作非线形动力学系统,引进了Lyapunov函数,使网络的收敛性和稳定性研究有了明确判据。Hopfield运用这种全连模型成功地解决了旅行商(TSP)问题。这一成果使人工神经网络的研究又活跃起来,并取得了一大批引人注目的成果。到了20世纪90年代中后期,随着研究者们对神经网络的局限有了更清楚的认识,以及支持向量机等似乎更有前途的方法的出现,“神经网络”这个词不再象前些年那么“火爆”了。很多人认为神经网络的研究又开始陷入了低潮,并认为支持向量机将取代神经网络。有趣的是,著名学者C.J.Lin于2003年1月在德国马克斯·普朗克研究所所做的报告中说,支持向量机虽然是一个非常热门的话题,但目前最主流的分类工具仍然是决策树和神经网络。由著名的支持向量机研究者说出这番话,显然有一种特殊的意味。事实上,目前神经网络的境遇与1965年之后真正的低潮期相比有明显的不同。在1965年之后的很长一段时期里,美国和前苏联没有资助任何一项神经网络的研究课题,而今天世界各国对神经网络的研究仍然有大量的经费支持;1965年之后90%以上的神经网络研究者改变了研究方向,而今天无论是国际还是国内都有一支相对稳定的研究队伍。实际上,神经网络在1965年之后陷入低潮是因为当时该领域的研究在一定意义上遭到了否定,而今天的相对平静是因为该领域已经走向成熟,很多技术开始走进生产和生活,从而造成了原有研究空间的缩小。人工神经网络是一门高度综合的交叉学科,它的研究和发展涉及神经生理学、数理科学、信息科学和计算机科学等众多学科领域。1.2.2人工神经网络特点人工神经网络是模仿生物脑结构和功能的一种信息处理系统,虽然目前的模仿还处于低水平,但已显示出一些与生物脑类似的特点:1)大规模并行结构与信息的分布式存储和并行处理,克服了传统的智能诊断系统出现的无穷递归、组合爆炸及匹配冲突问题,它特别适用于快速处理大量的并行信息;2)具有良好的自适应性,系统在知识表示和组织、诊断求解策略与实施等方面可根据生存环境自适应、自组织达到自我完善;3)具有较强的学习、记忆、联想、识别功能,系统可根据环境提供的大量信息,自动进行联想、书记及聚类等方面的自组织学习,也可在导师的指导下学习特定的任务,从而达到自我完善;4)具有很强的容错性,当外界输入到神经网络中的信息存在某些局部错误时,不会影响到整个系统的输出性能。神经网络已经在信号处理、模式识别、目标跟踪、机器人控制、专家系统、系统辨识等众多领域显示出其极大的应用价值,作为一种新的模式识别技术或一种知识处理方法,神经网络在机械故障诊断中显示了其极大应用潜力。第二章BP算法在神经网络中的应用概述2.1BP网络2.1.1BP网络简介1986年,Rumelhart和Hinton提出了误差后向传播神经网络BP(ErrorBackPropagationNeuralNetwork)。BP是backpropagation的所写,是反向传播的意思。目前,在人工神经网络的实际应用中,绝大部分的神经网络模型是采用BP网络和它的变化形式,它也是前向网络的核心部分,体现了人工神经网络最精华的部分。BP神经网络是由输入层节点、隐含层节点和输出层节点组成。对于输入的信号,是由对应的每个训练样本度量的属性组成的,每个属性分别输入到输入层的各个单元中;这些单元加权输出到隐含层的各个“类神经元”中;该隐含层的加权输出可以输入到另一个隐含层,如此下去;最后一个隐含层的加权输出作为构成输出层的单元的输入。输出层发布给定样本的网络预测。误差后向传播是通过迭代处理一组训练样本,将每个样本的网络预测与实际知道的类标号比较,进行学习,得出误差信号。将误差信号进行反馈,对于每个训练样本,修改权值,使得网络预测和实际类之间的均方误差最小。这种修改是”后向”进行的,即由输出层,经由每个隐含层,到第一隐含层。BP神经网络对应着一定的输入和输出,由事物的属性转换成相应的数据作为输入数据,输出数据则对应着相应的事物主题,隐含的神经网络决定着分类规则。BP网络分类由学习和分类两个过程所组成,经过一定时间的训练之后,就能较快地完成分类工作。精度高、对噪声数据不敏感是其主要优势。存在问题是过量冗余数据易造成神经网络训练过度,带来不利影响。另外网络规模和训练样本数量对网络训练速度及训练时间的影响也是其存在问题之一。BP算法通过迭代地处理一组训练样本,将各样本的网络预测与实际已知类标号比较来进行学习。对于各样本反向修改其权值,使得网络预测与实际类之间的误差平方最小。BP算法按照最优训练准则反复迭代,确定并不断调整神经网络结构,通过迭代修改,当权值收敛时学习过程终止。因此,它具有误差小、收敛性好、动态性好、结果客观等优点。BP(BackPropagation)神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidelayer)和输出层(outputlayer)。2.1.2BP网络优缺点分析多层前向BP网络是目前应用最多的一种神经网络形式,但它也不是非常完美的,为了更好的理解应用神经网络进行问题求解,这里对它的优缺点展开讨论:多层前向BP网络的优点:①网络实质上实现了一个从输入到输出的映射功能,而数学理论已证明它具有实现任何复杂非线性映射的功能。这使得它特别适合于求解内部机制复杂的问题;②网络能通过学习带正确答案的实例集自动提取”合理的”求解规则,即具有自学习能力;③网络具有一定的推广、概括能力。多层前向BP网络的问题:①BP算法的学习速度很慢,其原因主要有:a由于BP算法本质上为梯度下降法,而它所要优化的目标函数又非常复杂,因此,必然会出现”锯齿形现象”,这使得BP算法低效;b存在麻痹现象,由于优化的目标函数很复杂,它必然会在神经元输出接近0或1的情况下,出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿;c为了使网络执行BP算法,不能用传统的一维搜索法求每次迭代的步长,而必须把步长的更新规则预先赋予网络,这种方法将引起算法低效。②网络训练失败的可能性较大,其原因有:a从数学角度看,BP算法为一种局部搜索的优化方法,但它要解决的问题为求解复杂非线性函数的全局极值,因此,算法很有可能陷入局部极值,使训练失败;b网络的逼近、推广能力同学习样本的典型性密切相关,而从问