改进的BP神经网络算法的研究与应用

2019-06-01 08:07富宇李倩刘澎
计算机与数字工程 2019年5期
关键词:步数权值遗传算法

富宇 李倩 刘澎

(东北石油大学计算机与信息技术学院 大庆 163318)

1 引言

BP神经网络是依据类似人脑的神经应对外部干扰的的刺激做出反应的方法,是一种多层前馈型网络[1~3]。BP神经网络主要包括三层,即输入层、隐藏层和输出层,不同层分别包括多个并行的神经元信号。BP神经网络利用正向传播信号并结合误差的反向调节,寻找各个层级之间神经元的权值,从而构造出神经网络模型。在正向传播时,信号经过各层次。反向传播时,将输出层与期望输出的误差作为所用的信息。

向前传播和反向调节是BP神经网络算法的两大步骤,这两个步骤相互进行,指导模型的结果逼近期望输出[4]。

在实际应用中的BP神经网络会存在一些不足的地方,其层数较多,同时神经元节点较多,连接不同层级神经元间的权值也众多,由于BP神经网络受初始权值的约束[5~7],往往陷入局部最优,导致逼近期望输出失败。

通过对BP神经网络研究的过程中发现,有文献[8]将学习率调整为自适应来加快网络收敛速度对算法进行改进,该方法是在传统BP算法上对时变过程参数的神经元网络学习的改进算法,但是该算法对于BP算法中的局部极小问题没有解决。有文献[9]在研究过程中提出利用更新权值时采用最佳学习因子,利用此改进算法在使用过程中的收敛速度,节省BP网络训练的步数,但是此改进方法在使用过程中发现针对BP算法中极小点的问题并没有做出解决,同时发现改进的程度过于局限。在研究过程中发现有文献[10]提出利用极限学习机的方法来提升BP算法的速度读,此方法也就是增加结构型反馈网络。应用此方法的学习速度比传统的梯度型算法快,但是该算法对于多数训练数据来说需要更多的隐层节点,这样会导致计算的速度缓慢。

本文在研究的过程中着重对BP神经网络在学习过程中收敛速度缓慢和易陷入局部最小值等问题,寻找出将压缩映射遗传和BP神经网络相结合优化的方法,在大群体中找出最优个体来进行BP训练,用此方法将收敛速度改善,减少训练步数,降低训练误差,在BP算法在个体中的寻找最优和其他个体称重的最优空间中寻找最优。

2 改进的BP神经网络算法概述

2.1 复杂前馈网络

在传统的BP算法的基础上结合复杂前馈网络,也就是多层前馈网络,在使用时,单隐层的神经网络应用次数比较多,非线性传输函数是隐层神经元在BP网络中具有的特点。而在输出层则用线性传输函数显现。如果算法使用时,存在隐层的节点比较多的情况时,单隐层前馈网络可以与任意区间内的连续函数进行靠近。

没有约束优化是神经网络训练的主要存在的问题,训练过程的目标就是要减少输出端的均方误差。在BP网络中的输出结果可以利用正向传播来取得[11~14],如果使用过程中输出的结果无法达到预期的期望,实践过程就会进入反向传播的状态,并将权值在神经元连接处修改,如果发现算法中输出层的输出结果达不到预期的希望,算法就会进入反向传播状态,可不断的调节神经元连接的权值,此过程循环往复的传播,可以逐渐使误差达到预期想允许的范围,权值可修正如下所示:

网络连接权值权初值的选择对算法来说至关重要,权值初值的选择合理化会致使网络收敛性较好,相反,权值初值的选择不合理会致网络出现收敛性较差的情况,但是权值的选择在BP网络上的情况具有很大的随机性,由此可看出算法使用时收敛的情况较为困难。

2.2 压缩映射遗传算法

梯度方法是BP算法过程的重要部分,此方法具有收敛速度慢、容易受局部极小点的束缚[15~17],而此时遗传算法可弥补BP算法过程中的不足,因此可弥补缺陷。

普通的遗传算法无法保证整个全局都是收敛的。由此可用压缩映射遗传算法利用映射过程中的原理来解决遗传算法整个全局都是收敛的问题。

设其中一距离空间是(X,d),则有对于每个x,y∈X有d(Ax,Ay)<a d(x,y),其中,a∈(0,1)是常数值,可看做A为X上的某个压缩映射,此时映射f有唯一点,即有且仅有一个X可以使f(x)=X。

假设构造成员为P,同时设度量空间为X,压缩映射是具有过程性的,在这个过程中,f都有唯一的确定点。该点是通过f应用于某一初始值P(0)不断的发展获出来,同时确定点找好后,就可以在该点上得知算法的收敛性,而与初始选择的群体关系较小。

2.3 BP网络与压缩映射

本文采用的BP网络改进方法是将压缩映射遗传算法引入到BP网络中,对BP网络进行优化,以此来解决传统BP算法中的缺陷问题。

在BP神经网络中引入压缩映射遗传后的优化方法称为GA优化,可理解为:GA进行遗传操作前利用BP训练对从而降低目标误差的值,对群体中最优个体和其他不同的个体交叉、变异训练,致使算法寻找出最优,在不同的个体之间,采用变异子代中找出目前正在运行的算法中最优的个体,用此最优个体进行下一次的BP训练。

确定点P*在压缩映射遗传算法中可看做:

其中,P代表着产生算法使用过程中整个全局最好的群体。

在BP神经网络中,三层的实验具有非线性的映射关系,三层实现的非线性映射关系为

其中,训练样本用(xj,tk)表示,Nh为隐含元个数,f看做是激励函数,输入层和隐含层的连接权值可用w表示,隐含层输出权值用C表示,隐含层阈值用θ表示。

由此,BP神经网络训练目标可如下表示:

其中,ω=(w,c,θ)。

通过对算法的深入研究,可将改进后的算法中参数的选择和计算步骤总结如下:

1)找出应用BP网络算法所求问题的应输入样本和输出样本,样本确立后,对网络结构做出假设,并假设出隐含层和输出层过程中的激励函数。

2)将运行参数设置出固定值,包括对算法中的群体的规模、最大化的代数等的设置。

3)实数编码在BP网络应用的过程中较为实用,因此采用实数编码方式,实数编码时要减少由二进制编码造成的数值精度不准确以及取值范围不确定的问题。

4)对算法评价的函数进行设定。不同的染色体可表示不同的权值,算法运行时把不同的权值发送到不同的网络结构中去,之前已经有的训练样本可作为输入和输出,算法在运行之后将返回值作为个体的评价函数。

5)要产生初始群体,产生的过程是随机的,同时也要计算不同群体中的每个个体的输出误差值。

6)判断最优的个体在相邻两代中是否相同,若相邻两代最优个体相同,则进行下一步,若相邻两代最优个体不相同,则利用BP算法进行训练。

7)需要判断最优个体的输出误差是否与目标误差不一致,或大或小。如果差别不大,则可以看做截止训练,如果得到的值差别过大,则进行下一步。

8)要计算出不同的个体的适应度值。

9)在交叉子代和通过BP网络训练后的最优个体中选出当代最优个体进行接下来的BP训练。

10)在个体中,任意两个个体可以产生多个新的个体,组成新鲜的个体,采用的方法是交叉方法,将最优个体与群体中的个体相结合。在传统的BP算法使用过程中,由于均匀变异和正太变异是与进化代数解关系不大,所以遗传算法缺乏部分的搜索能力,导致算法在应用过程中的变异算子能够自适应,这这个步骤的局部搜索过程中,搜索的范围需考虑解的程度,可大幅度提高搜索的能力。

11)在这个步骤中,主要是对每个进化代数都加上1,完成后,对进化代数进行理解,找出进化代数是否能够达到最大进化代数,如果能达到最大进化代数,可退出BP训练,如果没能达到最大进化代数,从步骤6)中心执行下一次的进化。

在上述表述中可知,在BP算法中引入压缩映射遗传算法,可以改进传统BP网络中的不足,将劣势弥补,优化BP算法,同时,改进的BP神经网络能够大幅度提高使用过程中的收敛速度,可取得良好的训练成果。

3 实验分析

对改进的BP算法的实验分析主要是通过对压力、压差等2000组数据进行仿真测试的。利用仿真测试对实验数据模拟,可以帮助我们验证算法的优劣。

本文所做的GA优化BP网络结构主要分为三层,在BP网络训练的过程中采用三层训练设计,由辅助变量、流动体的流动状态、温度、压力、压差等输入神经元,神经元个数在隐层中为10,一个流量估计值和五个校验值组成输出神经元,为确保在网络训练的过程中无误,可根据在实际中发生的状况选取10组数据作为测试的样本数据,在运行过程中,不断地改变学习率和动量的因子,可使得目标精度为0.001,最大训练步数为1998步,交叉率位0.65,变异率为0.07,47为初始种群个数,199是最大遗传代数。如图1为传统的BP网络训练结果,图2为压缩映射遗传与BP网络训练相结合的训练结果。

由图可知,传统的BP网络结构的训练步数为958,其训练时间为14.9531s。

利用GA优化后的BP网络来训练后的结果可知,训练步数为671,训练时间为13.9290s。与传统的BP网络相比,训练步数减少了287,训练时间减少了1.0241s,有较大幅度的提高。

图1 传统的BP网络

图2 GA优化的BP网络

在数据文件中任意抽取5组数据用来验证结果,各组数据为17个样本,来对GA-BP网络测试,分别计算出训练步数、训练时间。

可在数据文件中随机抽取5组数据进一步验证结果,每组数据为17个样本,对GA-BP网络进行测试,计算其平均训练步数和训练时间。具体比较结果见如表1~3所示,传统的BP网络结构为表1、GA优化的BP网络结构为表2、传统的BP网络结构与GA优化的BP网络为表3。

表1 传统的BP网络结构

表2 GA优化的BP网络

表3 传统的BP网络结构与CMGA优化的BP网络

在上述表中,I代表训练时间,X代表训练步数,B代表是否达到训练精度,F代表是否收敛,P代表均值,N代表训练次数编号。

通过对表1、表2和表3的统计结果可知,传统的BP算法训练过程所用的时间相对较长,训练步数比较多,平均达到963.6步,但是成功率几乎达到100%。优化后的BP网络跟传统的BP算法训练过程相比所用的时间较少,平均所用时间为13.6621,同时训练过程所需要的步数也较少,均值为799步,精度并无发生任何变化。由此可知,优化后的算法对BP网络训练所达到的精确程度和收敛程度并不影响,训练时间和训练步数相对传统的BP网络节省较多。

4 结语

改进后的BP算法,即利用本文提出的GA优化后的BP神经网络在保证神经网络训练达到全局最优的同时,还可以帮助克服BP算法易陷入局部及小点和BP神经网络在学习时候权值选择的这一主要问题。本文也通过最算法在实验中的仿真数据对优化的BP网络合理性进行了证实。通过实验结果可以看到本方法取得了良好的效果,对以后BP神经网络的研究提供了重要的参考价值。

猜你喜欢
步数权值遗传算法
一种融合时间权值和用户行为序列的电影推荐模型
基于改进遗传算法的航空集装箱装载优化
基于改进遗传算法的航空集装箱装载问题研究
楚国的探索之旅
基于遗传算法的高精度事故重建与损伤分析
微信运动步数识人指南
国人运动偏爱健走
物流配送车辆路径的免疫遗传算法探讨
财务风险跟踪评价方法初探
基于洪泛查询的最短路径算法在智能交通系统中的应用