教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 求职职场 >

基于BP神经网络的函数拟合算法研究(3)

来源:网络收集 时间:2025-12-29
导读: (2)网络建立函数:newff()函数,用于建立一个前馈BP神经网络。 (3)网络训练函数:train()函数,它用于训练建立的BP神经网络。 (4)网络仿真函数:sim()函数,它用于仿真训练前后的BP神经网络。 2.6 BP神经

(2)网络建立函数:newff()函数,用于建立一个前馈BP神经网络。

(3)网络训练函数:train()函数,它用于训练建立的BP神经网络。

(4)网络仿真函数:sim()函数,它用于仿真训练前后的BP神经网络。

2.6 BP神经网络训练方法

(1)输入和输出层的设计 。输入的神经元可以根据需要求解的问题和数据表示方式确定。

(2)输出层的维数可根据使用者的要求来确定。如果将BP网络用做分类器,类别模式一共有m个,那么输出层神经元的个数为m或log2m。

(3)隐含层的设计。BP网络有一个重要的定理,即对于任何在闭区间内的一个连续函数都可以用单隐含层的BP网络拟合,因而一个三层BP网络就可以完成任意的n维到m维的映射。

设BP网络的输入层有m个神经元,输出层有n个神经元,隐含层有p个神经元,d(i)为输入层节点,i 1,2,

出层节点k 1,2,,m;d(j)为隐含层节点,j 1,2,,p;d(k)为输,n。xi为d(i)的输入或输出;Hj、hj分别为d(j)的输入、输

*出;Yk、yk分别为d(k)的输入、输出;yk为d(k)的期望输出;wij为d(i)与d(j)之

间的连接权(以下称为隐含层的权值);wjk为d(j)与d(k)之间的连接权(以下称为输出层的权值)。

对于隐含层,有

Hj xiwij (2-4)

i 1m

hj f(Hj) (2-5)

对于输出层,有

Yk hjwjk (2-6)

j 1p

yk f(Yk) (2-7) 当网络实际输出与期望输出之间的全局误差E定义如下: 1m*2 E (yk yk) (2-8) 2k 1

将以上误差定义式展开到隐含层,则有: p1m1m*2*2 E [f(Yk) yk] [f( hjwjk) yk] (2-9) 2k 12k 1j 1

进一步展开至输入层,得到

ppm1m1m*2*2E {f[ f(Hj)wjk] yk} {f[ f( xiwij)wjk] yk} (2-10) 2k 12k 1j 1j 1i 1

从上式可以看出,网络输入误差是各层权值wij、wjk的函数,因此调整权值可改变误差E。显然,调整权值的原则是使误差不断地减小,因此应使权值的调整量与误差的梯度下降成正比,故而有:

wjk E wjk (2-11)

wij E wij (2-12)

上式中负号表示梯度下降,常数 (0,1)表示比例系数,在训练中反映了学习速率。

3 基于BP神经网络的函数拟合算法设计与实现

3.1面向函数拟合的BP网络结构

下面设计BP神经网络,用于对非线性函数的拟合。通过各个参数的设置,观察BP神经网络对非线性函数拟合的效果。

3.1.1 函数问题的提出

对待拟合的函数进行采样,生成训练样本集,画出要拟合的非线性函数图像: 置k = 1为非线性函数频数,采样点为p=[-1:.05:1] ,即在-1到1之间每隔0.05开始采样,将其作为输入样本。非线性函数为t = 2*cos(k*pi*p),t是p的函数,计算上面采样点相对应的函数值,将其作为目标样本。接下来,画出要拟合的非线性函数图像:

plot(p,t,'-') %画出要拟合的函数图像

title('要拟合的函数图像 '); %图像的标题

xlabel('时间'); %x轴变量的含义

ylabel('非线性函数'); %y轴的含义

得到函数图像如图6所示:

图3-1 非线性函数图像

3.1.2 建立BP神经网络

本次实验利用newff建立神经网络,n = 10表示神经元个数:

net = newff(minmax(p),[n,1],{'tansig' 'purelin'},'trainlm');

其中newff为构造前向网络的函数;minmax用于求数组的最小值和最大值,在这里可表示输入的上限与下限;trainlm为训练函数梯度下降法,还可选traingdm :带动量梯度下降改进型;tansig为激活函数,它正切S型传递函数。第二层输出激活函数为线性激活purelin;[n,1]表示第一层有n个神经元,第二层有1个神经元,n是可调节的隐层节点数目。

3.1.3 网络仿真

利用sim函数进行网络仿真,训练BP网络,画出仿真图形和原函数的图形。根据仿真结果观察BP网络对样本的拟合能力。

y1=sim(net,p) %网络仿真,仿真训练BP网络

figure;

plot(p,t,'-',p,y1,'--') %画出图像

title('未训练网络的输出结果');

xlabel('时间');

ylabel('仿真输出-- 原函数-');

得到的结果如图7所示:

图3-2 仿真曲线和原函数曲线

从图像上可以看出,使用newff建立BP神经网络的时候,所取的权值和阈值都是随机的,所以输出结果很差,两个函数的图像相差很多,根本达不到函数拟合的目的,并且每次运行的结果也有所不同。

3.1.4 网络测试

基于上述实验结果,我们需要训练网络。我们利用train函数进行训练,分别设置训练时间为50个单位时间,设计训练目标的误差小于0.01,开始训练并观察实验结果:

net.trainparam.epochs=50; %设计训练时间为50个单位时间

net.trainparam.goal=0.01; %设计训练目标的误差小于0.01

…… 此处隐藏:495字,全部文档内容请下载后查看。喜欢就下载吧 ……
基于BP神经网络的函数拟合算法研究(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/118709.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)