BP神经网络实例.doc

上传人:新** 文档编号:558376219 上传时间:2023-12-05 格式:DOC 页数:15 大小:218KB
返回 下载 相关 举报
BP神经网络实例.doc_第1页
第1页 / 共15页
BP神经网络实例.doc_第2页
第2页 / 共15页
BP神经网络实例.doc_第3页
第3页 / 共15页
BP神经网络实例.doc_第4页
第4页 / 共15页
BP神经网络实例.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《BP神经网络实例.doc》由会员分享,可在线阅读,更多相关《BP神经网络实例.doc(15页珍藏版)》请在金锄头文库上搜索。

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

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

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

4、简称BP算法。如下图所示:算法过程为(1)设置各权值和阈值的初始值,为小随机数。(2)输入训练样本,对每个样本进行(3)(5)步。(3)计算各个网络层的实际输出(4)计算训练误差 ,输出层,隐含层和输入层(5)修正权值和阈值(6)当样本集中的所有样本都经历了(3)(5)步后,即完成了 一个训练周期(Epoch),计算性能指标,其中。(7)如果性能指标满足精度要求,即,那么训练结束,否则,转到(2),继续下一个训练周期。是小的正数,根据实际情况而定,例如0.013、流程图根据BP网络的算法,我们可得流程图如下。否Yes参数设置计算并保存各网络层的输出修正并保存权值和阈值s初始化权值和阈值是否满足

5、精度计算并保存传递误差结论是训练周期数第二章 BP神经网络实例分析一、实例要求1、取九个点来训练网络,然后得出拟合曲线。2、取适当数量训练点来训练网络,然后得出拟合曲线3、取11*11个点来训练网络,并用21*21个点测试拟合的曲面。二、计算结果如下1、第一个函数:(2)学习率为0.2,训练次数为3300时训练过程如学习曲线所示,圈圈为学习后产生的,折线为标准函数点连线。检验过程如检验曲线所示,点序列为拟合曲线上的点,曲线为标准函数曲线。误差曲线如右图所示。(2)学习率为0.01,训练次数为3300时的曲线。从函数1可以看出,学习率比较大时,曲线收敛比较快,可以比较快速达到精度要求。但实际上,

6、学习率比较大时(即收敛步长比较大),容易超出收敛边界,反而收敛导致不稳定,甚至发散。2、第二个函数:(1)学习率为0.2,样本点数为10,学习次数为5000时的曲线如下:(2)学习率为0.2,样本点数为30,学习次数为5000时的曲线如下:从函数2可以看出,样本点个数越多时,曲线精度越高。但学习时间会有所增加。3、第三个函数学习率为0.1,动量项学习率为0.05,训练次数为5000,训练样本数为11*11。图形如下:附:程序源代码第一个和第二个函数的程序:%此BP网络为两层隐含层,每个隐含层4个节点。输入输出各一层%输入层和输出层均采用恒等函数,隐含层采用S形函数clear all;close

7、 all;b=0.01; %精度要求a=0.2; %学习率c=2;Num=30; %训练样本数N=3300; %训练次数Nj=80; %检验样本数o0=rand(2,1); %输入层阈值o1=rand(4,1); %第一层隐含层阈值o2=rand(4,1); %第二层隐含层阈值o3=rand(1,1); %输出层阈值w1=rand(4,2); %输入信号为两个w2=rand(4,4); %第一层隐含层与第二层隐含层的权系数w3=rand(1,4); %第二层隐含层与输出层的权系数syms x y; %符号变量,用于两个输入值%fcn=cos(x); %被学习的函数fcn=abs(sin(x);

8、x0=0:2*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(fcn); %输出的训练样本x3=zeros(1,Num);time=0;for j=1:1:N for i=1:1:Num %前向计算: s1=w1*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;

9、 %反向计算: %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=w1+a*e1*(X(:,i); o3=o3-a*e3; %阈值修正 o2=o2-a*e2; o1=o1-a*e1; end E(j)=0.5*(yf-x3)*(yf-x3); %方差

10、 time=time+1; %记录学习次数 if E(j)b break endend%检验m=0:2*pi/(Nj-1):2*pi;n=0:2*pi/(Nj-1):2*pi;x=m;y=n;ym=eval(fcn); %期望输出M(1,:)=x;M(2,:)=y;m3=zeros(1,Nj);for i=1:1:Nj S1=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); %输出层输出 m3(i)=S3

11、;endfigure(1);plot(m,ym,g-);hold onplot(m,m3,r.); title(检验曲线); 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网络为两层隐含层,每个隐含层10个节点。输入输出各一层%输入层和输出层均采用恒等函数,

12、隐含层采用S形函数clear all;close all;b=0.05; %精度要求a=0.1; %学习率c=0.05; %动量项学习率Num=11; %训练样本数N=5000; %训练次数Nj=21; %检验样本数o0=rand(2,1); %输入层阈值o1=rand(10,1); %第一层隐含层阈值o2=rand(10,1); %第二层隐含层阈值o3=rand(1,1); %输出层阈值w1=rand(10,2); %输入层与第一层隐含层的权系数w2=rand(10,10); %第一层隐含层与第二层隐含层的权系数w3=rand(1,10); %第二层隐含层与输出层的权系数o1_before=zeros(4,1); %用于存储前一次的阈值o2_before=zeros(4,1);o3_bef

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号