教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

matlab辅助神经网络设计(7)

来源:网络收集 时间:2026-08-29
导读: 下面我们给出两层网络结构示意简图4.3,并以此探讨BP算法。 BP网络的学习过程主要由以下四部分组成: 1)输入样本顺传播 输入样本传播也就是样本由输入层经中间层向输出层传播计算。这一过程主要是 输入样本求出它

下面我们给出两层网络结构示意简图4.3,并以此探讨BP算法。 BP网络的学习过程主要由以下四部分组成: 1)输入样本顺传播

输入样本传播也就是样本由输入层经中间层向输出层传播计算。这一过程主要是

输入样本求出它所对应的实际输出。

① 隐含层中第i个神经元的输出为

?R??a1i?f1??w1ijpj?b1i???j?1?② 输出层中第k个神经元的输出为:

i?1,2,?,s1 (4.1)

a2k?S1???f2?wa?b2k?,??2ki1i?i?1?i?1,2,?s2 (4.2)

其中f1(·), f2 (·)分别为隐含层的激励函数。 2)输出误差逆传播

在第一步的样本顺传播计算中我们得到了网络的实际输出值,当这些实际的输出值与期望输出值不一样时,或者说其误差大于所限定的数值时,就要对网络进行校正。

首先,定义误差函数

1s22E(w,b)=?(tk?a2k) (4.3)

2k?1其次,给出权值的变化 ① 输出层的权值变化

从第i个输入到第k个输出的权值为:

?w2ki????E????ki?a1i (4.4) ?w2ki其中:

?ki?ekf2' (4.5)

ek?lk?a2k (4.6)

② 隐含层的权值变化

21

从第j个输入到第i个输出的权值为:

?wij????E????ij?pj?w1ij0???1 (η为学习系数)

(4.7)

其中:

?ij?ei?f1' (4.8)

ei???ki?w2ki (4.9)

k?1s2由此可以看出:①调整是与误差成正比,即误差越大调整的幅度就越大。②调整量与输入值大小成比例,在这次学习过程中就显得越活跃,所以与其相连的权值的调整幅度就应该越大,③调整是与学习系数成正比。通常学习系数在0.1~0.8之间,为使整个学习过程加快,又不会引起振荡,可采用变学习率的方法,即在学习初期取较大的学习系数随着学习过程的进行逐渐减小其值。

最后,将输出误差由输出层经中间层传向输入层,逐层进行校正。 3)循环记忆训练

为使网络的输出误差尽可能的小,对于BP网络输入的每一组训练样本,一般要经过数百次甚至上万次的反复循环记忆训练,才能使网络记住这一样本模式。

这种循环记忆训练实际上就是反复重复上面介绍的输入模式正向传播和输出误差逆传播过程。

4)学习结束的检验

当每次循环记忆结束后,都要进行学习是否结束的检验。检验的目的主要是检查输出误差是否已经符合要求。如果小到了允许的程度,就可以结束整个学习过程,否则还要进行循环训练。

三、BP网络的训练

对BP网络进行训练时,首先要提供一组训练样本,其中每个样本由输入样本和输出对组成。当网络的所有实际输出与其理想输出一致时,表明训练结束。否则,通过修正权值,使网络的实际输出与理想输出一致。

22

实际上针对不同具体情况,BP网络的训练有相应的学习规则,即不同的最优化算法,沿减少理想输出与实际输出之间误差的原则,实现BP网络的函数逼近、向量分类和模式识别。以图4.3为例来说明BP网络训练的主要过程。

图4.3 含一个隐含层的BP网络结构

首先:网络初始化,构造合理的网络结构(这里我们采用图4.3的网络结构),取可调参数(权和阀值)为[-1,1]上服从均匀分布随机数,并取定期望误差、最大循环次数和修正权值的学习率的初始值。

其次,利用相应的BP网络学习规则对网络进行训练,求得权值修正后的误差平方和。

最后,检查网络误差平方和是否降低到期望误差之下,若是,训练结束,否则继续。

四、重要BP神经网络函数的使用方法

函数initff( )和simuff可以用来初始化和仿真不超过三层的前馈型网络。函数trainbp( )、trainbpx( )、trainlm( )可用来训练BP网络。其中trainlm( )的训练速度最快,但它需要更大的存储空间,也就是说它是以空间换取了时间;trainbpx( )的训练速度次之;trainlm( )最慢。

1.初始化函数initff( )

函数initff( )的主要功能就是对至多三层的BP网络初始化。其使用格式有多种,现列如下:

[w,b]=initff(p, s, f)

[w1, b1, w2, b2]=initff(p, s1, f1, s2, f2)

[w1, b1, w2, b2, w3, b3]=initff(p, s1, f1, f2, s3, f3)

23

[w, b]=initff(p, s, t)

[w1,b1,w2,b2]=initff(p, s1, f1, s2, t)

[w1, b1, w2, b2, w3, b3]=initff(p, s1, f1, s2, f2, s3, t)

[w, b]=initff(p, s, f)可得到s个神经元的单层神经网络的权值和阀值,其中p为输入向量,f为神经元的激励函数。

BP网络有一个特点很重要,即p中的每一行中必须包含网络期望输入的最大值和最小值,这样才能合理地初始化权值和阀值。

2.仿真函数simuff( )

BP网络是由一系列网络层组成,每一层都从前一层得到输入数据,函数simuff( )可仿真至多三层前馈型网络。对于不同的网络层数,其使用格式为:

a=simuff(p, w1, b1, f1)

a=simuff(p, w1, b1, f1, w2, b2, f2)

a=simuff(p, w1, b1, f1, w2, b2, f2, w3, b3, f3)

以上三式分别为单层、双层和三层网络结构的仿真输出。 3.训练函数

关于前面所提到的几种BP网络训练函数,在这里只介绍其中之一:trainbp( )。

函数trainbp( )利用BP算法训练前馈型网络。trainbp( )函数可以训练单层、双层和三层的前馈型网络,其调用格式分别为:

[w, b, te, tr]=trainbp(w, b, f′,p, t, tp)

[w1, b1, w2, b2, te, tr]=trainbp(w1,b1, f1′,w2, b2, f2′,p, t, tp)

[w1,b1,w2,b2,w3,b3,te,tr]=trainbp(w1, b1, f1′,w2, b2, f2′,w3, b3, f3′,p, t, tp)

可选训练参数tp内的四个参数依次为:

·tp(1)指定两次显示间的训练次数,其缺省值25; ·tp(2)指定训练的最大次数,其缺省值100; ·tp(3)指定误差平方和指标,其缺省值0.02; ·tp(4)指定学习速率,其缺省值0.01;

24

只有网络误差平方和降低到期望误差之下,或者达到了最大训练次数,网络才停止学习。学习速率指定了权值与阀值的更新比例,较小学习速率会导致学习时间较长,但可提高网络权值收敛效果。

五、BP网络的应用举例

BP网络的函数逼近举例:设计一个BP网络,其隐含层神经元的激励函数为双曲正切函数,输出层神经元的激励函数为线性函数,学习样本为21组单输入矢量,理想输出为相应的单输出矢量。

输入矢量为: p=-1:0.1:1; 理想输出矢量为:

t=[-0.96 -0.577 -0.0729 0.377 0.641 0.66 0.461 0.1336 -0.201 -0.434 -0.5 -0.393 -0.1647 0.0988 0.3072 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.3201];

输入输出的函数关系曲线: plot(p,t) xlabel('Input') ylabel('Output')

0.80.60.40.2Output0-0.2-0.4-0.6-0.8-1-1-0.8-0.6-0.4-0.20Input0.20.40.60.81 图4.4 输入输出关系

利用输入和理想输出进行BP神经网络初始化:

[w1,b1,w2,b2]=initff(p,5,'tansig',t,'purelin')

25

…… 此处隐藏:1635字,全部文档内容请下载后查看。喜欢就下载吧 ……
matlab辅助神经网络设计(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/518856.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)