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

下载本文档

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

文档简介

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

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

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

4、程。因此,人们就又将此算法称为向后传播算法,简称BP算法如下图所示:输入层 隐藏层输出层(1)设置各权值和阈值的初始值算法过程为Wi)O ,()0(10,1,., L)为小随机数。(2)输入训练样本 I q,d q,对每个样本进行(3) (5)步(3)计算各个网络层的实际输出x f(s(l)f(w(l)x(l 1)(1)(4)计算训练误差(l) j(dqj x(l)f(s(l),输出层ni 1(l) jf (j)0 %kj,隐含层和输入层k 1(5)修正权值和阈值(7k 1 八k j(w(:)k W (l) k 1)(jk jk 1)3)( 5)步后,即完成了一个训练周期(6 )当样本集中的所

5、有样本都经历了(w,1)k 1 wJ) kj(l) x(l1)(Epoch),计算性能指标E二QEq,其中Eq q 11mdqj2Xqj 。(7 )如果性能指标满足精度要求,即E ,那么训练结束,否则,转到续下一个训练周期。是小的正数,根据实际情况而定,例如 0.013、流程图根据BP网络的算法,我们可得流程图如下。第二章BP 神经网络实例分析一、实例要求1、fi(x) cos(x),x (0,2 )取九个点来训练网络,然后得出拟合曲线f 2(x) sin(x) ,x (0,2 )取适当数M训练点来训练网络,然后得出拟合曲线c sin x sin y3、f3 x,y; x,y ( 10,10)

6、x y取11*11个点来训练网络,并用 21*21个点测试拟合的曲面二、计算结果如下1、第一个函数:f1(x) cos(x), x (0,2 )学习曲线误差曲线检验曲线y25.5 值差误200400600800 1000 1200训练次数1400(2)学习率为0.2 ,训练次数为3300时训练过程如学习曲线所示,圈圈为学习后产生的,折线为标准函数点连线。检验过程如检验 曲线所示,点序列为拟合曲线上 的点,曲线为标准函数曲线。误 差曲线如右图所示(2)学习率为0.01 ,训练次数为3300时的曲学习曲线1.5检验曲线1 530OD值 差 误15DD训练次数误差曲线1?0.5s cy 0?j-0.

7、5 ?-1 i i i01234567x从函数1可以看出,学习率比较 大时,曲 线收敛比较快,可以比较快 速达到精度要求。 但实际上,学习率 比较大时(即收敛步长比较 大),容易 超出收敛边界,反而收敛导致不稳 定,甚至发散。2、第二个函数:f2(x) sin(x) ,x (0,2 )(1)学习率为0.2,样本点数为10,学习次数为 5000时的曲线如下:1.41.210.80.6040.2学习曲线xxft V1.10.90.80.70.60.50.40500100015002000250030003500400045005000训练次数(2)学习率为0.2,样本点数为30,学习次数为5000

8、时的曲线如下:学习曲线1XVS OCyx检验曲线从函数2可以看出,样本点个数越 多时,曲线精度越高。但学习时间会有 所增加。f3 x, y学习率 为11*11图形如下:1.510.50-D.515sin x sin y;x, y ( 10,10)x y关习实际输出150.1 ,动M项学习率为0.05,训练次数为5000,训练样本数为学习期望输出0.5151010550 0-0.515检验期望输出检验实际输出误差曲线附:程序源代码第一个和第二个函数的程序:% 此 BP 网络为两层隐含层,每个隐含层隙今尸深4小节点。SH杷各一层输入层和输出层均采用恒等函数close all;b=0.01;clea

9、r all;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

10、*pi/(Num-1):2*pi;y0=0:2*pi/(Num-1):2*pi;x=x0;y=y0;X(1,:)=x0;X(2,:)=y0;yf=eval(fc n);x3=zeros(1,Num);time=0;for j=1:1:Nfor i=1:1:Num % 前向计算 :s1=ww1*X(:,i)-o1;x1= 1./(1+exp(-s1);s2=w2*x1-o2;x2=1./(1+exp(-s2);S3=w3*x2-o3; %x3=1./(1+exp(-s3);x3(i)=s3;% 反向计算:% 被学习的函数% 输入的训练样本% 输出的训练样本%第一层隐含层输出%第二层隐含层输出%输

11、出层输出%输出层误差%第二层隐含层误差%第一层隐含层误差%权值修正% 阈值修正炳差%己录学习次%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=w3+a*e3*(x2);w2=w2+a*e2*(x1);w1=ww1+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

12、(j)bbreakendend %佥验m=0:2*pi/(Nj-1):2*pi;n=0:2*pi/(Nj-1):2*pi; x=m;y=n ; ym=eval(fc n);M(1,:尸x; M(2,:尸y; %期望输出 m3=zeros(1,Nj);for i=1:1:NjS1=ww1*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); m3(i)=S3;endfigure(1);plot(m

13、,ym, g- holdon plot(m,m3, r. ); ti tle(xlabel( x);ylabel( y=cos(x) );figure(2);plot(x0,yf, hold onplot(x0,x3, ro );title( xlabel( x);ylabel( y=cos(x) ); k=1:time;figure(3);plot(k,E);b-);title( xlabel( 训练次数 ); TOC o 1-5 h z ylabel( 误差值) ;学习曲线) ;误差曲线);第三个函数的程序%此BP网络为两层隐含层,每个隐含层10个节点。输入输出各一层%输入层和输出层均采用

14、恒等函数,隐含层采用S形函数clear all;close all;b=0.05;%精度要求a=0.1;%学习率.001:10);c=0.05;Num=11;N=5000;Nj=21;o0=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 nd(1,1O);o1_before=zeros(4,1);o2_before=zeros(4,1);o3_before=zeros(1,1);w1_before=zeros(4,2);w2_before=zeros(4,4)

15、;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=meshgrid(-10:20/(Num-1)-0yf=(si n(xO).*si n(yO)./(xO.*yO);x3=zeros(Num,Num);%动量项学习率% 训练样本数% 训练次数% 检验样本数% 输入层阈值% 第一层隐含层阈值% 第二层隐含层阈值% 输出层阈值% 输入层与第一层隐含层的权系

16、数%第一层隐含层与第二层隐含层的权系攵%第二层隐含层与输出层的权系数%用于存储前一次的阈值%用于存储前一次的权值%用于存储后一次的阈 值%用于存储后一次的权值%输入的训练样本%被学习的函数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-o3;%x3=1./(1+exp(-s3);x3(i,h)=

17、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*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);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_b

温馨提示

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

评论

0/150

提交评论