当前位置:文档之家› BP神经网络原理及应用

BP神经网络原理及应用

BP神经网络原理及应用1 人工神经网络简介1.1生物神经元模型神经系统的基本构造是神经元(神经细胞),它是处理人体各部分之间相互信息传递的基本单元。

据神经生物学家研究的结果表明,人的大脑一般有1011个神经元。

每个神经元都由一个细胞体,一个连接其他神经元的轴突1010和一些向外伸出的其它较短分支——树突组成。

轴突的功能是将本神经元的输出信号(兴奋)传递给别的神经元。

其末端的许多神经末梢使得兴奋可以同时送给多个神经元。

树突的功能是接受来自其它神经元的兴奋。

神经元细胞体将接受到的所有信号进行简单地处理后由轴突输出。

神经元的树突与另外的神经元的神经末梢相连的部分称为突触。

1.2人工神经元模型神经网络是由许多相互连接的处理单元组成。

这些处理单元通常线性排列成组,称为层。

每一个处理单元有许多输入量,而对每一个输入量都相应有一个相关联的权重。

处理单元将输入量经过加权求和,并通过传递函数的作用得到输出量,再传给下一层的神经元。

目前人们提出的神经元模型已有很多,其中提出最早且影响最大的是1943年心理学家McCulloch和数学家Pitts在分析总结神经元基本特性的基础上首先提出的M-P 模型,它是大多数神经网络模型的基础。

)()(1∑=-=ni j i ji j x w f t Y θ (1.1)式(1.1)中,j 为神经元单元的偏置(阈值),ji w 为连接权系数(对于激发状态,ji w 取正值,对于抑制状态,ji w 取负值),n 为输入信号数目,j Y 为神经元输出,t 为时间,f()为输出变换函数,有时叫做激发或激励函数,往往采用0和1二值函数或S形函数。

1.3人工神经网络的基本特性人工神经网络由神经元模型构成;这种由许多神经元组成的信息处理网络具有并行分布结构。

每个神经元具有单一输出,并且能够与其它神经元连接;存在许多(多重)输出连接方法,每种连接方法对应一个连接权系数。

严格地说,人工神经网络是一种具有下列特性的有向图:(1)对于每个节点存在一个状态变量xi ;(2)从节点i 至节点j ,存在一个连接权系数wji ; (3)对于每个节点,存在一个阈值j ;(4)对于每个节点,定义一个变换函数(,,),j i ji j f x w i j θ≠,对于最一般的情况,此函数取()j ji i j if w x θ-∑形式。

1.4 人工神经网络的主要学习算法神经网络主要通过两种学习算法进行训练,即指导式(有师)学习算法和非指导式(无师)学习算法。

此外,还存在第三种学习算法,即强化学习算法;可把它看做有师学习的一种特例。

(1)有师学习 有师学习算法能够根据期望的和实际的网络输出(对应于给定输入)间的差来调整神经元间连接的强度或权。

因此,有师学习需要有个老师或导师来提供期望或目标输出信号。

有师学习算法的例子包括 规则、广义规则或反向传播算法以及LVQ 算法等。

(2)无师学习 无师学习算法不需要知道期望输出。

在训练过程中,只要向神经网络提供输入模式,神经网络就能够自动地适应连接权,以便按相似特征把输入模式分组聚集。

无师学习算法的例子包括Kohonen 算法和Carpenter-Grossberg 自适应共振理论(ART )等。

(3)强化学习 如前所述,强化学习是有师学习的特例。

它不需要老师给出目标输出。

强化学习算法采用一个“评论员”来评价与给定输入相对应的神。

2 BP 神经网络原理 2.1 基本BP 算法公式推导基本BP 算法包括两个方面:信号的前向传播和误差的反向传播。

即计算实际输出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。

图2-1 BP 网络结构Fig.2-1 Structure of BP network图中:jx 表示输入层第j 个节点的输入,j =1,…,M ;ijw 表示隐含层第i 个节点到输入层第j 个节点之间的权值;iθ表示隐含层第i 个节点的阈值;()x φ表示隐含层的激励函数;kiw 表示输出层第k 个节点到隐含层第i 个节点之间的权值,i =1,…,q ;ka 表示输出层第k 个节点的阈值,k =1,…,L ; ()x ψ表示输出层的激励函数;ko 表示输出层第k 个节点的输出。

(1)信号的前向传播过程 隐含层第i 个节点的输入net i :1Mi ij j ij net w x θ==+∑ (3-1)隐含层第i 个节点的输出y i :1()()Mi i ij j i j y net w x φφθ===+∑ (3-2)输出层第k 个节点的输入net k :111()qqMk ki i k ki ij j i ki i j net w y a w w x a φθ====+=++∑∑∑ (3-3)输出层第k 个节点的输出o k :111()()()qq M k k ki i k ki ij j i k i i j o net w y a w w x a ψψψφθ===⎛⎫==+=++ ⎪⎝⎭∑∑∑ (3-4)(2)误差的反向传播过程误差的反向传播,即首先由输出层开始逐层计算各层神经元的输出误差,然后根据误差梯度下降法来调节各层的权值和阈值,使修改后的网络的最终输出能接近期望值。

对于每一个样本p 的二次型误差准则函数为E p :211()2Lp k k k E T o ==-∑ (3-5)系统对P 个训练样本的总误差准则函数为:2111()2P Lp p k k p k E T o ===-∑∑ (3-6)根据误差梯度下降法依次修正输出层权值的修正量Δw ki ,输出层阈值的修正量Δa k ,隐含层权值的修正量Δw ij ,隐含层阈值的修正量iθ∆。

kiki w E w ∂∂-=∆η;k k E a a η∂∆=-∂;ij ij E w w η∂∆=-∂;i i Eθηθ∂∆=-∂ (3-7) 输出层权值调整公式:kikk k k ki k k ki ki w net net o o E w net net E w E w ∂∂∂∂∂∂-=∂∂∂∂-=∂∂-=∆ηηη(3-8)输出层阈值调整公式:k k kk k k k k k k net o net E E E a a net a o net a ηηη∂∂∂∂∂∂∆=-=-=-∂∂∂∂∂∂ (3-9)隐含层权值调整公式:i i iij ij i ij i i ijnet y net E E E w w net w y net w ηηη∂∂∂∂∂∂∆=-=-=-∂∂∂∂∂∂ (3-10)隐含层阈值调整公式:i i ii i i i i i i net y net E E E net y net θηηηθθθ∂∂∂∂∂∂∆=-=-=-∂∂∂∂∂∂ (3-11)又因为:11()P Lp p k k p k k ET o o ==∂=--∂∑∑ (3-12)ikiky w net =∂∂,1k k net a ∂=∂,i j ij net x w ∂=∂,1ii net θ∂=∂ (3-13)11()'()P Lp p k k k ki p k i ET o net w y ψ==∂=--⋅⋅∂∑∑ (3-14))(i iinet net y φ'=∂∂ (3-15)'()kk ko net net ψ∂=∂ (3-16)所以最后得到以下公式:()11()'PLp p ki k k k ip k w T o net y ηψ==∆=-⋅⋅∑∑ (3-17)()11()'PL p p k k k k p k a T o net ηψ==∆=-⋅∑∑ (3-18)()11()'()PLp p ij k k k ki i jp k w T o net w net x ηψφ=='∆=-⋅⋅⋅⋅∑∑ (3-19)()11()'()PLp p i k k k ki i p k T o net w net θηψφ=='∆=-⋅⋅⋅∑∑ (3-20)图2-2 BP算法程序流程图Fig.2-2 The flowchart of the BP algorithm program2.2 基本BP算法的缺陷BP算法因其简单、易行、计算量小、并行性强等优点,目前是神经网络训练采用最多也是最成熟的训练算法之一。

其算法的实质是求解误差函数的最小值问题,由于它采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权值,因而通常存在以下问题:(1)学习效率低,收敛速度慢(2)易陷入局部极小状态2.3 BP 算法的改进2.3.1附加动量法附加动量法使网络在修正其权值时,不仅考虑误差在梯度上的作用,而且考虑在误差曲面上变化趋势的影响。

在没有附加动量的作用下,网络可能陷入浅的局部极小值,利用附加动量的作用有可能滑过这些极小值。

该方法是在反向传播法的基础上在每一个权值(或阈值)的变化上加上一项正比于前次权值(或阈值)变化量的值,并根据反向传播法来产生新的权值(或阈值)变化。

带有附加动量因子的权值和阈值调节公式为:)()1()1(k w mc p mc k w ij j i ij ∆+-=+∆ηδ)()1()1(k b mc mc k b i i i ∆+-=+∆ηδ其中k 为训练次数,mc 为动量因子,一般取0.95左右。

附加动量法的实质是将最后一次权值(或阈值)变化的影响,通过一个动量因子来传递。

当动量因子取值为零时,权值(或阈值)的变化仅是根据梯度下降法产生;当动量因子取值为1时,新的权值(或阈值)变化则是设置为最后一次权值(或阈值)的变化,而依梯度法产生的变化部分则被忽略掉了。

以此方式,当增加了动量项后,促使权值的调节向着误差曲面底部的平均方向变化,当网络权值进入误差曲面底部的平坦区时, δi 将变得很小,于是)()1(k w k w ij ij ∆=+∆,从而防止了0=∆ij w 的出现,有助于使网络从误差曲面的局部极小值中跳出。

根据附加动量法的设计原则,当修正的权值在误差中导致太大的增长结果时,新的权值应被取消而不被采用,并使动量作用停止下来,以使网络不进入较大误差曲面;当新的误差变化率对其旧值超过一个事先设定的最大误差变化率时,也得取消所计算的权值变化。

其最大误差变化率可以是任何大于或等于1的值。

典型的取值取1.04。

所以,在进行附加动量法的训练程序设计时,必须加进条件判断以正确使用其权值修正公式。

训练程序设计中采用动量法的判断条件为:⎪⎩⎪⎨⎧=mc mc 95.00其它)1()(04.1*)1()(-<->k E k E k E k E , E (k )为第k 步误差平方和。

2.3.2自适应学习速率对于一个特定的问题,要选择适当的学习速率不是一件容易的事情。

相关主题