BP神经网络课程设计.doc
《BP神经网络课程设计.doc》由会员分享,可在线阅读,更多相关《BP神经网络课程设计.doc(6页珍藏版)》请在冰点文库上搜索。
《数值分析》与《数学实验》专业实训
报告书
题目基于BP神经网络预测方法的预测
模型
一、问题描述
建立基于BP神经网络的信号回归模型,来预测某一组数据。
二、基本要求
1.熟悉掌握神经网络知识;
2.学习多层感知器神经网络的设计方法和Matlab实现;
3.学习神经网络的典型结构;
4.了解BP算法基本思想,设计BP神经网络架构;
5.谈谈实验体会与收获。
三、数据结构
BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。
它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。
BP神经网络模型拓扑结构包括输入层(input)、隐层(hidelayer)和输出层(outputlayer)。
BP神经网络算法:
神经网络由神经元和权重构成,神经元即为:
输入节点,输出节点和隐层结点三部分;权重是各个神经元相互连接的强度。
神经网络通过训练,从样本中学习知识,并且将知识以数值的形式存储于连接权中。
神经网络的分类过程分成两部分,首先学习网络的权重,利用一些已知的数据训练网络得到该类数据模型的权重;接着根据现有的网络结构和权重等参数得到未知样本的类别。
BP算法被称作反向传播算法,主要思想是从前向后(正向)逐层传播信息;从后向前(反向)逐层传播输出层的误差,间接算出隐层误差。
四、实验内容
人工神经网络是用来模拟人脑结构及智能特点的一个前沿研究领域,它的一个重要特点是通过网络学习达到其输出与期望输出相符的结果,具有很强的自学习、自适应、鲁棒性、容错性及存储记忆的能力.人工神经网络系统评价方法以其超凡的处理复杂非线性问题的能力独树一帜,这种评价方法忠实于客观实际,不带任何人为干预的成分,是一种较好的动态评价方法.近年来,人工神经网络的研究和应用受到了国内外的极大重视.在人工神经网络中有多种模型,其中BP神经网络模型最成熟,其应用也最为广泛.
BP神经网络是一种具有两层或两层以上的阶层型神经网络,层间神经元实现全连接,即下层的每个神经元与上层的每个神经元都实现权连接,而层内各神经元间无连接.典型的BP网络是三层前馈阶层网络,即:
输入层、隐含层和输出层.
源程序:
%======原始数据输入========
p=[284528334488;283344884554;448845542928;455429283497;292834972261;...
349722616921;226169211391;692113913580;139135804451;358044512636;...
445126363471;263634713854;347138543556;385435562659;355626594335;...
265943352882;433528824084;433528821999;288219992889;199928892175;...
288921752510;217525103409;251034093729;340937293489;372934893172;...
348931724568;317245684015;]';
%===========期望输出=======
t=[4554292834972261692113913580445126363471385435562659...
4335288240841999288921752510340937293489317245684015...
3666];
ptest=[284528334488;283344884554;448845542928;455429283497;292834972261;...
349722616921;226169211391;692113913580;139135804451;358044512636;...
445126363471;263634713854;347138543556;385435562659;355626594335;...
265943352882;433528824084;433528821999;288219992889;199928892175;...
288921752510;217525103409;251034093729;340937293489;372934893172;...
348931724568;317245684015;456840153666]';
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);%将数据归一化
NodeNum1=20;%隐层第一层节点数
NodeNum2=40;%隐层第二层节点数
TypeNum=1;%输出维数
TF1='tansig';
TF2='tansig';
TF3='tansig';
net=newff(minmax(pn),[NodeNum1,NodeNum2,TypeNum],{TF1TF2TF3},'traingdx');
%网络创建traingdm
net.trainParam.show=50;
net.trainParam.epochs=50000;%训练次数设置
net.trainParam.goal=1e-5;%训练所要达到的精度
net.trainParam.lr=0.01;%学习速率
net=train(net,pn,tn);
p2n=tramnmx(ptest,minp,maxp);%测试数据的归一化
an=sim(net,p2n);
[a]=postmnmx(an,mint,maxt)%数据的反归一化,即最终想得到的预测结果
plot(1:
length(t),t,'o',1:
length(t)+1,a,'+');
title('o表示预测值---*表示实际值')
gridon
m=length(a);%向量a的长度
t1=[t,a(m)];
error=t1-a;%误差向量
figure
plot(1:
length(error),error,'-.')
title('误差变化图')
gridon
五、运行结果
六、总结
1.分工情况
本小组成员:
主要负责的部分是程序的设计与编写,以及实验报告的最终整理。
主要负责的是程序的检测与调试还有程序的修改和完善部分,主要负责实验报告的编写与排版。
2.心得体会
这次实验对于我们来说很有难度,毕竟以前没学过,但是这样却激发了我们对知识的渴望,在我和我们队友的积极讨论下,又通过上网查资料学习,了解掌握了一种新的数据处理方法。
通过本次实验,进一步了解掌握神经网络强大的自学习能力和适应能力,以及对复杂问题的解决能力,也激发了进一步深入学习神经网络知识的热情。
根据我们在课程设计中遇到得问题,我们将在以后的学习过程中注意以下几点:
1、专业课不能放下,要扎实基础。
2、团队精神很重要。
3、编写程序的时候要细心,有耐心,切勿浮躁。
6