1、遗传算法优化神经网络的故障诊断方法研究摘要 提出了一种基于遗传优化的神经网络故障诊断方法。该方法把经小波包分解的信号能量特征向量作为神经网络的输入向量,用遗传算法对BP神经网络的隐含层节点数、初始权值、阈值和网络的学习速率进行前期优化训练,再用LM算法进行二次训练,最后将优化得到的网络用于故障诊断。仿真结果表明,该算法不仅可以得到最优的网络结构和参数,而且降低了网络误差,提高了运算速度和训练性能。将该方法应用于平流泵故障诊断,证实了它的可行性和有效性。关键词 小波包 神经网络 遗传算法 故障诊断Research of fault diagnosis method based on neural
2、 network optimized by genetic algorithmsZhao Shijun1,2 Sun Shihui2(1. College of Information and Engineering, University of Science and Technology Beijing, Beijing 1000832. College of Information and Control Engineering, China University of Petroleum, Dongying, Shandong 257061)Abstract This paper pr
3、oposes the fault diagnosis method based on neural network optimized by genetic algorithms. This method regards the energy eigenvectors which are decomposed by the wavelet packet as the input eigenvector of the neural network. Genetic algorithm is used to optimize the number of hidden neuron, the ini
4、tial weights and thresholds and the learning rate of BP neural network for the first time, then the network is trained by LM algorithm again, finally, fault diagnosis is done by the optimized neural network The simulation result shows that this method can not only give an optimized structure and par
5、ameters of neural network, but also reduce the network error, improve the computing speed and the training performance. Furthermore, this method verifies the correctness and effectiveness of applying in the pump fault diagnosis.Key words wavelet packet neural network genetic algorithm fault diagnosi
6、s1 引言人工智能技术特别是专家系统在故障诊断领域中的应用,为故障诊断的智能化提供了可能性,也使诊断技术进入新的发展阶段。神经网络以其固有的记忆能力、自学习功能以及强容错性为故障诊断问题提供了一个新的解决途径,但是人们通常使用的误差反向传播算法,即BP算法,也有着自身的缺陷,如网络的性能严重依赖于训练样本和初始权值、阈值,网络的隐含层节点数需由经验或试探来确定,网络的收敛速度慢且容易陷入局部极小值等1。遗传算法是一种随机优化搜索方法,具有很强的全局搜索能力,并能以较大的概率找到最优解或性能很好的次优解,但标准的遗传算法也有容易过早收敛等方面的局限性2。本文针对科学实验中广泛使用的平流泵的故障特
7、点,选取合适的小波函数提取信号的能量特征向量,用遗传算法优化BP神经网络的结构和参数,然后用优化后的网络对平流泵进行故障诊断,实验证实了它的可行性和有效性。2 故障信号能量特征提取2.1 小波函数的选取运用小波包进行时频分析时,要求能够提取非平稳信号的瞬时、奇异与突变成分,即提取有限频带上的信息,也就是在特定尺度上进行小波变换。因此,选择小波函数时,考虑时频两域的紧支撑尤为重要。考察故障信号可以发现,它们是不平滑的曲线,所以,小波函数的正则性也要着重考虑。工程实践经验告诉我们,小波因其具有正交、时频紧支撑等特点,在信号处理领域大受欢迎。小波的支撑长度为,因此要比的局部化特性好3。在对、几种小波
8、进行比较后发现,与故障信号的波形相似。因此,综合以上几方面的考虑,本文选用小波进行信号分析。2.2 信号的小波包降噪在信号处理中,信噪比(SNR)、均方根误差(RMSE)和峰值误差是最常用的三种衡量信号降噪有效性的指标。信号的信噪比越高,原始信号与估计信号的均方根误差越小,同时,若峰值误差越接近于零的话,则估计信号就越接近于原始信号,降噪效果越好。小波包降噪处理一般有强制降噪处理、默认阈值降噪处理、给定软(或硬)阈值降噪处理三种方法4。本文任意抽取一种信号用这三种方法分别进行小波包降噪,对比它们的降噪效果,从而决定对所有信号采用的降噪方法。三种方法降噪的性能对比如表1所示。由表1知,硬阈值降噪
9、效果的性能比其他三种方法的都要好一些。因此,本文将采用给定硬阈值降噪方法对采集到的所有信号进行降噪处理。表1 降噪效果的性能评价强制降噪处理默认阈值降噪处理硬阈值降噪处理软阈值降噪处理信噪比(SNR)99.6479119.0153119.0698108.4679均方根误差(RMSE)0.03450.01310.01310.0222峰值误差()0.02730.00808.8329e-0040.01602.3 小波包分解提取信号特征向量1首先对数据做归一化处理。归一化的公式为: (1)式中,为初始数据,为归一化之后的数据,和分别表示同一个输入节点的数据中的最大值和最小值。2. 将信号进行N层小波包
10、分解,得到第N层从低频到高频个频带的特征信号,j=1,2, 。3. 求各频带信号的能量:。(2)4. 构造特征向量。首先对进行归一化处理: , (3)则可由此确定能量特征向量为。3 GA+BP算法设计遗传算法(Genetic Algorithm,简称GA)的基本原理为:首先产生若干个所求解问题的数字编码,即染色体,形成初始群体;通过适应度函数给每个染色体一个数值评价,选择适应度值大的染色体参加交叉和变异遗传操作;经过遗传操作后的染色体集合形成下一代群体,若未达到最大进化代数,则再对这个新群体进行下一轮进化5。BP神经网络是一种具有三层或三层以上的神经网络,包括输入层、隐含层和输出层。BP神经网
11、络已被广泛应用于故障诊断领域6,但如何确定网络的隐含层节点数和网络的初始参数仍值得探讨。遗传算法虽然有很强的全局搜索能力,但标准遗传算法也存在一些局限性。本文研究设计了GA+BP算法,即遗传算法优化BP神经网络的隐含层节点数、权值阈值的初始值以及网络的学习速率。3.1 遗传编码与解码把每个染色体分解为连接基因和参数基因进行编码。连接基因采用二进制编码方式,“1”表示该神经元存在,“0”表示不存在,编码长度等于隐含层神经元个数;参数基因采用实数编码方式,即每个连接权值、阈值和学习速率直接用一个实数表示。由于网络的权值、阈值可以为负,而学习速率必须是正数,因此,将参数基因划分为权阈基因和速率基因两
12、部分。权阈基因的编码长度等于神经网络各层所有权值、阈值的总个数,速率基因则只需用1个实数来编码。因此,参数基因的编码长度为权阈基因与速率基因的长度之和,而一个染色体的编码总长度为连接基因编码长度与参数基因编码长度的和。假设1 1 0 11 是一个染色体中连接基因的编码,编码的长度为K,那么这样的基于GA编码的三层BP神经网络的结构如图1所示。图1中,为输入层神经元,为隐含层神经元,为输出层神经元,为输入样本,为网络的输出。输入层 隐含层 输出层图1 基于GA编码的三层BP神经网络结构图解码时,它的输入层到隐含层、隐含层到输出层的权值、和隐含层的阈值如式4、式5、式6所示。(4) (5)(6)网
13、络的学习速率与网络结构无关,因此它不参与以上解码过程,也就是说无需解码。GA+BP算法的这种编码方式的优点在于:(1)可以直接根据连接基因的二进制0,1编码串建立相应结构的BP神经网络,并且神经网络的隐含层节点数与编码串中“1”的个数相等,这样就可以明了的看到解码后的网络结构;(2)实数编码的参数基因有较大空间的遗传搜索,而且不需要经过复杂的解码就可以得到网络的权值、阈值和学习速率,提高了运算效率。3.2 适应度函数的设计 适应度函数是用于区分群体中个体好坏的标准。GA+BP算法的适应度函数建立在神经网络的总误差的基础上,即每个染色体的适应度函数取为(7)式中,是神经网络中的误差,表示理想输出
14、,表示真实输出,为样本集个数7。3.3 遗传算子的设计群体中的每个个体首先接受选择操作。选择操作采用最佳个体保存与适应度比例相结合的方法。对当前群体的染色体,首先采用最佳个体保存策略,适应度值最大的染色体不必参与交叉和变异操作而直接进入下一代,然后采用适应度比例方法,在该方法中,每个染色体的被选择概率为,式中,表示第个染色体的适应度值。这样,适应度值大的个体有机会进入下一代,而概率小的个体也有机会,从而保证了群体中个体的多样性,防止算法落入局部最优。然后将经过选择操作的染色体进行交叉和变异操作。交叉在遗传算法中起着关键性的作用,它是产生新个体的主要方法,它决定了遗传算法的全局搜索能力;而变异运
15、算只是产生新个体的辅助方法,它决定了遗传算法的局部搜索能力。交叉操作和变异操作把染色体分成两部分进行。连接基因的部分采用单点交叉方式和基本变异方式,参数基因的部分采用算术交叉方式和非均匀变异方式,但其中的权阈基因和速率基因各自交叉和变异而互不干扰。交叉算子和变异算子采用自适应算法,如式8、式9所示。(8)(9)式中,是当前群体中适应度值的最大值,是当前群体中适应度值的最小值,是当前群体的适应度值的平均值,是参与交叉的两个染色体中适应度值较大的一个染色体的适应度值8。4 GA+BP算法步骤本文用遗传算法对BP神经网络的隐含层节点数和初始权值阈值进行前期优化训练,再用L-M算法进行二次训练。GA+
16、BP算法的步骤如下:1.按照3.1节的编码方式随机产生初始群体,群体中的每个个体表示一种网络结构及该结构对应的初始参数。2. 建立初始状态下的BP神经网络。3. 提供一组输入样本给BP神经网络的输入层,训练BP网络,并计算神经网络的输出误差。4判断是否训练完所有的样本,若不满足则选取下一个学习样本提供给网络,转向步骤3继续训练,若满足则得到网络的总误差,按照3.2节的适应度函数设计,将该误差作为遗传算法的适应度函数,计算每个个体的适应度函数值。5. 按照3.3节的选择、交叉、变异遗传操作方法,对当前群体进行遗传操作,产生新的种群。6. 判断是否达到最大进化代数,若满足,则转向步骤7,若不满足,
17、则转向步骤5。7. 遗传结束,得到最优个体,将该个体按照3.1节的解码方法进行解码,得到最优的网络结构以及该结构对应的初始权值、阈值和学习速率,用遗传结果建立BP神经网络。8提供一组输入样本给BP神经网络的输入层,训练网络。9. 判断是否训练完所有的样本,若不满足则选取下一个学习样本提供给网络,返回到步骤8,若满足则转至步骤10。10计算总误差,判断网络的总误差是否满足,若满足则结束训练,若不满足则转向步骤11。11判断网络是否达到预定训练次数,若满足则结束训练,若不满足则返回到步骤8继续训练。5仿真与应用实例开发研制CDLY-2006智能型长期导流能力测量仪,对系统中的平流泵进行故障诊断。根
18、据平流泵的工作原理和技术人员的经验知,常见有存在气泡、出口堵塞、流程泄漏三种故障。给CDLY-2006智能型长期导流能力测量系统加回压5MPa,设定平流泵排量为5ml/min,取测点为系统上、下游压力,分别采集平流泵正常工作和出现三种故障时的信号,每种状态下采集20组数据,每组2000个数据点。本文对四种工作状态的信号分别进行3层小波包分解,得到8个不同频带内的信号。能量特征向量的柱状图如图2所示。 图2 四种工作状态的特征向量柱状图 5.1 BP神经网络的故障诊断首先,对 BP神经网络的结构和参数进行设计。1. 网络结构方面BP神经网络采用三层网络结构,网络的输入层节点数取决于特征向量的维数
19、,即;输出层节点数由工作状态数决定,即,四种工作状态的目标分别为正常工作(1 0 0 0)、存在气泡(0 1 0 0)、出口堵塞(0 0 1 0)、流程泄漏(0 0 0 1)。隐含层节点数可参考下面的公式:(1),其中,a为1,10之间的常数;(2);(3);以上公式中,为输出神经元数,为输入单元数,为隐含层单元数9。2. 网络参数方面本文选取40组样本,其中系统正常工作、存在气泡、出口堵塞、流程泄漏分别取10组。网络的输入层神经元的传递函数选用tansig,隐含层神经元的传递函数选用logsig,输出层神经元的传递函数选用purelin,网络采用LM算法进行训练, 学习速率为0.1,误差要求
20、是=0.0001。基于MATLAB仿真平台,对隐含层神经元个数814分别进行10次仿真实验,并对这十次仿真的收敛次数取平均,得到不同的训练次数如表2所示。表中,平均收敛步数一行括号内为训练失败的次数。表2 不同隐含层节点数的BP网络十次训练的平均收敛次数及平均运行时间隐含层节点数891011121314平均运行时间(s)1.9972031.8763871.7071731.5977651.6608731.7386971.817702平均收敛步数57(0)49(1)42(0)37(0)39(1)43(0)48(0)由表2可知,当隐含层的节点数为11时,网络收敛所需的训练次数较少,运行所用的时间也较
21、少,并且,十次训练中没有训练失败的情况发生。因此,BP网络的隐含层节点数取为11个。至此,BP神经网络的结构确定为“8-11-4”,将上述11个隐含层节点数的网络十次训练后得到的权值和阈值取平均,作为“8-11-4”神经网络的初始权值、阈值。为了不失一般性,用BP神经网络进行十次故障诊断。收敛所用的时间、收敛步数以及网络误差列于表3,表中“”表示训练失败。其中,经过35步收敛,收敛所用时间为1.539s,网络误差为0.334的网络训练过程如图3所示。表3 BP算法十次故障诊断结果次数12345678910运行时间(s)1.5761.6031.5391.6291.6171.5941.5891.6
22、021.579收敛步数384235464239404537网络误差0.3490.4780.3340.5110.3960.3740.5270.4530.549图3 BP神经网络训练过程图5.2 GA+BP算法的故障诊断根据5.1节列出的确定隐含层节点数的参考公式,初步设定隐含层神经元个数为25。因此,初始状态下的BP神经网络,即8-25-4结构。由3.1节的编码方式随机产生80个个体初始群体,每个个体的编码长度为。其中,前面的是25个是连接基因,采用二进制编码方式,“1”表示该神经元存在,“0”表示不存在;后面的 个是参数基因,采用实数编码方式。参数基因中,前个是权阈基因,初始化为(-1,1)的
23、实数,最后的一个是速率基因,初始化为(0,1)的实数。一般的,学习速率的取值范围是0.010.8,因此,解码时需要对优化得到的学习速率加以界定处理:若学习速率小于0.01,则取为0.01;若大于0.8,则取为0.8,因此,得到的学习速率为(0.01,0.8)的实数。遗传最大进化代数取为100代,适应度函数及遗传算子等的设计如3.2和3.3节。另外,BP神经网络的输入层节点数、输出层节点数等参数与5.1节相同。表4 GA+BP算法十次训练结果根据第4节中GA+BP算法步骤,对40组样本进行仿真实验。为了不失一般性,本文用GA+BP算法也进行了十次实验。GA+BP算法十次训练结果如表4所示,表中列
24、出了十次实验得到的隐含层节点数、学习速率、网络误差以及训练的平均收敛步数和运行时间,其中,平均收敛步数一行括号内为训练失败的次数。隐含层节点数1013111213141191310学习速率0.2630.1820.4270.3910.6770.1580.7020.2940.4570.645运行时间(s)1.2361.2451.1571.2491.2211.2131.2141.1591.2281.212收敛步数18(0)20(0)9(0)21(0)16(0)12(0)13(0)10(0)15(0)13(0)网络0.1170.1280.1440.1510.1290.1500.1430.1090.15
25、70.126误差隐含层节点数为13,收敛步数为20,学习速率为0.182,网络误差为0.128的GA+BP算法的训练过程如图4所示,遗传算法对BP神经网络的结构和参数的寻优过程如图5所示。图4 GA+BP算法的训练过程图图5 遗传算法对BP神经网络的结构和参数寻优过程图由以上的故障诊断的仿真实验知,无论是用BP算法还是用GA+BP算法,都达到了故障诊断的目的。但将二者对比分析可知,GA+BP算法又有许多优点。BP算法中难以确定隐含层节点数,即使有参考公式,也只能对隐含层节点数进行粗略估计。要想更准确的确定隐含层节点数,还需要逐一训练,另外,为了减少人为给定学习速率造成的误差,同样需要对一定范围
26、内的学习速率逐一训练,这无疑有着很大的工作量。对比表3与表4、图3与图4,我们可以看到,GA+BP算法的运算速度要高于BP算法,在所有训练成功的诊断中,GA+BP算法的网络误差明显小于BP神经网络,这也就是说GA+BP算法的故障诊断准确率高于BP算法。在相同的精度要求情况下,GA+BP算法收敛所需要的步数要比BP算法少,并且,GA+BP算法收敛时的训练精度已接近。另外,由于BP算法本身的局限性,容易陷入局部极小而导致训练失败,而GA+BP算法则克服了这一点。由此可见,GA+BP算法较之传统的BP算法用于平流泵的故障诊断具有明显的可行性和可靠性。6 结论为了克服BP神经网络的隐含层节点数和初始参
27、数对网络性能的影响,本文研究设计了GA+BP算法,它首先把经小波包分解的信号能量特征向量作为神经网络的输入向量,用遗传算法对BP神经网络的隐含层节点数、初始权值、阈值和网络的学习速率进行前期优化训练,这样不仅得到了最佳的网络结构,而且获得了此结构所对应的最优的权值、阈值以及学习速率,然后再用LM算法进行二次训练,最后将优化得到的网络用于故障诊断。仿真结果表明,该方法能够有效地提高网络的训练性能和运算速度,并实现了遗传算法与BP神经网络的优势互补。用训练过的神经网络对CDLY2006智能型长期导流能力测量仪中的平流泵进行验证,证实了该算法的可行性和有效性。参考文献1 LU Xin-lai, LI
28、U Hu, WANG Gang-lin, WU Zhe. Helicopter sizing based on genetic algorithm optimized neural network J. Chinese Journal of Aeronautics, 2006, 19 (3): 212-218.2 Barmada.S. Analysis of transmission lines with frequency-dependent parameters by wavelet-FFT method J.IEEE Transactions on Magnetics, 2003, 3
29、9(3):1602-1605.3 Turkheimer, F.E.A linear wavelet filter for parametric imaging with dynamic PET J.IEEE Transactions on Medical Imaging, 2003, 22(3):289-301.4 Zhang Q H, Benveniste A. Wavelet networks J.IEEE Transactions on Neural Networks, 1992, 3(6): 889-898.5 Abhinav Saxena, Ashraf Saad. Evolving
30、 an artificial neural network classifier for condition monitoring of rotating mechanical systems J. Applied Soft Computing, 7(2007): 441-454.6 A.G.Olabia, G.Casalino, An ANN and Taguchi algorithms integrated approach to the optimization of laser welding J. Advances in Engineering Software, 37(2006):
31、 643-648. 7 Dam M, Saraf D N. Design of neural networks using genetic algorithm for on-line property estimation of data mining applications J. Computer and Chemical Engineering, 2006, 30(4): 722729.8 Shiwei Yu, Kejun Zhu, Fengqin Diao. A dynamic all parameters adaptive BP neural networks model and its application on oil reservoir prediction J.Applied Mathematics and Computation, 195(2007): 66-75.9 S.M. Jakubek, T.I. Strasser. Artificial neural networks for fault detection in large scale data acquisition systems J. Engineering Applications of Artificial Intelligence, 17(2004): 233248.