计算机专业
BP神经网络算法的研究与应用
BP
神经网络
算法
研究
应用
改进的BP神经网络算法的研究与应用
摘 要: 在提高神经网络算法的快速性和稳定性问题中,针对BP算法收敛速度慢且易陷入局部极小值的缺陷,分析现有改
进算法在神经网络结构优化过程中仍然存在的弊端,并利用遗传算法的特点,研究出一种改进的将压缩映射遗传与BP神经
网络优化的方法。算法通过对压缩映射原理的引入,不但解决了BP算法收敛速度慢且易陷入局部极小值的问题,而且加快了BP网络的收敛速度,同时弥补BP神经网络在学习过程中与网络连接权值初值选择密切相关的不足。与传统BP算法相比,减少了训练步数,节省了训练时间,并通过数据实验验证改进的算法应用到实践中具有一定得可行性。
关键词: 神经网络; 压缩映射;优化;权值
中图分类号: TP183 文献标识码: A doi:10.3778/j.issn.1002-8331
Research and application of improved C4.5 algorithm
Abstract: In order to improve the rapidity and stability of neural network algorithm, aiming at the defects of slow convergence speed and easy to fall into local minimum, the existing BP algorithm is analyzed.The algorithm still exists in the process of neural network structure optimization, and uses the characteristics of genetic algorithm to study an improved compression mapping genetic and BP neural network.The method of network optimization. By introducing the principle of compression mapping, the algorithm not only solves the problem that the convergence speed of BP algorithm is slow and easy to fall into local minimum, but also accelerates the convergence speed of the BP network, and makes up for the shortage of the BP neural network which is closely related to the initial value selection of the network connection weights during the learning process. Compared with the traditional BP algorithm, the training step is reduced and the training time is saved, and it is feasible to apply the improved algorithm to practice by data experiment.
Key words: neural network; compression mapping; optimization; weight
1引言
BP 神经网络是一种多层前馈型网络,主要通过模拟人脑的神经元应对外界的信号刺激做出的反馈行为。BP神经网络主要由三层网络构成,输入层、隐藏层和输出层,每层网络中包含多个并行的神经元信号[14]。BP神经网络主要通过信号的正向传播和误差的反向调节,找到连接不同层级之间各神经元的权值,以此来构建BP神经网络模型。在正向传播过程中,信号流经输入层、隐藏层,流向输出层。在误差反向传播中,将输出层与期望输出间的误差作为源信息,反向逐层传播,动态调整各神经元之间的连接权值和阀值。如此反复多次训练,直到模型的输出结果逼近期望输出。
BP神经网络算法包括两大步骤:一个是向前传播,主要是通过给定的初始连接权值与阈值计算模型的输出值;一个是反向调节,依赖模型的输出值与实际值的误差,动态调整各神经元之间的连接权值和阀值。如此反复,直到模型的输出结果逼近期望输出。
BP神经网络在实际应用中,仍有一些不足的地方。BP
神经网络有众多的层数和神经单元节点,因为连接不同层级的神经元之间的权值与阈值也众多,则在实际运行中,BP 神经网络受初始权值和阀值的约束,往往容易陷入局部最优,无法逼近期望输出。
在研究中发现,曾有文献提出学习率自适应调整法和加速网络收敛速度的改进算法,通过分析原网络收敛速度慢等问题,对传统BP算法加以改进,是一种时变过程参数的神经元网络学习算法,但并没有很好地解决BP算法易陷入局部极小的问题。文献[2]和文献[3]提出通过设计求解最佳学习因子,更新所有权值和阈值,加快网络的收敛速度,减少训练误差,但同样没有很好地解决BP易陷入局部极小点的问题,而且改进的程度有限。文献[4]中提出一种增加结构型反馈网络称为极限学习机,有较高的泛化能力,学习速度比传统的梯度型算法快,另外,还扩展到双隐层神经网络,但是对于大多数的训练数据来说可能需要很多的隐层节点,这种方法使得计算速度减慢,因此需要更加紧密的网络结构。
本文针对BP神经网络在学习过程中与网络连接权值初值选择密切相关、收敛速度慢以及易陷入极小值等缺陷,提出了一种新的基于压缩映射遗传的BP神经网络优化方法,通过对群体中的最优个体先进行BP训练,使目标误差快速下降,然后再将经BP训练后的最优个体与群体中的其他个体进行交叉、变异操作,使算法能在最优个体与其他个体所成长的寻优空间中进行寻优。
2改进的BP神经网络算法概述
2.1多层前馈网络
在基于BP算法的多层前馈网络的应用中,图1所示的单隐层神经网络的应用最为普遍[5]。BP网络隐层神经元具
有非线性传输函数,而输出层为线性传输函数。只要隐层节
点数目够多,单隐层前馈网络可以逼近任何闭区间内的一个
连续函数。
神经网络的训练是无约束优化问题,其目标就是要减小
输出端的均方误差(MeanSquareError,MSE)。BP网络通过正向传播得到输出结果,如果输出层得不到希望的输出,则转入反向传播,修改各层神经元连接的权值和阈值,此过程不断迭代,直到信号误差达到允许的范围。权值修正为:
算法的学习过程总与网络连接权的初值选择密切相关,而且若初值选择不当,网络甚至会出现不收敛的现象。由于BP网络权值初值选择上的随机性,往往使得网络难以收敛。
2.2压缩映射遗传算法
BP算法是基于梯度的方法,该方法的收敛速度慢,且长受局部极小点的困扰,常常采用遗传算法来摆脱这种困境
但基本的遗传算法不能保证全局最优收敛。而压缩映射遗传算法(ContractiveMappingGeneticAlgorithm,CMGA)通过引入泛函分析中的压缩映射原理,来解决这个问题。
设(X,d)是某一距离空间,如果对于任何x,y∈X有d(Ax,Ay)<a d(x,y),其中,a∈(0,1)是一常数,则A为X上的一个压缩映射,而映射f有唯一不动点,即有且仅有一个X使f(x)=X。
构造度量空间X使其成员为P,使任何压缩映射f都有
唯一的不动点。该不动点是通过f应用于一个任选的初始群体P(0)的迭代获得,可以在不动点上获得算法的收敛性,而与初始选择的群体无关。
2.3压缩映射与BP网络的结合
使用压缩映射遗传算法对BP网络进行优化,来解决前
面所提到的问题。
压缩映射遗传对BP神经网络的优化方法:在CMGA每
一代进行遗传操作之前,对群体中的最优个体先进行BP训
练,使目标误差快速下降,然后再将经BP训练后的最优个体
与群体中的其他个体进行交叉、变异操作,使算法能在最优
个体与其他个体所成长的寻优空间中进行寻优,再从交叉变
异子代中选出当代最优个体进行下一次的BP训练。
在压缩映射遗传算法中,对于不动点P*
(1)
即CMGA算法收敛于群体,显然,P代表着产生全局最优化的群体。
三层的BP神经网络实现一个非线性映射
(2)
其中,(xj,tk)为训练样本,隐含元个数为Nh,其激励函
数为f,w为输入层和隐含层的连接权值;c为隐含层和输出层权值;为隐含层阈值。
网络的训练目标可为
其中,
算法中的参数选择和计算步骤如下所示:
(1)给出求解问题的输入输出训练样本,设定网络拓扑结构及隐含层和输出层的激励函数。
(2)设置运行参数。包括群体规模、最大进化代数等。
(3)算法采用实数编码的方式,避免由二进制编码带来的权值取值范围和精度问题。
(4)设定评价函数。将染色体上表示的各权值分配到给定的网络结构中,以训练集样本作为输入输出。运行后返回值作为个体的评价函数。
(5)随机产生初始群体,计算群体中的个体的输出误差。
(6)判断相邻两代的最优个体是否相同,若是,则进行下一步;若否,则利用BP算法进行训练。
(7)判断最优个体的输出误差是否小于目标误差:是,则结束训练;否,则进行下一步。
(8)计算个体适应度值。
(9)选择。从交叉子代和经BP训练后的最优个体中选出当代最优个体进行下一次的BP训练。
(10)交叉、变异算子。
用最优个体与群体中的其他个体逐一进行启发式交叉,每两代产生若干个新个体。传统的均匀变异和正态变异与进化代数解的质量没有直接关系,使遗传算法缺乏局部搜索能力,使用自适应变异算子,在局部搜索的范围不仅考虑进化代数,而且考虑解的质量,从而比较明显地提高搜索能力。
(11)进化代数加1,判断是否到达最大进化代数,是,退出训练;否,返回步骤6)进行下一轮进化。
通过压缩映射遗传算法对BP算法的优化,使算法得到
进一步的完善,改进的BP神经网络可获得快的收敛速度,达
到较好的训练效果。
3实验分析
利用2000组具有不同时间戳的压力、压差、粘度、相关性、流动噪声、温度、流量等数据。通过对实验数据的仿真,可验证所提出算法的优劣。
CMGA优化BP网络结构设计:采用三层BP网络训练,
12个输入神经元(12组辅助变量,流体流动状态、温度、压力、压差、粘度信号等),隐层神经元个数[8- 9]为10,6个输出神经元(1个流量估计值,5个校验值),为保证网络训练的正确性,根据实际情况挑选16组数据作为测试样本,有条件的改变学习率和动量因子,目标精度err goal= 0.001,最大训练步数为2000步,交叉率和变异率分别为0.7和0.1,初始种群个数为50,最大遗传代数200。传统的BP网络和压缩映射遗传算法优化的BP网络的训练结果如图1、图2所示:
图1 传统的BP网络
图2 CMGA优化的BP网络
由图可知,传统的BP网络结构的训练步数为958,其训练时间为14.9531s。
采用CMGA优化的BP网络进行训练,训练步数为671,训练时间为13.9290s。与传统的BP网络相比,训练步数减少了287,训练时间减少了1.0241s,有明显的提高。
可在数据文件中随机抽取5组数据进一步验证结果,每组数据为17个样本,对CMGA-BP网络进行测试,计算其平均训练步数和训练时间。具体比较结果见表1、表2和表3。
表1 传统的BP网络结构
表2 CMGA优化的BP网络
表3 传统的BP网络结构与CMGA优化的BP网络
在上述表中,T代表训练时间,S代表训练步数,P代表是否达到训练精度,C代表是否收敛,代表均值,N代表训练次数编号