欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:14610126       资源大小:24.44KB        全文页数:19页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、基于遗传算法的BP神经网络的应用基于遗传算法的BP神经网络的应用 -非线性函数拟合 摘要 人工神经网络在诸多领域得到应用如信息工程、自动控制、电子技术、目标识别、数学建模、图像处理等领域,并且随着神经网络算啊发的不断改进以及其他新算法的结合,使其应用的领域越来越广。BP神经网络是目前神经网络领域研究最多应用最广的网络,但BP神经网络学习算法易陷入局部极小的缺陷,本文采用遗传算法来优化BP神经网络的性能。首先采用遗传算法来优化BP神经网络的权值和阈值,然后将这些优化值赋给网络得到优化的BP神经网络,最后用MATLAB仿真平台,对非线性函数的逼近拟合和极值寻优问题进行实验。数值仿真结果表明:经遗传

    2、算法优化的BP神经网络能有效地避免原始BP神经网络容易出现的局部极小的缺陷,且具有收敛速度快和精度高等优点。 关键词:BP神经网络 遗传算法 MATLAB 结构优化 Abstract In recent years, artificial neural network gradually attention has been paid into the hot area of research in many fields have been involved in electronic applications such as other fields have a wide range o

    3、f applications, and also continued to expand its applications. To alleviate the shortcoming of easily sinking into the local minimum existing in the BP neural network, the paper exploits the genetic algorithm to optimize the BP neural network. First of all, the genetic algorithm is utilized to optim

    4、ize the weight values as well as the threshold values of the BP neural network. Subsequently, by using the optimized weight values and threshold values, we are able to get the improved BP neural network. Furthermore, we employ the simulation data to measure the performance of the improved BP neural

    5、network. The numerical results indicate that the optimized BP neural network can effectively overcome the local minimum of the original BP neural network and outperform the original BP neural network in the aspects of convergence speed and 1 computation accuracy. KeywordsBP neural network, genetic a

    6、lgorithm, optimization 1.引言 前馈神经网络(BP 模型)其非线性逼近能力是它博得青睐的主要原因,而BP 算法作为前馈网络的主要学习算法,则无可争议的对其推广应用起了举足轻重的促进作用。BP算法因其简单、易行、计算量小、并行性强等优点,是目前神经网络训练采用最多也是最为成熟的训练算法之一。然而,由于BP 算法是一种梯度下降搜索方法,因而不可避免地存在固有的不足,如易陷入误差函数的局部极值点,而且对于较大搜索空间、多峰值和不可微函数也不能有效搜索到全局极小点,而遗传算法则是克服这一不足的有效解决方法,主要是因为遗传算法是一种全局优化搜索算法 3,因而能够避开局部极小点,而

    7、且在进化过程中也无需提供所要解决问题的梯度信息。 2.BP神经网络 2.1 BP神经网络的特点 在20世纪80年代,Rumelhart等人首次提出了BP神经网络算法,BP神经网络的本值就是反向传播神经网络(Back Propagation Neural Network)。BP神经网络与其他网络相比具有其独特的特点:分布式存储方式,大规模并行处理,自学习和自适应能力,容错性及鲁棒性好2。 2.2 BP神经网络模型 BP神经网络具有一个输入层、一个输出层以及若干隐含层,其本质是一种多层前馈神经网1。在BP神经网络中每一层的神经元都不与相同层的神经元相连接,这是由于在神经网络中各层之间是以全连接方式

    8、连接到一起构成网络的,因此各层的神经元只能接受下层神经元送来的激活信号,并向多层映射网传递修正误差及反馈,BP网络的这种结果使得他能在参数选择合理时收敛点较小的均方误差。对许多实际问题的解决都是利用BP网络的这种结构特点,如模式识别、预测、控制等方面,这 2 就使得BP网络成为目前应用最为广泛的一种神经网络。 下面以一个四层的BP神经网络来介绍BP网络的基本结构,结构如图1所示,该网络有一个输入层、两个隐含层、一个输出层,其中xi(p)(i=1,2,.n)表示输入变量,其个数为n即输入层节点个数为n,两个隐含层的节点个数分别为l和s,m表示输出层的节点数,yk(p)(k=1,2,.m)表示输出

    9、层节点输出。在神经网络中每一个神经元都可以用一个节点来表示,而神经网络的 隐含层是可变的可以是单层、双层和多层。通常情况下采用Sigmoidal型函数表示隐含层节点,采用Sigmoidal型函数或者线性函数表示输入和输出节点。 图1 BP神经网络结构图表 3. 遗传算法 3.1 遗传算法的原理 遗传算法(Genetic Algorithms)是1962年由美国Michigan大学Holland教授提出的模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法4。由于遗传算法的寻优能力的并行性高并且具有自适应性,使其在诸多领域都得到了迅速的发展如函数优化、机器学习等,同时取得了较好的效果。

    10、遗传算法中的操作步骤与生物遗传和进化的步骤极为相似。它把自然界“优胜劣态,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,按照所选择的适应度函数并通过 3 遗传中的选择、交叉和变异对个体进行筛选,使适应度值好的个体被保留,适应度值差的个体被淘汰,新的群体既继承了上一代的信息,又优于上一代。这样反复循环,直至满足条件。 3.2 遗传算法的基本操作 3.2.1 选择操作 选择操作是指从旧群体中以一定概率选择个体到新群体中,个体被选中的概率跟适应度值有关,个体使用度质越好,被选中的概率越大。 3.2.2交叉操作 交叉操作是指从个体中选择两个个体,通过两个染色的交换组合,来产生新的优秀个体5

    11、。交叉过程为从群体中任选两个染色体,随机选择一点或多点染色体位置进行交换。交叉操作图如图2所示。 A:1100 0101 1111 交叉 A:1100 0101 0000 图2 交叉操作 3.3.3变异操作 变异操作是指从群体中任选一个个体,选择染色体中的一点进行变异以产生更优秀的个体。变异操作如图3所示。 图3 变异操作 遗传算法具有高效启发式搜索、并行计算等特点,目前已经应用在函数优化、组合优化以及生产调度等方面。 3.3 遗传算法的基本要素 遗传算法的基本要素包括染色体编码方适应度函数、遗传操作和运行参数。 其中染色体编码方法是指个体的编码方法,目前包括二进制法、实数法等。二进制法是指把

    12、个体编码成为一个二进制串,实数法是指把个体编码成为一个实数串。 适应度函数是指根据目标编写的计算个体适应度值的函数,通过适应度值函数 4 计算每个个体的适应度值,提供给选择算子进行选择。 遗传操作是指选择操作、交叉操作和变异操作。 运行参数是遗传算法在初始化时确定的参数,主要包括群体大小M、遗传代数G、交叉概率Pc和变异概率Pm。 4. 遗传算法优化BP神经网络 4.1 算法流程 遗传算法优化BP神经网络算法流程6如图4所示。 5 N Y 图4 算法流程 遗传优化算法优化BP神经网络分为BP神经网络结构确定、遗传算法优化和BP神经网络预测3个部分。其中,BP神经网络结构确定部分根据拟合函数输入

    13、输出参数个数确定BP神经网络结构,进而确定遗传算法个体的长度。遗传算法优化使用遗传算法优化BP神经网络的权值和阈值,种群中的每个个体都包含了一个网络所有权值和阈值7,个体通过适应度函数计算个体适应度值,遗传算法通过选择、交叉和变异操作找到最优适应度值对应个体。BP神经网络预测用遗传算法得到最优个体对网络初始权值和阈值赋值,网络经训练后预测函数输出。 拟合的非线性函数为 y?x1?x2,有2个输入参数、1个输出参数,所以设置的BP神经网络结构为2-5-1,即输入层有2个节点,隐含层有5各节点,输出层有1个节点,共有2*5+5*1=15个权值,5+1=6个阈值,所以遗传算法个体编码长度为15+6=

    14、21.从非线性函数中随机得到2000组输入输出数据,从中随机选择1900组作为训练数据,用于网络训练,100组作为测试数据。把训练数据预测误差绝对值和作为适应度值,个体适应度值越小,该个体越优。 4.2 遗传算法实现 遗传算法优化神经网络是用遗传算法来优化BP 神经网络的初始权值和阈值,使优化后的BP 神经网络能够更好的预测输出8。遗传算法优化BP 神经网络的实现步骤如下: 1> 种群初始化 个体编码为实数编码,每个个体均为一个实数串,由输入层与隐含层连接权值、隐含层阈值、隐含层与输出层连接权值以及输出层阈值4 部分组成。个体包含了神经网络全部权值和阈值,在网络结构已知的情况下,就可以构

    15、成一个结构、权值、阈值确定的神经网络。 6 22 2> 适应度函数 根据个体得到BP 神经网络的初始权值和阈值,用训练数据训练BP 神经网络后预测系统输出,把预测输出和期望输出之间的误差绝对值和E 作为个体适应度值F,计算公式为 F?k(?abs(yi?oi) (1-1) i?1n 式中n 为网络输出节点数;yi 为BP 神经网络第i 个节点的期望输出;oi 为第i 个 节点的预测输出;k 为系数。 3> 选择操作 遗传算法遗传算法选择操作有轮盘赌法、锦标赛法等多种方法,本文选择轮盘赌法,即基于适应度比例的选择策略,每个个体i 的选择概率pi 为 fi?k/Fi (1-2) fi

    16、pi? ?j?1Nfj (1-3) 式中,Fi 为个体i 的适应度值,由于适应度值越小越好,所以在个体选择前对适应度值求倒数;k 为系数;N 为种群个体数目。 4> 交叉操作 由于个体采用实数编码,所以交叉操作方法采用实数交叉法9,第k 个染色体ak 和第l 个染色体ai 在j 位的交叉操作方法如下: akj?akj(1?b)?aljb? (1-4) alj?alj(1?b)?akjb? 式中,b是0,1间的随机数。 5> 变异操作 选取第 i 个个体的第j 个基因aij 进行变异13,变异操作方法如下: 7 ?aij?(aij?amax)?f(g),r?0.5a? ij (1-5

    17、) a?(a?a)?f(g),r?0.5?minij?ij 式中,amax 为基因aij 的上界;amin 为基因aij 的下界;f(g)=r2(1-g/Gmax);r2 为一个随机数;g 为当前迭代次数;Gmax 是最大进化次数;r为0,1间的随机数。 4.3 遗传算法改进网络结构及权值、阈值的步骤 (1)设置总迭代次数T,交叉概率?,变异概率?,种群大小M,设置当前迭代次数t?0;随机生成M个个体,每个个体的第一个等位基因k表示隐含层节点数,k?Ni?No?1,Ni?No?10,Ni是输入层节点数,No是输出层节点数;选择激活函数,设置参数c,根据适应度函数计算每个个体的适应度值。 (2)

    18、用轮盘赌法选择个体,并进行交叉、变异产生下一代 (3)计算该后代种群各个个体的适应度。若最高适应度达到要求,或达到最大迭代次数,算法停止;否则返回(2),直到达到最高适应度达到要求,或达 到最大迭代次数。 (4)输出适应度值最高的个体,若有多个适应度值相同的个体,则选择染色体长度最短的个体(即隐含层节点数最少的个体)作为输出。 4.4 BP神经网络遗传算法非线性极值寻优的步骤 2神经网络遗传算法函数极值寻优,即对未知的非线性函数y?x12?x2,仅仅通 过函数的输入输出数据难以寻优。可以先利用神经网络的非线性拟合能力和遗传算法的非线性寻优能力寻找函数的极值。 BP神经网络遗传算法极值寻优主要由

    19、(1)BP神经网络训练拟合;(2)遗传算法极值寻优。 (1)BP神经网络训练拟合,包括构建合适的神经网络,由于本例的函数是 2,故确定BP网络的拓扑结构是251。 y?x12?x2 (2)遗传算法极值寻优,染色体个体采用实数编码,由于是寻找函数 2的极值点,故个体长度为2。个体的适应度值为BP神经网络的预测值,y?x12?x2 8 故预测值(即适应度值)越小,个体越优 交叉概率0.4,变异概率0.2. 10。种族规模为10,进化次数为50次, BP神经网络遗传算法极值寻优,先将BP神经网络的预测值作为染色体个体的适应度值,再通过遗传算法寻找非线性函数的最优值。 5.仿真实例 5.1 遗传算法优

    20、化BP网络的权值阈值非线性函数拟合 通过遗传算法优化BP神经网络的权值阈值,再用BP神经网络对非线性函数 2进行拟合。 y?x12?x2 5.1.1拟合结果分析 遗传算法优化中,最优个体适应度值值变化如图5。进化到20代时,得到最优个体适应度值1.21237585896181,满足条件终止迭代。 适应度曲线 终止代数20 适应度0510 进化代数152025 图5 最优个体适应度值变化曲线 5.1.2 遗传算法优化得到BP神经网络最优初始权值和阈值如下 9 输入层隐含层间权值: -1.29076495063329; -0.129380747340498 0.00430965636191028

    21、0.172141394159896; -2.91503128004983; -2.29143357315059 -2.16511386577969.021* 隐含层节点阈值 -1.59747006938531; 0.972786689605846 0.850873190239208; 2.09802070115393 ;2.24339454426019 隐含层输出层间阈值 2.68097856404349; 1.85138303257096 ;-2.53975440679219 -1.199*259; -2.36861040930053 输出层阈值 1.21743061422284 5.1.3

    22、 BP网络及用遗传算法优化的BP神经网络的预测误差比较 BP网络预测误差 0.5 0.4 0.3 0.2 0.1 -0.1 -0.2 -0.3 -0.41.57251141584773 ; -1.75818656539211; 误差010* 样本 图6 BP神经网络预测误差 10 010* 图7 用遗传算法优化的BP神经网络预测误差 由上图比较可知,用遗传算法优化的BP神经网络预测更加精确,并且遗传算法优化BP网络预测的均方误差为1.22?10-6,而单纯的BP神经网络的均方误差为 3.97?10-5,预测的误差也得到很大的改善。 5.2 BP神经网络遗传算法非线性极值寻优 5.2.1 BP神

    23、经网络拟合结果分析 由于个体的适应度值为BP神经网络的预测值,因此BP神经网络的预测精度对于最优位置的寻找有重要的意义。BP神经网络预测输出和期望输出对比如下图,可以看出,BP神经网络可以准确预测非线性函数输出。 11 BP网络预测输出 输出样本 图8 BP神经网络预测非线性函数输出 5.2.2 遗传算法寻优结果分析 适应度曲线 适应度 进化代数 图9 最优个体适应度变化曲线 BP神经网络的预测值作为染色体个体的适应度值,用遗传算法寻找该非线性函数的最小值,设遗传算法的迭代次数100次,种群规模20,交叉概率0.4,变异概率0.2,用实数编码,个体长度2,优化过程中最优个体适应度变化曲线如图8

    24、。 12 遗传算法得到最优个体适应度值为-0.0651,最优个体为-0.0407 ,0.0316, 2它同非线性函数y?x12?x2的最优值点(0,0)及最优值很接近,这说明了该方法的 有效性。 参考文献: 1 李国勇,智能预测控制及其MATLAB实现(第2版) 2010-01-01. 13 M.电子工业出版社, 2 傅荟璇,赵红,等MATLAB神经网络应用设计M北京:北京机械工业出版社,2010 3A. Blanco, M. Delgado, M.C. Pegalajar.A real-coded genetic algorithm for training recurrent neural

    25、 networksJ.Neural Networks 14 (2001) 93105 4 钱贺斌. 基BP神经网络的函数逼近及MABLAB仿真J.吉林省教育学院学报,2012,12(28):22-25 5 Pan S T,Wu C H,Lai C CThe Application of Improved Genetic AlgoritIlm On The Training of Neural Network for Speech RecognitionCInformation and Control,Second International Conference on Innovative C

    26、omputing,2007:168一171 6 Grzesiak L M,Meganck V,Sobolewski J,et al,Genetic Algorithm for Parameters Optimization of ANN-based Speed ControllerCThe International Conference on“Computer as a tool”。2007:17001705 7李伟超,宋大猛,陈斌基于遗传算法的人工神经网络J计算机工程与设计,2006,27(2):316318 8 Wu Yan,FENG ZhaoAdaptive invading gene

    27、tic algorithm based on chaos searchJJournal of computer applications(武妍,冯钊一种基于混沌搜索的自适应入侵遗传算法计算机应用),2008,28(1):l0l103 9 MATLAB中文论坛编著,Matlab神经网络30个案例分析M北京航天航空大学出版社,2010-04-01 10Vitoantonio Bevilacqua, Giuseppe Mastronardi.Genetic Algorithms and Artificial Neural Networks in Microarray Data Analysis:a

    28、Distributed Approach.JEngineering Letters, 13:3, EL_13_3_14 附录 主要代码 1.用遗传算法优化网络权值阈值,并对非线性函数进行拟合的主要代码 inputnum=2; hiddennum=5; 14 outputnum=1; %节点个数 %训练数据和预测数据 input_train=input(1:1900,:)' input_test=input(1901:2000,:)' output_train=output(1:1900)' output_test=output(1901:2000)' %选连样本

    29、输入输出数据归一化 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*output

    30、num+outputnum; lenchrom=ones(1,numsum); bound=-3*ones(numsum,1) 3*ones(numsum,1); %数据范围 %种群初始化 individuals=struct('fitness',zeros(1,sizepop), 'chrom',); %将种群信息定义为一个结构体 avgfitness=; %每一代种群的平均适应度 bestfitness=; %每一代种群的最佳适应度 bestchrom=; %适应度最好的染色体 %初始化种群 for i=1:sizepop %随机产生一个种群 individ

    31、uals.chrom(i,:)=Code(lenchrom,bound); %编码(binary和grey的编码结果为一个实数,float的编码结果为一个实数向量) x=individuals.chrom(i,:); %计算适应度%染色体的适应度 individuals.fitness(i)=fun(x,inputnum,hiddennum,outputnum,net,inputn,outputn); end FitRecord=; bestfitness bestindex=min(individuals.fitness);%找最好的染色体 bestchrom=individuals.chrom(bestindex,:); %最好的染色体 avgfitness=sum(individuals.fitness)/sizepop; %染色体的平均适应度 % 记录每一代进化中最好的适应度和平均适应度 trace=avgfitness bestfitness;


    注意事项

    本文(基于遗传算法的BP神经网络的应用.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开