吴陈,王和杰
(江苏科技大学 计算机科学与工程技术学院,江苏 镇江212003)
基于改进的自适应遗传算法优化BP神经网络
吴陈,王和杰
(江苏科技大学 计算机科学与工程技术学院,江苏 镇江212003)
针对Srinivas提出的自适应遗传算法种群前期进化较慢的问题,改进了自适应交叉率和变异率的计算方法,考虑交叉率和变异率与种群进化所处阶段的匹配,提出一种改进的自适应遗传算法;并将其应用于BP神经网络计算模型的优化,运用到汽车加油量计算中,通过比较标准BP网络、Srinivas提出的自适应遗传算法优化的BP神经网络和改进的自适应遗传算法优化的BP神经网络3种模型的计算误差,验证得出改进的自适应遗传算法优化BP神经网络的算法优于另外两种。
BP神经网络;自适应遗传算法;交叉率;变异率;优化
人工神经网络(Artificial Neural Networks,ANN),是基于人类大脑的生物活动所提出的,是一个数学模型[1]。BP(Back Propagation)神经网络是一种多层前馈型网络,是最典型的多层神经网路学习算法。BP神经网络可以理解为是一个黑箱模型,它具有很强的非线性映射能力、适应能力和学习能力,因此它的实际应用较为广泛[2]。但,BP网络也存在着明显的缺点,如:网络参数的训练速度较慢、易陷入局部最优以及网络拓扑结构的设计尚无理论指导,一般根据经验或者通过反复实验确定。
多年来,很多科研人员在就如何克服BP神经网络自身缺点做了很多研究工作[3-8]。文献[7]中,Liu Ke等人使用遗传算法优化BP网络的网络连接权值和神经元的阈值,并将其应用到电力工业金融投资的预测中,验证了遗传算法优化后的BP网络的预测性能明显提高。文献[8]中,Hong-Bin Wang等人将自适应的遗传算法优化的BP神经网络应用于机器人视觉伺服系统的设计,提出了一种简易有效的机器人控制方法,在缩短机器人定位物体时间的同时大大降低了定位的错误率。
文中采用遗传算法优化BP神经网络的网络连接权值和神经元阈值,将遗传算法优越的全局搜索能力与BP神经网络的局部搜索能力相结合,应用于汽车油耗监控系统中的加油量统计的计算模型,提高算法的计算精度和稳定性。
1)BP神经网络算法
BP算法是BP神经网络的核心,由信号的正向传播和误差的反向传播两个过程组成。正向传播时,信号经过隐含层传向输出层,若输出值未到达算法预期,则转入误差的反向传播;反向传播时,通过输出层的误差反向推导各层神经元的误差,并以此为依据修正网络的连接权值和神经元阈值,最终达到减小网络输出误差的目的。
2)遗传算法
世间的生物都是从其父代继承特性或性状的,这种生命现象就称为遗传[9]。遗传算法是借鉴自然界中种群的进化过程,模拟种群中个体的染色体的遗传和变异而形成的一种全局优化随机概率搜素算法,由美国 Michigan大学的 J.H. Holland首次提出[10]。遗传算法将待求解的问题映射为种群的生存环境,而种群中的每个个体则代表问题的一个潜在解,算法通过适应度值衡量个体对环境的适应性,以此反映个体的优劣。根据个体适应度的高低,选择优秀的个体直接遗传到下一代,或者通过交叉运算后再遗传到下一代。在种群迭代的过程中,部分个体可能会发生变异。至此,算法完成了对自然界种群进化过程的复制、交叉和变异的模拟。随着算法的迭代,种群整体适应度值将不断提高,种群中的最优个体也不断向问题的最优解逼近。
遗传算法优化BP神经网络可以用遗传算法优越的全局搜索能力弥补BP神经网络全局搜索能力弱的劣势。先利用遗传算法将最优解快速的定位到一个较小的搜索空间,再发挥BP优秀的局部搜索能力,在缩小后的空间里搜索最优解。以此,减小BP搜索陷入局部最优的可能性,提高算法搜索求解的速度和稳定性。
2.1 自适应遗传算法
标准的遗传算法在进行交叉和变异操作时并没有考虑进行运算的个体的优劣性,只采用固定的交叉率和变异率,很大程度限制了算法的收敛速度。为此,Srinivas[11]提出了自适应遗传算法(Adaptive Genetic Algorithm,AGA),根据个体适应度值在种群中所处水平调整交叉率和变异率。
式中:f′是进行交叉运算的两个父辈个体的适应度值的最大值;f是进行变异运算的个体的适应度值;fmax和fmin分别是种群个体适应度的最大和最小值;favg是整个种群适应度的平均值pc1,Pc2,Pm1,Pm2,均为(0,1)区间内的常数。
从式(1)和式(2)可知,当个体适应度值接近于最大值时,其交叉率和变异率均趋近于零。若是处于种群进化后期,该方法有助于保护优秀个体,减少交叉和变异操作对优秀基因的破坏。而种群进化初期,这将使得适应度大的个体很少能得到进化的机会,造成整个种群进化的速度非常缓慢。
2.2 改进的自适应遗传算法
基于以上所述缺点,对自适应交叉率和变异率计算方法做如下改进:
其中:f′是进行交叉运算的两个父辈个体的适应度值的最大值;f是进行变异运算的个体的适应度值;fmax和fmin分别是种群个体适应度的最大和最小值;是适应度值大于种群均值的所有个体适应度的平均值均为(0,1)区间内的常数;iter是种群当前进化代数;T是种群进化的目标代数;l为大于1的整数;符号表示向下取整。
改进的自适应遗传算法(Improved Adaptive Genetic Algorithm,IAGA)将种群进化过程分为个阶段,综合考虑个体适应度在种群中所处水平和种群当前进化阶段,以此调节交叉率和变异率。改进的算法避免了种群进化初期优秀个体交叉率和变异率趋近于零导致进化缓慢的情况出现,随着种群的进化,个体的自适应交叉率和变异率整体呈下降趋势,有利于保护优秀个体和优秀基因。
2.3 改进的自适应遗传算法优化BP神经网络的设计
遗传算法和神经网络的结合主要是用遗传算法优化神经网络,即优化网络的权值和优化网路的拓扑结构[12]。文中采用遗传算法优化BP网络的初始权值和阈值,算法流程如图1所示。
图1 改进的自适应遗传算法优化BP神经网络算法流程图
2.3.1 编码规则
BP网络的权值和阈值均为(-1,1)区间内的小数且数量较多,若使用二进制编码将造成染色体过长。故本文采用实数编码规则,每个基因位的值代表一个阈值或权值。
2.3.2 选择策略
研究中采用轮盘赌和最优保存相结合的选择策略。虽然轮盘赌的方式可以使优秀个体具有较大的概率可以遗传到下一代,但仍有可能错过最优个体。为了最优个体得以保存,故增加了最优保存的原则,先选出最优个体,再通过轮盘赌的方式选出其余个体。
2.3.3 交叉策略
交叉算子的设计思路是模仿生物自然进化过程中,两个同源染色体通过交配而重组,形成新的染色体[13]。选择操作后的种群中个体两两随机配对作为父辈个体,由两个父辈的适应度计算出自适应交叉率,若满足条件,父辈个体按照如下公式进行交叉运算:
式中,y1和y2表示交叉操作得到的两个子代个体,x1和x2则表示进行交叉的两个父辈个体,a为交叉系数,为区间(0,1)内的常数。
2.3.4 变异策略
对于待进化种群中个体染色体长度较大的情况,若仅采用单点变异方式,对种群进化的帮助将很小。故,文中选择的是多点变异。考虑到随着种群的进化,染色体中需要修正的基因位的个数也将随之减少,所以定义了自适应的变异点个数如下:
式中:NUM为自适应变异点个数num的最大值,为小于等于染色体长度的常数;iter表示种群当前进化代数;T表示种群目标进化代数;l为大于1的整数;符号表示向下取整。
当个体满足变异率条件时,计算变异点个数后随机产生相应个数的变异位置,以区间(-1,1)内的随机数替代染色体中相应基因位的值。
2.3.5 适应度函数
适应度函数(Fitness Function)的选取直接影响到遗传算法的收敛速度以及能否找到最优解[14]。算法在进化搜索时,根据适应度函数计算个体的适应度值,以此为据评价个体的优劣程度,一般适应度值越大表明个体越优秀。遗传算法不需要适应度函数满足连续可微等条件,唯一要求是针对输入可计算出能加以比较的非负结果[15]。
种群中的个体x对应于BP网络的权值和阈值的排列,即一个个体x就对应于一个BP网络。E(x)为其对应的BP网络仿真输出的误差平方和,那么E(x)越小则表明x越优秀。故,文中采用适应度函数如下:
式中:FIT为常数。
2.3.6 优化的BP网络初始权值和阈值
遗传算法进化完成后,选出适应度值最高的个体,以对应的权值和阈值的排列作为BP网络的初始权值和阈值,开始网络的学习,直到满足终止条件后,BP算法部分停止。由此,获得优化后的网络,根据输入的仿真数据输出仿真结果。
本节中将上文设计的改进算法应用于上海某公司的汽车油耗监控系统的加油统计功能中,形成汽车加油量的计算模型。通过采集汽车加油前后连续的油量值以及相应的油温,计算出车辆的加油量。选取该公司车载终端采集的上海某公交公司部分车辆6月份的120条加油前后数据,以及该公交公司统计的实际加油量作为原始数据,其中100条用于计算模型的学习,20条用于仿真验证。分别使用标准BP神经网络算法(BP)、Srinivas提出的自适应遗传算法优化的BP神经网络算法(AGA-BP)和本文提出的改进的自适应遗传算法优化的BP神经网络算法(IAGA-BP)建立各自的计算模型,并对比3种模型的计算性能。
3.1 实验一:IAGA-BP VS AGA-BP
IAGA和AGA两种算法从同一个初始种群出发,各自进化200代后对比两个种群的适应度值。
从图2所示的曲线可以看出,种群进化初期,基于AGA算法的种群适应度均值和最大值均上升缓慢,反观IAGA算法的种群,其适应度均值和最大值迅速上升到一定水平,之后以高于AGA算法的速率持续上升。显然算法的改进大幅度提高了种群进化的速度,缩短了收敛时间,且IAGA算法得到的最优个体也比AGA算法的最优个体更优秀。
图3所示为IAGA-BP算法与AGA-BP算法仿真输出的误差百分比。从图中可以看出,对IAGA-BP而言,除了个别点波动较大,其他点都在0附近小幅波动,波动的幅度小于AGA-BP算法。同样,我们可以看到IAGA-BP超过一半点的误差小于AGA-BP算法。
图2 IAGA与AGA算法种群进化过程适应度最大值和平均值变化曲线
3.2 实验二:IAGA-BP VS BP
从图4所示曲线中可以看出,标准BP算法计算的误差波动范围较大,而IAGA-BP的输出则是在0附近小幅震荡,且可以看出IAGA-BP的计算精度远高于标准BP算法。
图3 IAGA-BP与AGA-BP算法仿真误差对比
图4 IAGA-BP与标准BP算法仿真误差对比
3.3 数据分析
对3种算法的仿真结果进行分析,得出表1所示对比结果。
实验中共输入20组数据进行仿真,IAGA-BP算法20组输出中,13组误差小于AGA-BP,15组误差小于标准BP,且总误差也小于另外两种算法。显然,IAGA-BP的计算精度更高。在小于等于3%,小于等于2%以及小于等于1%3种评价标准下,IAGA-BP算法均优越于AGA-BP算法和标准BP算法,一方面表明模型的计算精度得到提高,另一方面则说明算法的改进增强了模型的泛华能力,减少了个别点计算误差较大的概率。
表1 3种算法仿真误差对比分析
算法原始仿真结果在表2中列出
表2 3种算法仿真输出及误差
文中将遗传算法与BP神经网络相结合,应用于汽车加油量计算,这将给汽车精准油耗自动化监控与分析带来一定帮助。文中,重点研究自适应交叉率和变异率的算法优化,以此提高遗传算法的性能。研究结果也充分表明了交叉率和变异率的计算方法对遗传算法的仿真结果影响较大,计算方法的选取也影响到算法的计算精度和泛化能力。文中提出的IAGA-BP计算模型,不仅能够准确计算出车辆的加油量,而且相较于标准BP算法和AGA-BP算法,其计算精度得到提高,稳定性得到加强,泛华能力也得到提升。
[1]庞明月.BP神经网络算法及其改进研究[J].电脑知识与技术,2014(28):6643-6644.
[2]汤素丽,罗宇锋.人工神经网络技术的发展与应用[J].电脑开发与应用,2009(10):59-61.
[3]DONG Xiu-cheng,WANG Shou-chun,SUN Ren-jin,et al. Design of artificial neural networks using a genetic algorithm to predict saturates of vacuum gas oil[J].Petroleum Science,2010(71):118-122.
[4]李松,刘力军,解永乐.遗传算法优化BP神经网络的短时交通流混沌预测[J].控制与决策,2011(10):1581-1585.
[5]王改革,郭立红,段红,等.基于萤火虫算法优化BP神经网络的目标威胁估计 [J].吉林大学学报:工学版,2013(4): 1064-1069.
[6]温泉彻,彭宏,黎琼.自适应遗传BP神经网络模型在统计建模中的应用[J].微计算机信息,2006(30):130-132.
[7]LIU Ke,GUO Wen-yan,SHEN Xiao-liu,et al.Research on the forecast model of electricity power industry loan based on GA-BP neural network[J].Energy Procedia,2012(14):1918-1924.
[8]WANG Hong-bin,Main Liu.Design of robotic visual servo control based on neural network and genetic algorithm[J]. International Journal of Automation&Computing,2012(1):24-29.
[9]刘植义.遗传学[M].北京:人民教育出版社,1982.
[10]Holland J H.Adaptation in nature and artificial systems[M]. MIT Press,1992.
[11]Srinivas M,Patnailk L M.Adaptive probabilities of crossover and mutation in genetic algorithms[J].IEEE Transactions on System,Man and Cybernetics,1994,24(4):656-667.
[12]李孝忠,张有伟.改进自适应遗传算法在BP神经网络学习中的应用[J].天津科技大学学报,2010(4):64-67.
[13]李书全,孙雪,孙德辉,等.遗传算法中的交叉算子的述评[J].计算机工程与应用,2012(1):36-39.
[14]刘 勇,康立山,陈镇屏.非线性并行算法——遗传算法[M]. 2版.北京:科学出版社,1995.
[15]朱鳌鑫.遗传算法的适应度函数研究[J].系统工程与电子技术,1998(11):60-64.
BP neural network optimized by improved adaptive genetic algorithm
WU Chen,WANG He-jie
(School of Computer Science&Technology,Jiangsu University of Science and Technology,Zhenjiang 212003,China)
In the early stage of adaptive genetic algorithm(AGA)proposed by Srinivas,the speed of evolution is slow,which leads to reduction of the performance of algorithm.To solve this problem,based on improving the computing method of the probabilities of crossover and mutation and taking current stage of evolution into consideration,an improved adaptive genetic algorithm(IAGA)is presented.The new algorithm is applied to optimizing the calculation model of BP neural network,used to count the oiling quantity of vehicle.IAGA-BP is proved better than AGA-BP and standard BP by comparing the calculation error of these models.
BP neural network;adaptive genetic algorithm;crossover;mutation;optimize
TN302
A
1674-6236(2016)24-0029-04
2015-11-26 稿件编号:201511253
吴陈(1962—),男,湖北天门人,博士,教授。研究方向:实验智能与模式识别,粗糙集理论及应用,数据挖掘与知识发现。