神经网络控制设计.docVIP

  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文档。上传文档
查看更多
x=0:0.01:3 y=3*sin(x)+0.1*rand(1,length(x)) 针对前述函数,建立一个单输入单输出的3层BP网络,并撰写报告,激励函数等可自行选择:要求: 神经网络输出与函数输出的误差应小于某小值; 由于所给函数x取值范围是[0 3],而题目要求输入输出样本集x取值范围应该覆盖0度到360度。所以x在[3 2*pi]内,应观察已训练好的神经网络是否满足目标函数,以此检验训练完的网络。 建立网络与参数设置 一、先分析几个常用的激励函数 (1)logsig对数S型(sigmoid)传递函数,它可以将神经元的输入范围是(-∞,+∞)映射到(0,1)的区间上,它是可微函数,其表达式为:y=1/1+e-x。 (2)tansig双曲正切S型(sigmoid)传递函数,它可以将神经元的输入范围(-∞,+∞)映射到(-1,+1)的区间上,它是可微函数。 对logsig传递函数而言,输出范围是(0,1),对tansig传递函数而言,输出范围是(-1,1)。如果是purelin型神经元,则整个网络的输出可以是任意值。 对三层BP网络而言,如果最后一层是sigmoid型神经元,那么整个网络的输出就限制在一个较小的范围内。我们选择purelin函数作为输出层神经元的激励函数,tansig函数作为隐层神经元的激励函数。 二、学习算法 BP算法的主要缺点是:收敛速度慢,局部极值、难以确定隐层结点个数。改进主要有两种途径:一种是采用启发式学习算法,另一种是采用更有效的优化算法。 启发式算法主要体现在函数梯度上,包括有动量的梯度下降法、自适应lc的梯度下降法、有动量和自适应lc的梯度下降法和能复位的BP训练法。 基于数值优化的训练方法有三种:共轭梯度法、高斯牛顿法和Levevberg-Marquardt法。 由于trainlm具有收敛快,误差小的优点,且本实验中数据量不算大,故我们这里采trainlm学习算法。,误差小的优点,且本实验中数据量不算大,故我们这里用trainlm学习算法。各个算法特点见表1 表1 学习算法 适用问题类型 收敛性能 占用存储空间 其它特点 trainlm 函数拟合 收敛快 误差小 大 性能随网络规模增大而变差 trainrp 模式分类 收敛最快 较小 性能随网络训练误差减小而变差 trainscg 函数拟合 模式分类 收敛较快 性能稳定 中等 尤其适用于网络规模较大的情况 trainbfg 函数拟合 收敛较快 较大 计算量随网络规模的增大呈几何增长 traingdx 模式分类 收敛较慢 较小 适用于提前停止的方法 三、节点数 隐层节点数的确定是神经网络设计中非常重要的一个环节,一个具有无限隐层节点的两层BP网络可以实现任意从输入到输出的非线性映射。一般认为,隐层节点数与求解问题的要求、输入输出单元数多少都有直接的关系。而且,隐层节点数过少,则无法产生足够的连接权组合数来满足若干样本的学习;隐层节点数过多,则学习以后网络的泛化能力变差。 确定隐层的节点数有如下几种方法:(1)如果要求逼近的样函数变化剧烈、波动很大,则要求可调整地连接权数多,从而隐层的节点数也应该多一些;(2)如果规定的逼近精度高,则隐含层单元数也应该多一些;(3)可考虑开始时放入较少的隐含层单元,根据以后的学习情况逐渐增加; 总之,若隐层节点数太少,网络可能根本不能训练或网络性能很差; 若隐层节点数太多,虽然可使网络的系统误差减小,但一方面使网络训练时间延长,另一方面,训练容易陷入局部极小点而得不到最优点,也是训练时出现“过拟合”的内在原因。因此,合理隐层节点数应在综合考虑网络结构复杂程度和误差大小的情况下用节点删除法和扩张法确定。 隐层的节点数与求解问题的要求,输入输出单元数多少有关。对于模式识别/分类的节点数可按下列公式设计其中n为输入节点数目;m为输出节点数目;a为1-10之间的常数。这里n为1,m为1,N应为3-12。不妨设为10。 四、它参数设置 (1)步长:步长,即学习速率,它决定每一次循环训练中所产生的权值变化量。步长太小,收敛就非常慢。步长太大,可能会导致网络的瘫痪和不稳定。这里我们令lr为0.01。 (2)结束参数:设置最大重复次数epochs为10000次,精度goal达到0.0001。精度过高时收敛过快。 五、实验过程及结果 学习前(选择初始权值时)神经网络的输出曲线与实际函数的曲线对比图 图1 学习前输出曲 学习后(选择初始权值时)神经网络的输出曲线与实际函数的曲线对比图 图2 学习后输出曲线 图3误差的变化曲线图 六、各个参数对网络的影响 1、神经元数目N不同 图4 N=5时网络输出 图5 N=50时网络输出 增加隐层节点数对改进逼近效果的作用并不很明显。但是增加隐层节点会增加精度、增加训练时间,在本题中

文档评论(0)

lyxbb + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档