基于遗传算法的BP神经网络的应用.doc

上传人:wj 文档编号:7415824 上传时间:2023-05-11 格式:DOC 页数:19 大小:263.52KB
下载 相关 举报
基于遗传算法的BP神经网络的应用.doc_第1页
第1页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第2页
第2页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第3页
第3页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第4页
第4页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第5页
第5页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第6页
第6页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第7页
第7页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第8页
第8页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第9页
第9页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第10页
第10页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第11页
第11页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第12页
第12页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第13页
第13页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第14页
第14页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第15页
第15页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第16页
第16页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第17页
第17页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第18页
第18页 / 共19页
基于遗传算法的BP神经网络的应用.doc_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于遗传算法的BP神经网络的应用.doc

《基于遗传算法的BP神经网络的应用.doc》由会员分享,可在线阅读,更多相关《基于遗传算法的BP神经网络的应用.doc(19页珍藏版)》请在冰点文库上搜索。

基于遗传算法的BP神经网络的应用.doc

基于遗传算法的BP神经网络的应用

----非线性函数拟合

摘要人工神经网络在诸多领域得到应用如信息工程、自动控制、电子技术、目标识别、数学建模、图像处理等领域,并且随着神经网络算啊发的不断改进以及其他新算法的结合,使其应用的领域越来越广。

BP神经网络是目前神经网络领域研究最多应用最广的网络,但BP神经网络学习算法易陷入局部极小的缺陷,本文采用遗传算法来优化BP神经网络的性能。

首先采用遗传算法来优化BP神经网络的权值和阈值,然后将这些优化值赋给网络得到优化的BP神经网络,最后用MATLAB仿真平台,对非线性函数的逼近拟合和极值寻优问题进行实验。

数值仿真结果表明:

经遗传算法优化的BP神经网络能有效地避免原始BP神经网络容易出现的局部极小的缺陷,且具有收敛速度快和精度高等优点。

关键词:

BP神经网络遗传算法MATLAB结构优化

Abstract—Inrecentyears,artificialneuralnetworkgraduallyattentionhasbeenpaidintothehotareaofresearchinmanyfieldshavebeeninvolvedinelectronicapplicationssuchasotherfieldshaveawiderangeofapplications,andalsocontinuedtoexpanditsapplications.ToalleviatetheshortcomingofeasilysinkingintothelocalminimumexistingintheBPneuralnetwork,thepaperexploitsthegeneticalgorithmtooptimizetheBPneuralnetwork.Firstofall,thegeneticalgorithmisutilizedtooptimizetheweightvaluesaswellasthethresholdvaluesoftheBPneuralnetwork.Subsequently,byusingtheoptimizedweightvaluesandthresholdvalues,weareabletogettheimprovedBPneuralnetwork.Furthermore,weemploythesimulationdatatomeasuretheperformanceoftheimprovedBPneuralnetwork.ThenumericalresultsindicatethattheoptimizedBPneuralnetworkcaneffectivelyovercomethelocalminimumoftheoriginalBPneuralnetworkandoutperformtheoriginalBPneuralnetworkintheaspectsofconvergencespeedandcomputationaccuracy.

Keywords—BPneuralnetwork,geneticalgorithm,optimization

1.引言

前馈神经网络(BP模型)其非线性逼近能力是它博得青睐的主要原因,而BP算法作为前馈网络的主要学习算法,则无可争议的对其推广应用起了举足轻重的促进作用。

BP算法因其简单、易行、计算量小、并行性强等优点,是目前神经网络训练采用最多也是最为成熟的训练算法之一。

然而,由于BP算法是一种梯度下降搜索方法,因而不可避免地存在固有的不足,如易陷入误差函数的局部极值点,而且对于较大搜索空间、多峰值和不可微函数也不能有效搜索到全局极小点,而遗传算法则是克服这一不足的有效解决方法,主要是因为遗传算法是一种全局优化搜索算法[3],因而能够避开局部极小点,而且在进化过程中也无需提供所要解决问题的梯度信息。

2.BP神经网络

2.1BP神经网络的特点

在20世纪80年代,Rumelhart等人首次提出了BP神经网络算法,BP神经网络的本值就是反向传播神经网络(BackPropagationNeuralNetwork)。

BP神经网络与其他网络相比具有其独特的特点:

分布式存储方式,大规模并行处理,自学习和自适应能力,容错性及鲁棒性好[2]。

2.2BP神经网络模型

BP神经网络具有一个输入层、一个输出层以及若干隐含层,其本质是一种多层前馈神经网[1]。

在BP神经网络中每一层的神经元都不与相同层的神经元相连接,这是由于在神经网络中各层之间是以全连接方式连接到一起构成网络的,因此各层的神经元只能接受下层神经元送来的激活信号,并向多层映射网传递修正误差及反馈,BP网络的这种结果使得他能在参数选择合理时收敛点较小的均方误差。

对许多实际问题的解决都是利用BP网络的这种结构特点,如模式识别、预测、控制等方面,这就使得BP网络成为目前应用最为广泛的一种神经网络。

下面以一个四层的BP神经网络来介绍BP网络的基本结构,结构如图1所示,该网络有一个输入层、两个隐含层、一个输出层,其中xi(p)(i=1,2,...n)表示输入变量,其个数为n即输入层节点个数为n,两个隐含层的节点个数分别为l和s,m表示输出层的节点数,yk(p)(k=1,2,...m)表示输出层节点输出。

在神经网络中每一个神经元都可以用一个节点来表示,而神经网络的

隐含层是可变的可以是单层、双层和多层。

通常情况下采用Sigmoidal型函数表示隐含层节点,采用Sigmoidal型函数或者线性函数表示输入和输出节点。

图1BP神经网络结构图表

3.遗传算法

3.1遗传算法的原理

遗传算法(GeneticAlgorithms)是1962年由美国Michigan大学Holland教授提出的模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法[4]。

由于遗传算法的寻优能力的并行性高并且具有自适应性,使其在诸多领域都得到了迅速的发展如函数优化、机器学习等,同时取得了较好的效果。

遗传算法中的操作步骤与生物遗传和进化的步骤极为相似。

它把自然界“优胜劣态,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,按照所选择的适应度函数并通过遗传中的选择、交叉和变异对个体进行筛选,使适应度值好的个体被保留,适应度值差的个体被淘汰,新的群体既继承了上一代的信息,又优于上一代。

这样反复循环,直至满足条件。

3.2遗传算法的基本操作

3.2.1选择操作

选择操作是指从旧群体中以一定概率选择个体到新群体中,个体被选中的概率跟适应度值有关,个体使用度质越好,被选中的概率越大。

3.2.2交叉操作

交叉操作是指从个体中选择两个个体,通过两个染色的交换组合,来产生新的优秀个体[5]。

交叉过程为从群体中任选两个染色体,随机选择一点或多点染色体位置进行交换。

交叉操作图如图2所示。

A:

110001011111交叉A:

110001010000

B:

111101010000B:

111101011111

图2交叉操作

3.3.3变异操作

变异操作是指从群体中任选一个个体,选择染色体中的一点进行变异以产生更优秀的个体。

变异操作如图3所示。

变异

A:

110001011111A:

110001011101

图3变异操作

遗传算法具有高效启发式搜索、并行计算等特点,目前已经应用在函数优化、组合优化以及生产调度等方面。

3.3遗传算法的基本要素

遗传算法的基本要素包括染色体编码方适应度函数、遗传操作和运行参数。

其中染色体编码方法是指个体的编码方法,目前包括二进制法、实数法等。

二进制法是指把个体编码成为一个二进制串,实数法是指把个体编码成为一个实数串。

适应度函数是指根据目标编写的计算个体适应度值的函数,通过适应度值函数计算每个个体的适应度值,提供给选择算子进行选择。

遗传操作是指选择操作、交叉操作和变异操作。

运行参数是遗传算法在初始化时确定的参数,主要包括群体大小M、遗传代数G、交叉概率Pc和变异概率Pm。

4.遗传算法优化BP神经网络

4.1算法流程

遗传算法优化BP神经网络算法流程[6]如图4所示。

变异操作

BP神经网络训练得到误差作为适应度值

GA对初始值编码

权值阈值更新

计算误差

获取最优权值阈值

初始BP神经网络权值阈值

BP神经网络部分

遗传算法部分

输入数据

确定网络拓扑结构

数据预处理

满足结束条件

计算适应度值

交叉操作

选择操作

满足结束条件

N

仿真预测,得到结果

N Y Y

图4算法流程

遗传优化算法优化BP神经网络分为BP神经网络结构确定、遗传算法优化和BP神经网络预测3个部分。

其中,BP神经网络结构确定部分根据拟合函数输入输出参数个数确定BP神经网络结构,进而确定遗传算法个体的长度。

遗传算法优化使用遗传算法优化BP神经网络的权值和阈值,种群中的每个个体都包含了一个网络所有权值和阈值[7],个体通过适应度函数计算个体适应度值,遗传算法通过选择、交叉和变异操作找到最优适应度值对应个体。

BP神经网络预测用遗传算法得到最优个体对网络初始权值和阈值赋值,网络经训练后预测函数输出。

拟合的非线性函数为,有2个输入参数、1个输出参数,所以设置的BP神经网络结构为2-5-1,即输入层有2个节点,隐含层有5各节点,输出层有1个节点,共有2*5+5*1=15个权值,5+1=6个阈值,所以遗传算法个体编码长度为15+6=21.从非线性函数中随机得到2000组输入输出数据,从中随机选择1900组作为训练数据,用于网络训练,100组作为测试数据。

把训练数据预测误差绝对值和作为适应度值,个体适应度值越小,该个体越优。

4.2遗传算法实现

遗传算法优化神经网络是用遗传算法来优化BP神经网络的初始权值和阈值,使优化后的BP神经网络能够更好的预测输出[8]。

遗传算法优化BP神经网络的实现步骤如下:

1>种群初始化

个体编码为实数编码,每个个体均为一个实数串,由输入层与隐含层连接权值、隐含层阈值、隐含层与输出层连接权值以及输出层阈值4部分组成。

个体包含了神经网络全部权值和阈值,在网络结构已知的情况下,就可以构成一个结构、权值、阈值确定的神经网络。

2>适应度函数

根据个体得到BP神经网络的初始权值和阈值,用训练数据训练BP神经网络后预测系统输出,把预测输出和期望输出之间的误差绝对值和E作为个体适应度值F,计算公式为

(1-1)

式中n为网络输出节点数;yi为BP神经网络第i个节点的期望输出;oi为第i个节点的预测输出;k为系数。

3>选择操作

遗传算法遗传算法选择操作有轮盘赌法、锦标赛法等多种方法,本文选择轮盘赌法,即基于适应度比例的选择策略,每个个体i的选择概率pi为

(1-2)

(1-3)

式中,Fi为个体i的适应度值,由于适应度值越小越好,所以在个体选择前对适应度值求倒数;k为系数;N为种群个体数目。

4>交叉操作

由于个体采用实数编码,所以交叉操作方法采用实数交叉法[9],第k个染色体ak和第l个染色体ai在j位的交叉操作方法如下:

(1-4)

式中,b是[0,1]间的随机数。

5>变异操作

选取第i个个体的第j个基因aij进行变异[13],变异操作方法如下:

(1-5)

式中,amax为基因aij的上界;amin为基因aij的下界;f(g)=r2(1-g/Gmax);r2为一个随机数;g为当前迭代次数;Gmax是最大进化次数;r为[0,1]间的随机数。

4.3遗传算法改进网络结构及权值、阈值的步骤

(1)设置总迭代次数,交叉概率,变异概率,种群大小,设置当前迭代次数;随机生成个个体,每个个体的第一个等位基因表示隐含层节点数,,是输入层节点数,是输出层节点数;选择激活函数,设置参数,根据适应度函数计算每个个体的适应度值。

(2)用轮盘赌法选择个体,并进行交叉、变异产生下一代

(3)计算该后代种群各个个体的适应度。

若最高适应度达到要求,或达到最大迭代次数,算法停止;否则返回

(2),直到达到最高适应度达到要求,或达

到最大迭代次数。

(4)输出适应度值最高的个体,若有多个适应度值相同的个体,则选择染色体长度最短的个体(即隐含层节点数最少的个体)作为输出。

4.4BP神经网络遗传算法非线性极值寻优的步骤

神经网络遗传算法函数极值寻优,即对未知的非线性函数,仅仅通过函数的输入输出数据难以寻优。

可以先利用神经网络的非线性拟合能力和遗传算法的非线性寻优能力寻找函数的极值。

BP神经网络遗传算法极值寻优主要由

(1)BP神经网络训练拟合;

(2)遗传算法极值寻优。

(1)BP神经网络训练拟合,包括构建合适的神经网络,由于本例的函数是,故确定BP网络的拓扑结构是2—5—1。

(2)遗传算法极值寻优,染色体个体采用实数编码,由于是寻找函数的极值点,故个体长度为2。

个体的适应度值为BP神经网络的预测值,故预测值(即适应度值)越小,个体越优[10]。

种族规模为10,进化次数为50次,交叉概率0.4,变异概率0.2.

BP神经网络遗传算法极值寻优,先将BP神经网络的预测值作为染色体个体的适应度值,再通过遗传算法寻找非线性函数的最优值。

5.仿真实例

5.1遗传算法优化BP网络的权值阈值——非线性函数拟合

通过遗传算法优化BP神经网络的权值阈值,再用BP神经网络对非线性函数进行拟合。

5.1.1拟合结果分析

遗传算法优化中,最优个体适应度值值变化如图5。

进化到20代时,得到最优个体适应度值1.21237585896181,满足条件终止迭代。

图5最优个体适应度值变化曲线

5.1.2遗传算法优化得到BP神经网络最优初始权值和阈值如下

①输入层隐含层间权值:

-1.29076495063329;-0.129380747340498

0.00430965636191028 0.172141394159896;-2.91503128004983;-2.29143357315059

-2.16511386577969 1.57251141584773 ;-1.75818656539211;0.0210827792878874

②隐含层节点阈值 -1.59747006938531; 0.972786689605846

0.850873190239208;2.09802070115393 ;2.24339454426019

③隐含层输出层间阈值2.68097856404349; 1.85138303257096 ;-2.53975440679219 -1.19993599260259; -2.36861040930053

④输出层阈值1.21743061422284

5.1.3BP网络及用遗传算法优化的BP神经网络的预测误差比较

图6BP神经网络预测误差

图7用遗传算法优化的BP神经网络预测误差

由上图比较可知,用遗传算法优化的BP神经网络预测更加精确,并且遗传算法优化BP网络预测的均方误差为,而单纯的BP神经网络的均方误差为,预测的误差也得到很大的改善。

5.2BP神经网络遗传算法非线性极值寻优

5.2.1BP神经网络拟合结果分析

由于个体的适应度值为BP神经网络的预测值,因此BP神经网络的预测精度对于最优位置的寻找有重要的意义。

BP神经网络预测输出和期望输出对比如下图,可以看出,BP神经网络可以准确预测非线性函数输出。

图8BP神经网络预测非线性函数输出

5.2.2遗传算法寻优结果分析

图9最优个体适应度变化曲线

BP神经网络的预测值作为染色体个体的适应度值,用遗传算法寻找该非线性函数的最小值,设遗传算法的迭代次数100次,种群规模20,交叉概率0.4,变异概率0.2,用实数编码,个体长度2,优化过程中最优个体适应度变化曲线如图8。

遗传算法得到最优个体适应度值为-0.0651,最优个体为[-0.0407,0.0316],它同非线性函数的最优值点(0,0)及最优值很接近,这说明了该方法的有效性。

参考文献:

[1]李国勇,智能预测控制及其MATLAB实现(第2版)[M].电子工业出版社,2010-01-01.

[2]傅荟璇,赵红,等.MATLAB神经网络应用设计[M].北京:

北京机械工业出版社,2010.

[3]A.Blanco,M.Delgado,M.C.Pegalajar.Areal-codedgeneticalgorithmfortrainingrecurrentneuralnetworks[J].NeuralNetworks14(2001)93±105

[4]钱贺斌.基BP神经网络的函数逼近及MABLAB仿真[J].吉林省教育学院学报,2012,12(28):

22-25

[5]PanST,WuCH,LaiCC.TheApplicationofImprovedGeneticAlgoritIlmOnTheTrainingofNeuralNetworkforSpeechRecognition[C].InformationandControl,SecondInternationalConferenceonInnovativeComputing,2007:

168一171.

[6]GrzesiakLM,MeganckV,SobolewskiJ,etal,GeneticAlgorithmforParametersOptimizationofANN-basedSpeedController[C].TheInternationalConferenceon“Computerasatool”。

2007:

1700—1705.

[7]李伟超,宋大猛,陈斌.基于遗传算法的人工神经网络[J].计算机工程与设计,2006,27

(2):

316.318.

[8]WuYan,FENGZhao.Adaptiveinvadinggeneticalgorithmbasedonchaossearch[J].Journalofcomputerapplications.(武妍,冯钊.一种基于混沌搜索的自适应入侵遗传算法.计算机应用),2008,28

(1):

l0l—103.

[9]MATLAB中文论坛编著,Matlab神经网络30个案例分析[M]北京航天航空大学出版社,2010-04-01

[10]VitoantonioBevilacqua,GiuseppeMastronardi.GeneticAlgorithmsandArtificialNeuralNetworksinMicroarrayDataAnalysis:

aDistributedApproach.[J]EngineeringLetters,13:

3,EL_13_3_14

附录

主要代码

1.用遗传算法优化网络权值阈值,并对非线性函数进行拟合的主要代码

inputnum=2;

hiddennum=5;

outputnum=1;%节点个数

%训练数据和预测数据

input_train=input(1:

1900,:

)';input_test=input(1901:

2000,:

)';

output_train=output(1:

1900)';output_test=output(1901:

2000)';

%选连样本输入输出数据归一化

[inputn,inputps]=mapminmax(input_train);

[outputn,outputps]=mapminmax(output_train);

net=newff(inputn,outputn,hiddennum);%构建网络

%%遗传算法参数初始化

maxgen=20;%进化代数,即迭代次数

sizepop=10;%种群规模

pcross=[0.2];%交叉概率选择,0和1之间

pmutation=[0.1];%变异概率选择,0和1之间

%节点总数

numsum=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum;

lenchrom=ones(1,numsum);

bound=[-3*ones(numsum,1)3*ones(numsum,1)];%数据范围

%种群初始化

individuals=struct('fitness',zeros(1,sizepop),'chrom',[]);%将种群信息定义为一个结构体

avgfitness=[];%每一代种群的平均适应度

bestfitness=[];%每一代种群的最佳适应度

bestchrom=[];%适应度最好的染色体

%初始化种群

fori=1:

sizepop

%随机产生一个种群

individuals.chrom(i,:

)=Code(lenchro

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2