BP神经网络专业课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数值分析》和《数学试验》专业实训
报告书
题目基于BP神经网络估计方法估计
模型
一、问题描述
建立基于BP神经网络信号回归模型,来估计某一组数据。
二、基础要求
1.熟悉掌握神经网络知识;
2.学习多层感知器神经网络设计方法和Matlab实现;
3.学习神经网络经典结构;
4.了解BP算法基础思想,设计BP神经网络架构;
5.谈谈试验体会和收获。
三、数据结构
BP网络能学习和存贮大量输入-输出模式映射关系,而无需事前揭示描述这种映射关系数学方程。
它学习规则是使用最速下降法,经过反向传输来不停调整网络权值和阈值,使网络误差平方和最小。
BP神经网络模型拓扑结构包含输入层(input)、隐层(hide layer)和输出层(output layer)。
BP神经网络算法: 神经网络由神经元和权重组成,神经元即为:输入节点,输出节点和隐层结点三部分;权重是各个神经元相互连接强度。
神经网络经过训
练,从样本中学习知识,而且将知识以数值形式存放于连接权中。
神经网络分类过程分成两部分,首先学习网络权重,利用部分已知数据训练网络得到该类数据模型权重;接着依据现有网络结构和权重等参数得到未知样本类别。
BP算法被称作反向传输算法,关键思想是以前向后(正向)逐层传输信息;从后向前(反向)逐层传输输出层误差,间接算出隐层误差。
四、试验内容
人工神经网络是用来模拟人脑结构及智能特点一个前沿研究领域,它一个关键特点是经过网络学习达成其输出和期望输出相符结果,含有很强自学习、自适应、鲁棒性、容错性及存放记忆能力.人工神经网络系统评价方法以其超凡处理复杂非线性问题能力独树一帜,这种评价方法忠实于客观实际,不带任何人为干预成份,是一个很好动态评价方法. 多年来,人工神经网络研究和应用受到了中国外极大重视. 在人工神经网络中有多个模型,其中BP 神经网络模型最成熟,其应用也最为广泛.
BP 神经网络是一个含有两层或两层以上阶层型神经网络,层间神经元实现全连接,即下层每个神经元和上层每个神经元全部实现权连接,而层内各神经元间无连接. 经典BP 网络是三层前馈阶层网络,即:输入层、隐含层和输出层.
源程序:
%======原始数据输入========
p=[2845 2833 4488;2833 4488 4554;4488 4554 2928;4554 2928 3497;2928 3497 2261;...
3497 2261 6921;2261 6921 1391;6921 1391 3580;1391 3580 4451;3580 4451 2636;...
4451 2636 3471;2636 3471 3854;3471 3854 3556;3854 3556 2659;3556 2659 4335;...
2659 4335 2882;4335 2882 4084;4335 2882 1999;2882 1999 2889;1999 2889 2175;...
2889 2175 2510;2175 2510 3409;2510 3409 3729;3409 3729 3489;3729 3489 3172;...
3489 3172 4568;3172 4568 4015;]';
%===========期望输出=======
t=[4554 2928 3497 2261 6921 1391 3580 4451 2636 3471 3854 3556 2659 ... 4335 2882 4084 1999 2889 2175 2510 3409 3729 3489 3172 4568 4015 ... 3666];
ptest=[2845 2833 4488;2833 4488 4554;4488 4554 2928;4554 2928 3497;2928 3497 2261;...
3497 2261 6921;2261 6921 1391;6921 1391 3580;1391 3580 4451;3580 4451 2636;...
4451 2636 3471;2636 3471 3854;3471 3854 3556;3854 3556 2659;3556 2659 4335;...
2659 4335 2882;4335 2882 4084;4335 2882 1999;2882 1999 2889;1999 2889 2175;...
2889 2175 2510;2175 2510 3409;2510 3409 3729;3409 3729 3489;3729 3489 3172;...
3489 3172 4568;3172 4568 4015;4568 4015 3666]';
[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],{TF1 TF2 TF3},'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表示估计值--- *表示实际值')
grid on
m=length(a); %向量a长度
t1=[t,a(m)];
error=t1-a; %误差向量
figure
plot(1:length(error),error,'-.')
title('误差改变图')
grid on
五、运行结果
六、总结
1.分工情况
本小组组员:
关键负责部分是程序设计和编写,和试验汇报最终整理。
关键负责是程序检测和调试还有程序修改和完善部分,关键负责试验汇报编写和排版。
2.心得体会
这次试验对于我们来说很有难度,毕竟以前没学过,不过这么却激发了我们对知识渴望,在我和我们队友主动讨论下,又经过上网查资料学习,了解掌握了一个新数据处理方法。
经过此次试验,深入了解掌握神经网络强大自学习能力和适应能力,和对复杂问题处理能力,也激发了深入深入学习神经网络知识热情。
依据我们在课程设计中碰到得问题,我们将在以后学习过程中注意以下几
点:1、专业课不能放下,要扎实基础。
2、团体精神很关键。
3、编写程序时候要细心,有耐心,切勿浮躁。