基于BP神经网络的曲线拟合.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于BP神经网络的曲线拟合

神经网络实验报告 基于BP网络的曲线拟合 学 院: 控制学院 姓 名: 李嘉頔 学 号: 2015年6月 一、实验目的 ⑴ 掌握BP神经网络的权值修改规则 ⑵ 利用BP网络修改权值对y=sin(x)曲线实现拟合 二、实验要求 人工神经网络是近年来发展起来的模拟人脑生物过程的人工智能技术,具有自学习、自组织、自适应和很强的非线性映射能力。在人工神经网络的实际应用中,常采用BP神经网络或它的变化形式,BP神经网络是一种多层神经网络,因采用BP算法而得名,主要应用于模式识别和分类、函数逼近、数据压缩等领域。 BP网络是一种多层前馈神经网络,由输入层、隐层和输出层组成。层与层之间采用全互连方式,同一层之间不存在相互连接,隐层可以有一个或多个。BP算法的学习过程由前向计算过程和误差反向传播过程组成,在前向计算过程中,输入信息从输入层经隐层逐层计算,并传向输出层,每层神经元的状态只影响下一层神经元的状态。如输出层不能得到期望的输出,则转入误差反向传播过程,误差信号沿原来的连接通路返回,通过修改各层的神经元的权值,使得网络系统误差最小,最终实现网络的实际输出与各自所对应的期望输出逼近。 三、实验内容 3.1 训练数据导入 要对BP网络进行训练,必须准备训练样本。对样本数据的获取,可以通过用元素列表直接输入、创建数据文件,从数据文件中读取等方式,具体采用哪种方法,取决于数据的多少,数据文件的格式等。 本文采用直接输入100个样本数据的方式,同时采用归一化处理,可以加快网络的训练速度。将输入x和输出y都变为-1到1之间的数据,归一化后的训练样本如下图: 3.2 网络初始化 根据系统输入输出序列,确定网络输入层节点数为1,隐含层节点数H为20,输出层节点数为1。初始化输入层、隐含层和输出层神经元之间的连接权值,,初始化隐含层阈值,输出层阈值,给定学习速率,和,给定算法迭代次数inum和最大可接受误差error,同时给定神经元激励函数sigmoid。 3.3 前向输出计算 根据输入变量x,输入层和隐含层间连接权值和隐含层阈值,计算隐含层输出P: 其中n为输入层节点数,本实验中取1;l为隐含层节点数,本实验中取20;f为隐含层激励函数,该函数可设置为多种形式,本实验中所选函数为: 根据隐含层输出P,隐含层和输出层间连接权值和输出层阈值,计算BP神经网络预测输出: 其中m为输出层节点数,本实验中取1。 3.4 权值修正 根据网络预测输入Q和期望输出y,计算网络预测误差e: BP神经网络采用梯度修正法作为权值和阈值的学习算法,从网络预测误差的负梯度方向修正权值和阈值。在本实验采用的sigmoid激励函数下,隐含层和输出层间连接权值和输出层阈值更新公式为: 输入层和隐含层间连接权值和输出层阈值更新公式为: 通过是否达到迭代次数或者错误率是否在可接受范围内来判断算法迭代是否结束,若没有结束,则继续迭代。 四、实验步骤和结果 3.1 数据输入和归一化 %function [x,y,y1,Error]=BPnet(t) %清空环境变量 clc; clear; num=1;%要拟合的曲线试举例 for i=0.01*pi:0.02*pi:2*pi%训练样本 x(num)=i;%输入数据 y(num)=sin(x(num));%期望输出 num=num+1; end num1=size(x,2); max_x=max(x);%训练样本归一化 max_y=max(y); min_x=min(x); min_y=min(y); % 最大最小法(归一化) for i=1:num1 x(i)=2*((x(i)-min_x)/(max_x-min_x))-1; y(i)=2*((y(i)-min_y)/(max_y-min_y))-1; end 3.2 网络结构初始化 H=20;%隐含层神经元个数 w=2*rand(1,H)-1;%初始化隐层权值 v=2*rand(1,H)-1;%初始化输出层权值 t0=2*rand(1,H)-1;%隐层阈值 t1=2*rand(1,1)-1;%输出层阈值 a0=0.4;a1=0.3;u=1;%步长 error=0.0001;err=error; %可接受误

文档评论(0)

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

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

1亿VIP精品文档

相关文档