昆明理工大学智能控制(BP神经网络)实验.docVIP

昆明理工大学智能控制(BP神经网络)实验.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
昆明理工大学信息工程与自动化学院学生实验报告 课程名称:智能控制导论 开课实验室: 年级、专业、班 测控121 学号 姓名 成绩 实验项目名称 神经网络设计与MATLAB仿真 指导教师 教 师 评 语 该同学是否了解实验原理: A.了解□ B.基本了解□ C.不了解□ 该同学的实验能力: A.强 □ B.中等 □ C.差 □ 该同学的实验是否达到要求 : A.达到□ B.基本达到□ C.未达到□实验报告是否规范: A.规范□ B.基本规范□ C.不规范□实验过程是否详细记录: A.详细□ B.一般 □ C.没有 □MATLAB的基本操作命令和神经网络工具箱的使用,掌握MATLAB编程或神经网络编辑器等方法,进行BP神经网络设计的基本方法和步骤,为以后利用计算机进行神经网络控制系统分析与设计打下良好的基础。 二、实验内容 试设计BP神经网络来实现正弦函数的逼近。 输入矢量 X= -2: 0.05: 2; 相对应的目标矢量 三、实验要求 设计一个BP神经网络来实现对正弦函数关系的逼近; 正确的选择确定BP神经网络的相关参数; 完成BP网络函数逼近程序的仿真与调试; 仿真结果分析。 四、实验原理 BP网络是一种多层前馈神经网络,由输入层、隐层和输出层组成。一个典型的三层BP网络的拓扑结构,层与层之间采用全互连方式,同一层之间不存在相互连接,隐层可以有一层或多层。层与层之间有两种信号在流通:一种是工作信号,它是施加输入信号后向前传播直到在输出端产生实际输出的信号,是输入和权值的函数。另一种是误差信号,网络实际输出与期望输出间的差值即为误差,它由输出端开始逐层向后传播。BP网络的学习过程程由前向计算过程和误差反向传播过程组成。在前向计算过程中,输入量从输入层经隐层逐层计算,并传向输出层,每层神经元的状态只影响下一层神经元的状态。如输出层不能得到期望的输出,则转入误差反向传播过程,误差信号沿原来的连接通路返回,逐次调整网络各层的权值和阈值,直至到达输入层,再重复向计算。这两个过程一次反复进行,不断调整各层的权值和阈值,使得网络误差最小或达到人们所期望的要求时,学习过程结束。 五、实验过程 利用两层BP网络完成函数逼近,隐含层激活函数为S型函数,输出层的激活函数为线性函数clear all; clc; NNTWARN OFF; X=-2:0.05:2; T=sin(2*pi*X)+cos(pi*X); plot(X,T,+b); pause 得到原始曲线截图: 建立BP网络,并初始化权值和阈值 程序为: [R,N]=size(X); [S2,N]=size(T); S1=20; %隐含层神经元个数 [w11,b11,w12,b12]=initff(X,S1,tansig,S2,purelin); [y1,y21]=simuff(X,w11,b11,tansig,w12,b12,purelin); 得到训练前BP网络的函数逼近效果截图: 利用不含噪声的理想输入数据训练网络 程序为: disp_freq=5; max_epoch=10000; % 训练次数 err_goal=0.05; % 训练误差 lr=0.01; %学习速率 tp=[disp_freq max_epoch err_goal lr]; [w21,b21,w22,b22,te,tr]=trainbpx(w11,b11,tansig,w12,b12,purelin,X,T,tp); BP网络训练过程参数显示截图为 显示训练后网络的函数逼近效果 程序为 [y1,y22]=simuff(X,w21,b21,tansig,w22,b22,purelin); plot(X,y21,--g,X,y22,or) disp(网络训练步数为:) te pause 训练后BP网络的函数逼近效果截图为 达到要求所用的网络训练步数截图: 由于我预设的训练误差为0.05,相对来说比较大,而且预设10000步达到训练目的,但只用了1348步就已经完成了,所以我做了大胆的设想,将训练误差改为0.01,以期望能达到更高的要求。 disp_freq=5; max_epoch=10000; % 训练次数 err_goal=0.01; % 训练误差 lr=0.01; %学习速率 tp=[disp_freq max_epoch err_goal lr]; [w21,b21,w22,b22,te,tr]=trainbpx(w11,b11,tansig,w12,b12,purelin,X,T,tp); BP网络二次训练过程参数显示截图为 显示二次训练后网络的函数逼近效果 程序为 [y1,y22]=simuff(X,w21

文档评论(0)

企管文库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档