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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1基于遗传算法的BP神经网络的应用----非线性函数拟合摘要人工神经网络在诸多领域得到应用如信息工程、自动控制、电子技术、目标识别、数学建模、图像处理等领域,并且随着神经网络算啊发的不断改进以及其他新算法的结合,使其应用的领域越来越广。BP神经网络是目前神经网络领域研究最多应用最广的网络,但BP神经网络学习算法易陷入局部极小的缺陷,本文采用遗传算法来优化BP神经网络的性能。首先采用遗传算法来优化BP神经网络的权值和阈值,然后将这些优化值赋给网络得到优化的BP神经网络,最后用MATLAB仿真平台,对非线性函数的逼近拟合和极值寻优问题进行实验。数值仿真结果表明:经遗传算法优化的BP神经网络能有效地避免原始BP神经网络容易出现的局部极小的缺陷,且具有收敛速度快和精度高等优点。关键词:BP神经网络遗传算法MATLAB结构优化Abstract—Inrecentyears,artificialneuralnetworkgraduallyattentionhasbeenpaidintothehotareaofresearchinmanyfieldshavebeeninvolvedinelectronicapplicationssuchasotherfieldshaveawiderangeofapplications,andalsocontinuedtoexpanditsapplications.ToalleviatetheshortcomingofeasilysinkingintothelocalminimumexistingintheBPneuralnetwork,thepaperexploitsthegeneticalgorithmtooptimizetheBPneuralnetwork.Firstofall,thegeneticalgorithmisutilizedtooptimizetheweightvaluesaswellasthethresholdvaluesoftheBPneuralnetwork.Subsequently,byusingtheoptimizedweightvaluesandthresholdvalues,weareabletogettheimprovedBPneuralnetwork.Furthermore,weemploythesimulationdatatomeasuretheperformanceoftheimprovedBPneuralnetwork.ThenumericalresultsindicatethattheoptimizedBPneuralnetworkcaneffectivelyovercomethelocalminimumoftheoriginalBPneuralnetworkandoutperformtheoriginalBPneuralnetworkintheaspectsofconvergencespeedand2computationaccuracy.Keywords—BPneuralnetwork,geneticalgorithm,optimization1.引言前馈神经网络(BP模型)其非线性逼近能力是它博得青睐的主要原因,而BP算法作为前馈网络的主要学习算法,则无可争议的对其推广应用起了举足轻重的促进作用。BP算法因其简单、易行、计算量小、并行性强等优点,是目前神经网络训练采用最多也是最为成熟的训练算法之一。然而,由于BP算法是一种梯度下降搜索方法,因而不可避免地存在固有的不足,如易陷入误差函数的局部极值点,而且对于较大搜索空间、多峰值和不可微函数也不能有效搜索到全局极小点,而遗传算法则是克服这一不足的有效解决方法,主要是因为遗传算法是一种全局优化搜索算法[3],因而能够避开局部极小点,而且在进化过程中也无需提供所要解决问题的梯度信息。2.BP神经网络2.1BP神经网络的特点在20世纪80年代,Rumelhart等人首次提出了BP神经网络算法,BP神经网络的本值就是反向传播神经网络(BackPropagationNeuralNetwork)。BP神经网络与其他网络相比具有其独特的特点:分布式存储方式,大规模并行处理,自学习和自适应能力,容错性及鲁棒性好[2]。2.2BP神经网络模型BP神经网络具有一个输入层、一个输出层以及若干隐含层,其本质是一种多层前馈神经网[1]。在BP神经网络中每一层的神经元都不与相同层的神经元相连接,这是由于在神经网络中各层之间是以全连接方式连接到一起构成网络的,因此各层的神经元只能接受下层神经元送来的激活信号,并向多层映射网传递修正误差及反馈,BP网络的这种结果使得他能在参数选择合理时收敛点较小的均方误差。对许多实际问题的解决都是利用BP网络的这种结构特点,如模式识别、预测、控制等方面,这3就使得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]。由于遗传算法的寻优能力的并行性高并且具有自适应性,使其在诸多领域都得到了迅速的发展如函数优化、机器学习等,同时取得了较好的效果。遗传算法中的操作步骤与生物遗传和进化的步骤极为相似。它把自然界“优胜劣态,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,按照所选择的适应度函数并通过4变异遗传中的选择、交叉和变异对个体进行筛选,使适应度值好的个体被保留,适应度值差的个体被淘汰,新的群体既继承了上一代的信息,又优于上一代。这样反复循环,直至满足条件。3.2遗传算法的基本操作3.2.1选择操作选择操作是指从旧群体中以一定概率选择个体到新群体中,个体被选中的概率跟适应度值有关,个体使用度质越好,被选中的概率越大。3.2.2交叉操作交叉操作是指从个体中选择两个个体,通过两个染色的交换组合,来产生新的优秀个体[5]。交叉过程为从群体中任选两个染色体,随机选择一点或多点染色体位置进行交换。交叉操作图如图2所示。A:110001011111交叉A:110001010000B:111101010000B:111101011111图2交叉操作3.3.3变异操作变异操作是指从群体中任选一个个体,选择染色体中的一点进行变异以产生更优秀的个体。变异操作如图3所示。A:110001011111A:110001011101图3变异操作遗传算法具有高效启发式搜索、并行计算等特点,目前已经应用在函数优化、组合优化以及生产调度等方面。3.3遗传算法的基本要素遗传算法的基本要素包括染色体编码方适应度函数、遗传操作和运行参数。其中染色体编码方法是指个体的编码方法,目前包括二进制法、实数法等。二进制法是指把个体编码成为一个二进制串,实数法是指把个体编码成为一个实数串。适应度函数是指根据目标编写的计算个体适应度值的函数,通过适应度值函数5计算每个个体的适应度值,提供给选择算子进行选择。遗传操作是指选择操作、交叉操作和变异操作。运行参数是遗传算法在初始化时确定的参数,主要包括群体大小M、遗传代数G、交叉概率Pc和变异概率Pm。4.遗传算法优化BP神经网络4.1算法流程遗传算法优化BP神经网络算法流程[6]如图4所示。NGA对初始值编码BP神经网络训练得到误差作为适应度值选择操作计算适应度值变异操作交叉操作权值阈值更新计算误差获取最优权值阈值初始BP神经网络权值阈值确定网络拓扑结构满足结束条件满足结束条件输入数据数据预处理遗传算法部分BP神经网络部分6NYY图4算法流程遗传优化算法优化BP神经网络分为BP神经网络结构确定、遗传算法优化和BP神经网络预测3个部分。其中,BP神经网络结构确定部分根据拟合函数输入输出参数个数确定BP神经网络结构,进而确定遗传算法个体的长度。遗传算法优化使用遗传算法优化BP神经网络的权值和阈值,种群中的每个个体都包含了一个网络所有权值和阈值[7],个体通过适应度函数计算个体适应度值,遗传算法通过选择、交叉和变异操作找到最优适应度值对应个体。BP神经网络预测用遗传算法得到最优个体对网络初始权值和阈值赋值,网络经训练后预测函数输出。拟合的非线性函数为2221xxy,有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部分组成。个体包含了神经网络全部权值和阈值,在网络结构已知的情况下,就可以构成一个结构、权值、阈值确定的神经网络。仿真预测,得到结果72适应度函数根据个体得到BP神经网络的初始权值和阈值,用训练数据训练BP神经网络后预测系统输出,把预测输出和期望输出之间的误差绝对值和E作为个体适应度值F,计算公式为))((1niiioyabskF(1-1)式中n为网络输出节点数;yi为BP神经网络第i个节点的期望输出;oi为第i个节点的预测输出;k为系数。3选择操作遗传算法遗传算法选择操作有轮盘赌法、锦标赛法等多种方法,本文选择轮盘赌法,即基于适应度比例的选择策略,每个个体i的选择概率pi为iiFkf/(1-2)Njjiiffp1(1-3)式中,Fi为个体i的适应度值,由于适应度值越小越好,所以在个体选择前对适应度值求倒数;k为系数;N为种群个体数目。4交叉操作由于个体采用实数编码,所以交叉操作方法采用实数交叉法[9],第k个染色体ak和第l个染色体ai在j位的交叉操作方法如下:babaababaakjljljljkjkj)1()1((1-4)式中,b是[0,1]间的随机数。5变异操作选取第i个个体的第j个基因aij进行变异[13],变异操作方法如下:85.0),()(5.0),()(minmaxrgfaaargfaaaaijijijijij(1-5)式中,amax为基因aij的上界;amin为基因aij的下界;f(g)=r2(1-g/Gmax);r2为一个随机数;g为当前迭代次数;Gmax是最大进化次数;r为[0,1]间的随机数。4.3遗传算法改进网络结构及权值、阈值的步骤(1)设置总迭代次数T,交叉概率,变异概率,种群大小M,设置当前迭代次数0t;随机生成M个个体,每个个体的第一个等位基因k表示隐含层节点数,]10,1[koioiNNNN,iN是输入层节点数,oN是输出层节点数;选择激活函数,设置参数c,根据适应度函数计算每个个体的适应度值。(2)用轮盘赌法选择个体,并进行交叉、变异产生下一代(3)计算该后代种群各个个体的适应度。若

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功