- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)