遗传算法优化的BP神经网络在模拟电路故障诊断中的应用
2014-02-20谭检平刘辉杨岳飞
谭检平+刘辉+杨岳飞
摘 要 针对BP神经网络在模拟电路故障诊断中的缺陷,BP神经网络采用的是沿梯度下降的搜索求解算法,因而收敛速度慢,而且容易陷入局部极小等问题。本文提出用遗传算法来优化BP神经网络权值和阈值的诊断方法,并以心电放大模拟电路为诊断实例,验证采用遗传算法优化的BP网络在诊断实例中的效果。结果表明,和传统的BP神经网络诊断方法相比,遗传神经网络算法既提高了网络收敛速度,又提高了诊断的准确度。
关键词 遗传算法 BP神经网络 模拟电路 故障诊断
中图分类号:TP183 文献标识码:A
0 引言
自20世纪60年代以来,模拟电路故障诊断研究取得了很大的成绩,但由于模拟电路的输入输出关系及测试方法都比较复杂,而且模拟电路的元件有容差性,从而使得模拟电路故障诊断进展比较缓慢。①②目前,BP神经网络广泛应用于模拟电路的故障诊断中。虽然BP算法具有精确性,却存在容易陷入局部极小值,造成收敛速度慢等问题。遗传算法有较强的宏观搜索能力,还可以克服BP神经网络容易陷入局部极小值的问题,本文将二者结合而给出一种新的算法:遗传神经算法,从而达到理想的诊断效果。
1 BP神经网络的模拟电路故障诊断方法
1.1 模拟电路故障诊断原理
模拟电路故障的模式识别诊断原理是先对模拟电路故障数据进行采集,再通过一定的算法对电路故障进行分类,以达到电路故障定位的目的。主要包括电路测试,特征提取和故障诊断三个阶段,用图1所示来表示模拟电路的故障诊断过程。
图1 模拟电路故障诊断框图
模拟电路故障诊断是一种模式识别问题,电路故障与模拟元器件存在非线性问题,输入和输出间的关系复杂并且难以用精确的数学模型刻画,由于模拟电路的非线性,导致传统故障分类方法无法识别其非线性,故障诊断率低。
1.2 BP神经网络算法
1986年Rumelhart和McClelland等科学家提出了BP神经网络,是一种按误差反传算法训练的多层前向网络,③是当前使用最广泛的神经网络模型,无需事前知道输入和输出之间的映射关系,能够进行自学习,BP神经网络结构如图2所示。
图2 BP神经网络的结构图
2 遗传算法优化神经网络
遗传算法(Genetic Algorithm,GA)是以自然选择和生物进化为基础,将生物进化过程中适者生存规则与群体内部染色体的随机信息交换机制相结合的高效全局寻优搜索算法。④⑤⑥遗传算法不是从一个点而是从多个点开始搜索,这样就可以避免搜索过程在局部最优解处收敛,从而有可能从解的空间寻优得到全局最优解。该算法是通过适应度函数来寻优的,不要求目标函数的连续性、可微性。本文将遗传算法和神经网络算法结合起来用于模拟电路故障诊断中。
2.1 编码
二进制编码被传统的GA所采用,虽然二进制编码简单和通用,编码、解码操作简单易行,但是二进制编码对处理复杂问题而言,自变量较多,而且编码长度较长,从而导致染色体的长度非常长进而使搜索空间增大,进化速度很慢,降低了搜索效率。本文采用实数编码的GA,对二进制编码加以改进,缩短了编码长度,提升了处理复杂的决策变量约束条件能力,提高了运算的精度和高度,也缩小了搜索空间,提高了搜索效率。
2.2 计算适应度
采用训练样本对种群中的个体所代表的神经网络进行网络训练,计算每个个体所代表网络的学习误差,从而确定适应度的值,误差与适应度成反相关。训练误差为:
= [( )] (1)
定义式中,表示训练样本个数,表示输出单元个数,为第个样本时第个输出单元,为第个样本时第个期望单元。计算初始种群中每一个个体的适应度值,我们把个体适应度函数定义为:
() = (2)
式中,对于输入样本集: = (,,…),输出样本集为: = (,,…)。
2.3 选择
通常的选择算子有很多,建立在对个体的适应度进行评价的基础上,根据优胜劣汰原则本文采用确定式采样选择方法,具体操作步骤如下:
①计算适应度的期望值:
= (3)
②计算群体中每个个体在下一代生存的期望生存数:
= (4)
③对进行取整运算得到[],则可以确定出下一代群体中的[]个个体;对的小数部分进行降序排列,顺序排在前[]个加入到下一代群体中,后面的就淘汰掉了。这样下一代群体中的个个体就确定了。
2.4 交叉
单点交叉或多点交叉在二进制的编码中常被采用,虽然单点交叉或多点交叉操作简单,但是不利于产生新的优良的个体。在实数编码中,采用算术交叉的方法,对个体进行线性组合而产生新的个体。随机从第一代个体中选择两个个体、作为交叉的父本,通过线性组合而产生出两个新的子代、,它们由(5)、(6)式确定。
= + () (5)
= () + (6)
其中为一个0~1之间的随机数。
2.5 变异
为了使遗传算法维持种群的多样性,就必须采用变异算子。这样不但可以增加局部所搜能力,而且能防止出现过早成熟,针对实数编码遗传算法,本文采用非均匀变异算法。设群体中的一个个体为 = (,,…,…),假定在变异点处的基因值取值范围为[],则新的基因值由(7)式确定:
(7)
其中,表示一个0~1范围内的随机数,€HU(代表或)表示[0,]内符合非均匀分布的一个随机数,本文定义€HU如(8)式:
€HU = ·() (8)
其中,为种群的最大进化代数,为0~1内符合均匀概率分布的一个随机数,为系统固有的参数。不断重复计算适应度、选择、交换及变异操作产生新的群体,使得权值和阈值得到不断修正,直到总的迭代次数或是误差达到预设训练标准。其流程图如图3所示。endprint
图3 诊断流程图
图4 心电放大图
3 电路诊断仿真实例
3.1 模拟电路
以心电放大电路为例来验证本文提出的对BP神经网络算法改进的有效性。电路如图4所示,其中电阻R1~R12,其电阻允许容差范围为5%,电容C1~C2,其电容容差范围为10%,运放采用LF411,单位正弦激励为输入,频率为100Hz。在仿真过程中,根据灵敏度分析得出R8,R9,C1最易受容差影响,所以我们仅考虑三种故障R8负偏50%,R12正偏50%,C1正偏50%,共三种单软故障。
3.2 遗传算法优化BP神经网络模型参数设定
建立BP神经网络为三层网络模型,神经网络输入层和隐层函数为tansig,神经网络输出层函数取logsig。参数设定输入层单元数r = 15,根据经验规律得出隐层单位数h = 2*r+1即h = 31,输出层单元数为电路故障的种类即q = 3,神经网络的初始学习速率为0.1,遗传算法染色体的编码长度为l = r*h + q*h + h + q即l = 592,初始种群大小设为40,迭代次数为50,评判误差为0.01。
图5 改进的BP神经网络训练误差曲线图
图6 传统的BP神经网络训练误差曲线图
3.3 训练和测试结果分析
BP算法的训练目标为error_goal = 0.01,学习速率为lr = 0.1,经过GA优化后的权值和阈值赋给BP网络作为初始值,经过训练达到要求,训练过程如图5所示。
同样建立传统的BP神经网路,其参数设定跟用遗传算法优化的BP神经网络参数一样。在相同的预测误差下,其训练过程如图6所示。通过图5和图6,观察分析可得:在相同的预测误差下,优化的BP神经网路算法的迭代次数要少,而且其全局搜索能力强,不易陷入局部极值。
经过网络训练后,分别随机选取的测试数据进行测试分析,测试结果、期望输出以及诊断误差分别如表1和表2所示。
表1 改进的BP神经网络测试数据表
表2 传统的BP神经网络测试数据表
4 结论
本文采用GA优化BP神经网络的权值和阈值,能使BP网络在较小的范围发挥高精度的搜索优势,而不必靠经验和试验来确定这些参数,从而提高故障诊断的精度和速度;同时,克服BP算法陷入局部最小点、收敛速度慢等问题,结合这两方面的优点,遗传算法优化的BP网络用于模拟电路故障诊断是有效且实用的,为模拟电路故障诊断智能化提供了方法。
注释
① 谭阳红,何怡刚.模拟电路故障诊断技术的发展[J].测控技术,2003(7):1-3.
② 何怡刚.非线性容差模拟电阻电路故障诊断的神经网络方法[J].固体电子学研究与进展,2002.22(3):297-299.
③ 虞和济,陈长征.基于神经网络的智能诊断[M].北京:冶金工业出版社,2000.
④ 范睿,李国斌.基于实数编码遗传算法的混合神经网络[J].计算机仿真,2006.23(1).
⑤ 陈国良.遗传算法及其应用[M].北京:人民邮电出版社,1996.
⑥ Herrera F.Lozano M. Gradual distributed real-coded genetic algorithms [J].IEEETra- nsactions on Evolutionary Computation,2004.4(1):43-63.endprint