实验四 BP神经网络模拟sin函数.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验四 BP神经网络模拟sin函数 问题描述 BP神经网络模拟sin函数 根据人工神经网络学习算法,实现正弦曲线的拟合。要求能随机自动生成数量为n的正弦值作为训练集,并根据训练集拟合曲线,最后能通过输入x值测试理论与拟合sinx的拟合度。 设计思想 思维学普遍认为,人类大脑的思维分为抽象(逻辑)思维、形象(直观)思维和灵感(顿悟)思维三种基本方式。 逻辑性的思维是指根据逻辑规则进行推理的过程;它先将信息化成概念,并用符号表示,然后,根据符号运算按串行模式进行逻辑推理;这一过程可以写成串行的指令,让计算机执行。然而,直观性的思维是将分布式存储的信息综合起来,结果是忽然间产生想法或解决问题的办法。这种思维方式的根本之点在于以下两点:1.信息是通过神经元上的兴奋模式分布储在网络上;2.信息处理是通过神经元之间同时相互作用的动态过程来完成的。 人工神经网络就是模拟人思维的第二种方式。这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。 人工神经网络由大量的神经元构成。 这些神经元一般分为三种:输入层神经元,隐层神经元和输出层神经元。 输入层:单元i的输入: 单元数量:d 单元i的输出: 单元i的激活函数:线性函数 隐 层:单元j的输入: 单元数量: 单元j的输出: 单元j的激活函数:非线性函数 输出层:单元k的输入: 单元数量:c 单元k的输出: 单元k的激活函数:非线性函数 程序设计 编译环境 使用C#语言编写,编译器为VS2008,运行环境为Windows+.NetFramework3.5 程序运行流程 运行程序后,单击“训练”按钮,开始训练,训练完成后可以看到函数图像与各权值,输入x的值可以查看预测值与准确值。 类设计 神经网络类的定义: class NeuralNetwork { #region Instance Fields //private fields private int num_in; private int num_hid; private int num_out; private double[,] i_to_h_wts; private double[,] h_to_o_wts; private double[] inputs; private double[] hidden; private double[] outputs; private double learningRate = 0.3; private Random gen = new Random(); #endregion #region Constructor /// summary /// Creates a new NeuralNetwork, using the parameters /// provided /// /summary /// param name=num_inNumber of inputs nodes/param /// param name=num_hidNumber of hidden nodes/param /// param name=num_outNumber of output nodes/param public NeuralNetwork(int num_in, int num_hid, int num_out) { this.num_in = num_in; this.num_hid = num_hid; this.num_out = num_out; i_to_h_wts = new double[num_in + 1, num_hid]; h_to_o_wts = new double[num_hid + 1, num_out]; inputs = new double[num_in + 1]; hidden = new double[num_hid + 1];

文档评论(0)

yurixiang1314 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档