BP神经网络实例_第1页
BP神经网络实例_第2页
BP神经网络实例_第3页
BP神经网络实例_第4页
BP神经网络实例_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、BP 神经网络实例智能控制第一章 BP神经网络基本原理一、BP神经网络基本概念1、人工神经网络人工神经网络ANN (Artificial Neural Network),是对人类大脑系统的一阶特性 的一种描述。简单地讲,它是一个数学模型,可以用电子线路来实现,也可以 用计算机程序来模拟,是人工智能研究地一种方法。近年来发展迅速并逐渐成 熟的一种人工智能技术,其来源于对神经元细胞的模拟。人工神经网络具有以 下三个特点:信息分布表示,运算全局并行与局部操作,信息非线性处理。由于 这三个特点,使得由人工神经网络构成的分类器具有强大的数据拟和与泛化能 力,因而广泛运用于模式识别与机器学习领域。神经网络

2、模式识别的过程分为两步:首先是学习过程,通过大量的训练样本,对 网络进行训练,根据某种学习规则不断对连接权值进行调节,然后使网络具有 某种期望的输出,这种输出就可以将训练样本正确分类到其所属类别中去,此 时可以认为网络是学习到了输入数据或样本间的内在规律。接下来是分类过 程,应用前面学习过程所训练好的权值,对任意送入网络的样本进行分类。人工神经网络模型各种各样,目前已有数十种。他们从各个角度对生物神经系 统的不同层次进行了描述和模拟。代表模型有感知机、多层映射BP网、RBF网络、HoPfiled模型、Boit机等等。虽然人工神经网络有很多模型,但按神经 元的连接方式只有两种型态:没有反馈的前向

3、网络和相互结合型网络。前向网络 是多层映射网络,每一层中的神经元只接受来自前一层神经元的信号,因此信 号的传播是单方向的。BP网络是这类网络中最典型的例子。在相互结合型网络 中,任意两个神经元都可能有连接,因此输入信号要在网络中往返传递,从某 一初态开始,经过若干变化,渐渐趋于某一稳定状态或进入周期震荡等其它状 态,这方面典型的网络有 Hopfiled模型等。2、BP神经网络BP算法是利用输出层的误差来估计输出层的直接前导层的误差,再用这个误差 估计更前一层的误差。如此下去,就获得了所有其他各层的误差估计。这样就 形成了将输出端表现出的误差沿着与输入信号传送相反的方向逐级向网络的输 入端传递的

4、过程。因此,人们就又将此算法称为向后传播算法,简称BP算法。如下图所示:算法过程为(1) 设置各权值和阈值的初始值 w(')0,二0(1 =0,1,., L)为小随机数。(2) 输入训练样本|q,dq,对每个样本进行(3)(5)步。(3)计算各个网络层的实际输出0 = f(S(l, f(WX(T)(4)计算训练误差j二(dqj -X(l)f'(s(l),输出层n 1T = f'(S护,隐含层和输入层(5) 修正权值和阈值w(jT)k+1 = wy【k + 吒j(l)x(l_1) (wyikwk 1)计1 1)k 1-计打町 七j(l)(*)k*)k 1)4智能控制#智能

5、控制(6)当样本集中的所有样本都经历了(3)( 5)步后,即完成了一个训练周期#智能控制Qi m(Epoch),计算性能指标E二瓦Eq,其中Eq= 迟(dqj-Xqj qA2 j(7)如果性能指标满足精度要求,即E<z,那么训练结束,否则,转到(2),继续下一个训练周期。;是小的正数,根据实际情况而定,例如0.013、流程图根据BP网络的算法,我们可得流程图如下第二章BP神经网络实例分析一、实例要求1、f|(x)二 cos(x),x (0,2 二)取九个点来训练网络,然后得出拟合曲线。2、f2(x) =|sin(x) ,xe(0,2jt)取适当数量训练点来训练网络,然后得出拟合曲线sin

6、 x sin y _ , “ “、3、f3 x,y;x, y (-10,10)x y取11*11个点来训练网络,并用21*21个点测试拟合的曲面二、计算结果如下1、第一个函数:f|(x) =cos(x), x (0,2 二)c y学习曲线01234567x(2 )学习率为 0.2,训练次数为3300 时检验曲线0.80.60.40.20-0.2-0.4-0.6-0.8-12.50.520040010001400值差1.5误cy600 800训练次数1200误差曲线训练过程如学习曲线所示,圈圈为 学习后产生的,折线为标准函数点连 线。检验过程如检验曲线所示,点序列 为拟合曲线上的点,曲线为标准函

7、数曲 线。误差曲线如右图所示。(2)学习率为0.01,训练次数为3300时的曲线学习曲线1.5ii1 0.5s -cy0 .-0.5 -r-1 IIIIIII01234567x从函数1可以看出,学习率比较 大时,曲线收敛比较快,可以比较快 速达到精度要求。但实际上,学习率 比较大时(即收敛步长比较大),容易 超出收敛边界,反而收敛导致不稳 定,甚至发散。检验曲线x误差曲线训练次数2、第二个函数:f2(x)=s in (x),xe(0,2ji)(1)学习率为0.2,样本点数为10,学习次数为5000时的曲线如下:6智能控制#智能控制学习曲线xx#智能控制误差曲线(2)学习率为0.2,样本点数为3

8、0,学习次数为5000时的曲线如下:检验曲线学习曲线1.210.80.60.40.20-0.205从函数2可以看误差曲线1.4出,样本点个数越多1.2精度越时,曲线1间会有所增但学习时0.80.60.40.2值 差 误加。1234x高。x_£aoc= yo o o o1XVSOC- y1.110.90.80.70.60.50.40500100015002000250030003500400045005000训练次数7智能控制0500100015002000250030003500400045005000训练次数#智能控制3、第三个函数 f3 x, y =sinx sin ;x, y

9、(-10,10)x y学习率为0.1,动量项学习率为0.05,训练次数为5000,训练样本数为11*11图形如下:8智能控制#智能控制学习实际输岀15学习期望输岀0 0159智能控制10智能控制检验期望输出检验实际输出误差曲线#智能控制隐含层采用S形函数%精度要求%学习率%训练样本数%训练次数%检验样本数%输入层阈值%第一层隐含层阈值%第二层隐含层阈值%输出层阈值%输入信号为两个%第一层隐含层与第二层隐含层的权系数%第二层隐含层与输岀层的权系数%符号变量,用于两个输入值%被学习的函数%输入的训练样本%输出的训练样本%第一层隐含层输岀%第二层隐含层输岀附:程序源代码第一个和第二个函数的程序:%此

10、BP网络为两层隐含层,每个隐含层4个节点。输入输岀各一层 %输入层和输岀层均采用恒等函数, clear all;close all;b=0.01;a=0.2;c=2;Num=30;N=3300;Nj=80;o0=ra nd(2,1);o1=ra nd(4,1);o2=ra nd(4,1);o3=ra nd(1,1);w1=ra nd(4,2);w2=ra nd(4,4);w3=ra nd(1,4);syms x y;%fcn=cos(x);fcn=abs(s in( x);x0=0:2*pi/(Num-1):2*pi;y0=0:2*pi/(Num-1):2*pi;x=xO;y=y0;X(1,:

11、)=x0;X(2,:)=y0;yf=eval(fc n);x3=zeros(1,Num);time=0;for j=1:1:Nfor i=1:1:Num%前向计算:s1= w1*X(:,i)-o1;x1= 1./(1+exp(-s1); s2=w2*x1-o2; x2=1./(1+exp(-s2);11智能控制12智能控制S3=w3*x2-o3;%x3=1.心+exp(-s3);%输岀层输岀x3(i)=s3;%反向计算:%e3=(yf(i)-x3)./(exp(s3)+2+exp(-s3); e3=yf(i)-x3(i);e2=(w3)'*e3)./(exp(s2)+2+exp(-s2

12、);e1=(w2)'*e2)./(exp(s1)+2+exp(-s1);%输岀层误差%第二层隐含层误差%第一层隐含层误差艰值和阈值修正w3=w3+a*e3*(x2)'w2=w2+a*e2*(x1)'w1= w1+a*e1*(X(:,i)'o3=o3-a*e3;o2=o2-a*e2;o1=o1-a*e1;endE(j)=0.5*(yf-x3)*(yf-x3)'); time=time+1;if E(j)<bbreakendend%佥验m=0:2*pi/(Nj-1):2*pi;n=0:2*pi/(Nj-1):2*pi;x=m;y=n;ym=eval(f

13、c n);%期望输岀M(1,:)=x;M(2,:)=y;m3=zeros(1,Nj);for i=1:1:NjS1= w1*M(:,i)-o1;m1= 1./(1+exp(-S1);S2=w2*m1-o2;m2=1./(1+exp(-S2);S3=w3*m2-o3;%m3(i)=1./(1+exp(-S3);%权值修正%阈值修正炳差%己录学习次数%第一层隐含层输岀%第二层隐含层输岀%输出层输出13智能控制m3(i)=S3;endfigure(1);plot(m,ym, 'g-');hold onplot(m,m3, 'r.'); title( '检验曲线

14、');xlabel('x');ylabel(' y=cos(x)');figure(2); plot(x0,yf, 'b-');hold onplot(x0,x3, 'ro' ); title( '学习曲线');xlabel('x');ylabel(' y=cos(x)');k=1:time;figure(3) ;plot(k,E);title( '误差曲线);xlabel('训练次数');ylabel('误差值);第三个函数的程序%此BP网络

15、为两层隐含层,每个隐含层10个节点。输入输岀各一层%输入层和输岀层均采用恒等函数,隐含层采用S形函数clear all;close all;b=0.05;%精度要求a=0.1;%学习率c=0.05;%动量项学习率Num=11;%训练样本数N=5000;%训练次数Nj=21;%检验样本数oO=ra nd(2,1);%输入层阈值o1=ra nd(10,1);%第一层隐含层阈值o2=ra nd(10,1);%第二层隐含层阈值o3=ra nd(1,1);%输出层阈值w1=ra nd(10,2);%输入层与第一层隐含层的权系数w2=ra nd(10,10);%第一层隐含层与第一层隐含层的权系数w3=ra

16、 nd(1,10);%第二层隐含层与输岀层的权系数o1_before=zeros(4,1);o2_before=zeros(4,1);%用于存储前一次的阈值o3_before=zeros(1,1);14智能控制15智能控制w1_before=zeros(4,2);w2_before=zeros(4,4);w3_before=zeros(1,4);o1_n ext=zeros(4,1);o2_n ext=zeros(4,1);o3_n ext=zeros(1,1);w1_ next=zeros(4,2);w2_n ext=zeros(4,4);w3_n ext=zeros(1,4);x0,y0=

17、meshgrid(-10:20/(Num-1)-0.%用于存储前一次的权值%用于存储后一次的阈值%用于存储后一次的权值:10);%输入的训练样本yf=(si n(xO).*si n(yO)./(xO.*yO);x3=zeros(Num,Num);time=0;E=zeros(1,N);for j=1:1:Nfor i=1:1:Numfor h=1:1:NumX=zeros(2,1);X(1,:)=x0(i,h);X(2,:)=y0(i,h);%前向计算:s1=w1*X-o1;x1= 1./(1+exp(-s1); s2=w2*x1-o2;x2=1./(1+exp(-s2);S3=w3*x2-o

18、3;%x3=1./(1+exp(-s3); x3(i,h)=s3;%反向计算:%被学习的函数%第一层隐含层输岀%第二层隐含层输岀%输出层输出%e3=(yf(i)-x3)./(exp(s3)+2+exp(-s3); e3=yf(i)-x3(i);e2=(w3)'*e3)./(exp(s2)+2+exp(-s2);e1=(w2)'*e2)./(exp(s1)+2+exp(-s1);w3_n ext=w3+a*e3*(x2)'+c*(w3-w3_before);w2_n ext=w2+a*e2*(x1)'+c*(w2-w2_before);w1_n ext=w1+a*

19、e1*X'+c*(w1-w1_before);o3_n ext=o3-a*e3+c*(o3-o3_before);%输岀层误差%第二层隐含层误差%第一层隐含层误差%权值修正%阈值修正o2_n ext=o2-a*e2+c*(o2-o2_before);16智能控制o1_ next=o1-a*e1+c*(o1-o1_before);w1_before=w1;w2_before=w2;w3_before=w3; o1_before=o1;o2_before=o2;o3_before=o3;w1=w1_ next;w2=w2 _n ext;w3=w3 _n ext;o1=o1_ next;o2=o2_ next;o3=o3_ next;d=yf(i,h);y=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论