- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
研究实验2报通告范一一单入单出BP人工神经网络及算法
研究
?研究问题描绘:
用BP方法实现一个单输入单输出的函数的逼近。假定变换函数的输出范围在0到1之间。函数取以下3个:
f(x)=e^,0.2x0.8
f(x)=0.50.3*sinx,0Ex
乞1
f(x)=0.50.3*sin(2*x),0空x乞1
?网络构造:
三层前向神经网络
根据逼近定理知,只含一个隐层的前向网络(即三层前向神经网络)是一个通用的逼
近器,能够随意逼近函数f,因此,在此题中采用三层前向神经网络,即输入层(x0,y0),—
个隐层(x1,y1),输出层(x2,y2)。
?网络构造
由于要逼近的函数为单输入单输出函数,故输出层只有一个节点;输入层除了一
个样本输入点外,还有一个阈值单元,因此能够看作是两个输入节点;隐层的节点个数p
能够在程序运行时进行选择,以适应和测试不同的逼近效果。由输入层至隐层的权矩阵记
为W0,由隐层到输出层的权矩阵记为W1。
整个网络的构造初步设计如下列图所示:(略)
三?算法实现
本实验用C++程序实现该算法。报告中所给出的实验数据均是运行C++程
序所得的结果,然后将这些结果在matlab中画出对应图形。
1?标准BP算法(无动量项):
根据公式:(〉为学习率)
WjUk1)=w,j4,l(k^
:E/::w;,f,l(k)
-w,J4,l(k^
v:「P,j(k)y;:(k)
f
l
l
l
[yp,j(k)—tp,j]f[X
p,j(k)]
l=M-1
6;j(k)
=」
N
F[xP,j(k)臣n去P:(k)wj7(k)l=M—2,...,1
编写程序,程序履行时允许选择:样本个数
p,隐层节点个数midnumber,
学习速率step,训练过程结束条件(即训练结束时允许的最大误差)
enderr。
2?加动量项的BP算法
基来源理同上,仅在标准
BP算法的基础上,对权矩阵的改正增添动量项,
程序履行时允许选择:样本个数
p,隐层节点个数midnumber
,学习速率step,
训练过程结束条件(即训练结束时允许的最大误差
)
,以及动量因子
moti
enderr
四?训练结果:
对不同的函数逼近进行训练获得不同的训练结果,下面分别进行议论:
1.f(x)=e?,0.2三x乞0.8
(1.)样本个数取为10,隐层节点数取为10,步长0.4,终止误差设为0.001,无动量项运行结果如下:
最终误差:
0.000
训练次数:1850
-0.601838
-1.30367
■-1
.23252
1.01428
)-0.601838
-2.00658
1.
01428
1-0.601838
-2.00658
1.
01428
-0.601838
-2.00658
1.
01428
-0.601838
1.
01428
W0=
-2.00658
01428
-0.601838
-2.00658
1.
1.
01428
-0.601838
-2.00658
1.
01428
-0.601838
-2.00658
■.10.1428
■-0.601838
-2.00658
权值矩阵为:
(这里的权矩阵的取值比较齐整,剖析其原因是因为在初始化权矩阵的时候,并
没有为其赋予随机值,而是分别赋予了相同的0到0.1
性,故每次经过梯度法所求得的权值的变化量是相同的,
齐性。)
逼近效果图:
之间的值。又由于网络构造的对称进而致使了结果中权值取值的整
(图中蓝线为原函数图像,红x为由该网络进行逼近获得的结果)
(2.)改变隐层节点数:
当隐层节点数减少为5,其余设置不变时,要达到终止误差需要进行的训练次数为5476
次。
当隐层节点数增加为20,其余设置不变时,要达到终止误差需要进行的训练次数为
29167次0
当隐层节点数增加为50,其余设置不变时,要达到终止误差需要进行的训练次数为
73677次o
能够看出,此题中增加隐层节点数对改良逼近效果的作用并不很显然。隐层节点取20
和50时所用的训练次数比隐层节点取10时要大。可见增加隐层节点并不一定能增加精度或减少训练时间,在此题中反而会带来更长的训练时间。
3.)改变步长:
当步长减小为0.2,其余设置不变时,要达到终止误差需要进行的训练次数为18993
次,显然多于步长为0.4的情形。
当步长增加为0.5,其余设置不变时,要达到终止误差需要进行的训练次数为7590次,
少于步长为0.4的情形。
当步长增加为0.8,其余设置不变时,要达到终止误差需要进行的训练次数为4449次,
显然少于步长为0.4的情形。
而当步长增加为1,其余设置不变时,要达到终止误差需要进行的训练次数
只有
3292
次
0
这说明随着步长的增加,训练的次数可能减小,
原创力文档


文档评论(0)