西南交通大学本科毕业设计(论文) 第28页
?
图3-5 BP神经元模型
3.4.2 BP网络模型
BP网络的结构如图3—18所示。由图可见,DP网络是一种具有三层或三层以上神经元的神经网络,包括输入层、中间层(隐层)和输出层。上下层之间实现全连接,而每层神经元之间无连播。当一对学习样本提供给网络后,神经元的激活值从输入层经各中间层向输出层传播,在输出层的各神经元获得网络的输入响应。接下来,按照减少目标输出与实际输出之间误差的方向,从输出层反向经过各中间层回到输入层,从而各层修正各连接权值,这种算法称为“误差反向传播算法”,即BP算法。随着这种误差逆向的传播修正不断进行,网络对输入模式响应的正确率也不断上升。
图3-6 神经网络连接模型
与感知器模型不同的是,由于误差反向传播中合对传递函数进行求导计算,BP网络的传递函数要求必须是可微的,所以不能值用感知器网络中的硬阀值传
西南交通大学本科毕业设计(论文) 第29页 递函数,常用的有Sigmoid型的对数、正切函数或线性函数。由于传递函数是处处可微的,所以对于BP网络来说,一方面,所划分的区域不再是一个线性划分,而是由一个非线性超平面组成的区域,它是比较平滑的曲而,因而它的分类比线性划分更加精确,容错性也比线性划分更好;另一方面,网络可以严格采用梯度下降法进行学习,权值修正的解析式十分明确。
3.4.3 BP网络学习规则
这里不讨论学习规则的数学推导过程,只给出学习过程及步骤,以供设计与分析DP网络时作为参考。我们以一个三层BP网络为例,介绍BP网络的学习过程及步骤。
在介绍之前,首先对各符号的形式及意义进行说明。 网络输入向量Pk?(a1,a2,?,an); 网络目标向量Tk?(y1,y2,?,yq);
中间层单元输入向量Sk?(s1,s2,?,sp),输出向量Bk?(b1,b2,?,bp); 输出层单元输入向量Lk?(l1,l2,?,lq),输出向量Ck?(c1,c2,?,cq); 输出层至中间层的连接权wij,i?1,2,?,n,j?1,2,?,p; 中间层至输出层的连接权vjt,j?1,2,?,p,t?1,2,?,p; 中间层各单元的输出阀值?j,j?1,2,?,p; 输出层各单元的输出阀值?j,j?1,2,?,p; 参数k?1,2,?,m。
(1)初始化。给每个连接权值wij、vjt、阀值?j与?t赋予区间(-1,1)内的随机值。
kkk(2)随机选取一组输入和目标样本Pk?(a1k,a2,?,an)、Tk?(s1k,s2,?,skp)提供给网络。
kk(3)用输入样本Pk?(a1k,a2,?,an)、连接权wij和阀值?j计算中间层各单
元的输入sj,然后用sj通过传递函数计算中间层各单元的输出bj。
sj??wijai??j j?1,2,?,p
nbj?f(sj) j?1,2,?,p
(4)利用中间层的输出bj、连接权vjt和阀值?t计算输出层各单元的输出Lt,然后通过传递函数计算输出层各单元的响应Ct。
i?1Lt??vjtbj??t t?1,2,?,q
pCt?f(Lt) t?1,2,?,q
kk(5)利用网络目标向量Tk?(y1k,y2,?,yq),网络的实际输出Ct,计算输出
j?1层的各单元一般化误差dtk。
西南交通大学本科毕业设计(论文) 第30页
dtk?(ytk?Ct)*Ct(1?Ct) t?1,2,?,q
(6)利用连接权vjt、输出层的一般化误差dt和中间层的输出bj计算中间层各单元的一般化误差ekj。
kje?[?dt*vjt]bj(1?bj)
(7)利用输出层各单元的一般化误差dtk与中间层各单元的输出bj来修正连接权vjt和阀值?t。
t?1qvjt(N?1)?vjt(N)?a*d1k*bj
?t(N?1)??t(N)?a*dtk
t?1,2,?,q j?1,2,?,p,0?a?1
(8)利用中间层各单元的一般化误差ekj,输入层各单元的输入
Pk?(a1,a2,?,an)来修正连接权wij和阀值?j。
kwij(N?1)?wij(N)??ekjai
?j(N?1)??j(N)??ekj
i?1,2,?,n,j?1,2,?,p,0???1
(9)随机选取下一个学习样本向量提供给网络,返回到步骤(3),直到m个训练样本训练完毕。
(10)重新从M个学习样本中随机选取一组输入和目标样本,返回步骤(3),直到网络全局误差E小于预先设定的一个极小值,即网络收敛。如果学习次数大于预先设定的值,网络就无法收敛。 (11)学习结束。
可以看出,在以上学习步骤中,(7)(10)步则用于完成训练和收敛过程。(8)步为网络误差的“逆传播过程”,
通常,经过训练的网络还应该进行性能测试。测试的方法就是选择测试样本向量,将其提供给网络,检验网络对其分类的正确性。测试样本向量中应该包含今后网络应用过程中可能遇到的主要典型模式。这些样本可以通过直接测取得到,也可以通过仿真得到,在样本数据较少或者较难得到时,也可以通过对学习样本加上适当的噪声或按照一定规则插值得到。为了更好地验证网络的泛化能力,一个良好的测试样本集中不应该包含和学习样本完全相同的模式。
3.4.4 BP网络设计技巧
1)输入和输出层的设计
输入的神经元可以根据需要求解的问题和数据表示方式确定。如果输入的是根拟信号波形,那么输入层可以根据波形的采样点数目决定输入单元的维数,也可以用一个单元输入,这时输入样本为采样的时间序列;如果输入为图像,则输
西南交通大学本科毕业设计(论文) 第31页 入单元可以为图像的像素,也可以是经过处理的图像特征。
输出层的维数可根据使用者的要求确定。如果将BP网络用做分类器,有m个,那么输出层神经元的个数为m或log2m。 2)隐层的设计
对于BP网络,有一个非常重要的定理。即对于任何在闭区间内的一个连续函数都可以用单隐层的BP网络迫近,因而一个三层BP网络就可以完成任意的M维到闭经的映射。
隐层的神经元数目选择是一个十分复杂的问题,往往需要根据设计者的经验和多次实验来确定,因而不存在一个理想的解析式来表示。隐单元的数目与问题的要求、输入助出单元的数目都有着直接关系。隐单元数目太多会导致学习时间过长、误差不一定最佳,也会导数容错性差、不能识别以前没有看到的样本,因此一定存在一个最佳的隐单元数。以下3个公式可用于选得最佳隐单元数时的参考公式。
i(1)?Cn?k,其中,k为样本数,n1为隐单元数,n为输入单元数。如果ini?n1,C?0。
(2)n1?n?m?a,其中,m为输出神经元数,n为输入单元数,a为[1,10]之间的常数。
(3)n1?log2n,其中,n为输入单元数。
还有一种途径可用于确定隐单元的数目。首先使隐单元的数目可变,或者放入足够多的隐单元,通过学习将那些不起作用的隐单元剔除,直到不可收缩为止。同样,也可以在开始时放入比较少的神经元,学习到一定次数后,如果不成功则再增加隐单元的数目,直到达到比较合理的隐单元数目为止。
(4)初始值的选取
由于系统是非线性的,初始值对于学习能否达到局部最小和是否能够收敛的结果关系很大。一个重要的要求是:初始权值在输入累加时使每个神经元的状态值接近于零,权值一般取随机数,数值要比较小。输入样本也同样希望进行归一他处理,使那些比较大的输入仍范在传递函数梯度大的地方。
ii?0ni3.4.5.BP网络的不足及改进
在人工神经网络的应用中,绝大部分的神经网络模型采用了BP网络及其变化形式,但这并不说明BP网络是尽善尽美的,其各种算法依然存在一定的局限性。BP神经网络的不足和改进主要有以下几个方面:
(1)
由于学习速率是固定的,因此,网络的收敛速度慢,需要较长的训练时间。对于一些复杂的问题,BP算法需要的训练时间可能会
西南交通大学本科毕业设计(论文) 第32页
非常长。这主要是由于学习速率太小造成的,对于这个问题,可采用的改进方法有:附加动量项、变化的学习速率或自适应的学习速率。
(2)
BP算法可以使权值收敛到某个值,但并不能保证其为误差平面的全局最小值,这是因为采用梯度下降法可能会产生多个局部最小值。
(3)
网络隐含层的层数和单元数的选择尚无理论上的指导,一般是根据经验或者通过反复试验确定。因此,网络往往存在很大的冗余性,在一定程度上也增加了网络学习的负担。
(4)
网络的学习和记忆具有不稳定性。也就是说,如果增加了学习样本,训练好的网络就需要从头开始重新训练,对于以前的权值和阀值是没有记忆的。
3.4.6 BP神经网络的构建
本小节介绍BP神经网络的构建、初始化、仿真。 1.生成神经网络
训练神经网络之前需要构造一个网络构架,函数newff()就是构造神经网络的。它需要四个输入条件,依次是:由R维的输入样本最大最小值构成的R*2维矩阵、各层的神经元个数、各层神经元的传递函数以及训练用函数的名称。
假设需要构建一个两层的神经网络,其输入向量是二维的,输入向量的范围为[-1 2;0 5],第一层(隐层)有三个神经元,传递函数是tansig();第二层(输出层)是单个神经元,传递函数是线性的,训练函数选取traingd。至此就生成了初始化训练的神经网络。
2.权值初始化
前馈性神经网络在训练之前必须要对权值和阀值进行初始化,newff()函数可以自动完成这一过程,但是无法重新赋新值。如果相重新初始化,可以应用init()函数,使网络恢复到初始化的情况。
3.网络仿真
给定网络结构和输入变量p,就可以应用sim()函数计算相应的网络输出a。
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库EMD信号分析方法端点效应分析(8)在线全文阅读。
相关推荐: