BP神经网络的C++实现及其在故障诊断中的应用讲课讲稿.doc
《BP神经网络的C++实现及其在故障诊断中的应用讲课讲稿.doc》由会员分享,可在线阅读,更多相关《BP神经网络的C++实现及其在故障诊断中的应用讲课讲稿.doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Good is good, but better carries it.精益求精,善益求善。BP神经网络的C+实现及其在故障诊断中的应用-BP神经网络的C+实现及其在故障诊断中的应用王三明蒋军成(南京化工大学南京210009)摘要:采用面向对象的程序设计方法(OOP),利用C+构造实现了优化BP神经网络通用故障诊断程序,介绍了该程序构造的关键技术和重要诊断程序模块的设计;该程序具有良好操作性、扩展性和通用性,诊断实例表明此神经网络故障诊断模型的准确性。关键词:面向对象的程序设计BP神经网络故障诊断1.引言人工神经网络具有自组织、自适应和并行处理等特点以及很强的输入输出非线形映射能力和易于学习和
2、训练的优点,已被广泛应用于多个领域。面向对象的程序设计(OOP)风格,具有良好的概括、分类和抽象能力,该方法已被广泛应用于程序设计语言、形式定义、操作系统、人工智能、实时系统、数据库等多种领域。现存多种类型的神经网络,在拓扑结构和神经元权值信息的整体表现形式上具有很大的共性,而采用OOP实现这些共性是非常有效的。本文采用OOP法,利用C+语言实现了BP神经网络通用程序,以促进神经网络的在故障诊断中的更好应用。2.OOP方法简介3OOP(Oject-OrientedProgramming)是模块设计的一种有效程序设计方法。OOP的包括几个重要概念:对象(object)它不仅代表了普遍使用的物体的
3、直接抽象,而且对用户掩遮了实现的复杂性;类(class);继承(inheritance);多态性(polymorphism),在C+中主要体现在虚函数的应用上;类模板(template)在C+中允许单个的类处理通用的数据类型T。OOP中的类结构通过类接口和类实现分离开来支持信息隐藏,这种分离允许类接口映射到多种不同实现,对用户掩蔽了实现的复杂性。继承机制使对象具有很好的可扩展性,也易于实现软件的重用。这些特性都非常适合于神经网络的实现。3.BP故障诊断神经网络模型及其C+实现3.1BP故障诊断神经网络模型BP网络由多个网络层构成,其中包括一个输入层、一个或几个隐层、一个输出层,层与层之间采用全
4、互连接,同层神经元之间不存在相互连接。BP网络的学习过程由前向传播和反向传播组成,在前向传播过程中,输入模式经输入层、隐层逐层处理,并传向输出层,如果在输出层不能得到期望的输出,则转入反向传播过程,将误差值沿连接通路逐层反向传送,并修正各层连接权值。对于给定的一组训练模式,不断用一个训练模式训练网络,重复前向传播和误差反向传播过程,直至网络均方误差(Ep)小于给定值为止。前向传播的过程按(1)式进行,反向传播过程按(3)、(4)进行。节点输出:Oj=f(WijXi-qj)(1)Oj节点输出;Xi节点输入;Wij-节点连接权值;f-非线形作用函数;q-神经单元阈值。权值修正:Wij(n+1)=a
5、EiOj+hWij(n)(2)a-学习因子(根据输出误差动态调整);h-动量因子;Ei-计算误差。误差计算:Ep=1/2(tpi-Opi)2(3)tpi-i节点的期望输出值;Opi-i节点计算输出值。3.2BP诊断网络模型的C+构造实现用C+实现BP网络诊断模型,包括两大模块,即网络模型数据结构模块和网络功能函数模块。(1)模型数据结构模块为了实现BP模型算法,并使程序结构清晰、易于阅读、扩展,采用了指针、数组及结构技术,定义了以下网络模型数据结构。Typedefstructintn_inputs,n_outputs;/n_inputs-输入层节点数;n_inputs-输出层节点数intn_n
6、hlayers,*nunit;/n_nhlayers-隐层数;*nunit-各隐层节点数floatrate,momentum;/rate-学习因子;momentum-动量因子float*weights,*dweights;/*weights-连接权值;*dweights-权值修正值floatinputij;/inputij-学习样本集floatouts_hlayer,outs_olayerij;/outs_hlayer-隐层输出;outs_olayerij-输出层输出BP_network;(2)模型功能函数模块该BP程序所包含的函数较多,下面简单介绍几个关键函数及其功能。Setup(intn_
7、inputs,intn_outputs,intn_nhlayers,int*nunit,floatrate,floatmomentum)的功能:根据给定的模型参数,创建一个BP网络模型。有两种方法建立网络模型:由用户在程序界面输入模型的各个参数;由程序自动调用Read_network()函数可直接从一定格式的网络模型输入文件中一次性读入网络的拓扑结构及网络权值,自动完成神经网络模型的建立过程,从而对用户掩蔽了网络实现的复杂性。Initweight()的功能:初始化网络的连接权值:即01之间的random()。Feedforward()的功能:实现BP网络的前向传播过程。Feedback()的功
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BP 神经网络 C+ 实现 及其 故障诊断 中的 应用 讲课 讲稿
限制150内