BP神经网络原理及应用
1 人工神经网络简介 1.1生物神经元模型
神经系统的基本构造是神经元(神经细胞),它是处理人体内各部分之间相 互信息传递的基本单元。据神经生物学家研究的结果表明,人的大脑一般有
1010?1011个神经元。每个神经元都由一个细胞体,一个连接其他神经元的轴突
和一些向外伸出的其它较短分支——树突组成。轴突的功能是将本神经元的输出信号(兴奋)传递给别的神经元。其末端的许多神经末梢使得兴奋可以同时送给多个神经元。树突的功能是接受来自其它神经元的兴奋。神经元细胞体将接受到的所有信号进行简单地处理后由轴突输出。神经元的树突与另外的神经元的神经末梢相连的部分称为突触。
1.2人工神经元模型
神经网络是由许多相互连接的处理单元组成。这些处理单元通常线性排列成 组,称为层。每一个处理单元有许多输入量,而对每一个输入量都相应有一个相关
联的权重。处理单元将输入量经过加权求和,并通过传递函数的作用得到输出量,
再传给下一层的神经元。目前人们提出的神经元模型已有很多,其中提出最早且影
响最大的是1943年心理学家McCulloch和数学家Pitts在分析总结神经元基本特性的基础上首先提出的M-P模型,它是大多数神经网络模型的基础。
Yj(t)?f(?wjixi??j) (1.1)
i?1n式(1.1)中,
j为神经元单元的偏置(阈值),wji为连接权系数(对于激发状态,
wji取正值,对于抑制状态,wji取负值),n为输入信号数目,Yj为神经元输出,
t为时间,f()为输出变换函数,有时叫做激发或激励函数,往往采用0和1二值
函数或S形函数。
1.3人工神经网络的基本特性
人工神经网络由神经元模型构成;这种由许多神经元组成的信息处理网络具有并行分布结构。每个神经元具有单一输出,并且能够与其它神经元连接;存在许多(多重)输出连接方法,每种连接方法对应一个连接权系数。严格地说,人工神经网络是一种具有下列特性的有向图:
(1)对于每个节点存在一个状态变量xi;
(2)从节点i至节点j,存在一个连接权系数wji; (3)对于每个节点,存在一个阈值j;
(4)对于每个节点,定义一个变换函数fj(xi,wji,?j),i?j,对于最一般的情况,此函数取fj(?wjixi??j)形式。
i1.4 人工神经网络的主要学习算法
神经网络主要通过两种学习算法进行训练,即指导式(有师)学习算法和非指导式(无师)学习算法。此外,还存在第三种学习算法,即强化学习算法;可把它看做有师学习的一种特例。 (1)有师学习 有师学习算法能够根据期望的和实际的网络输出(对应于给定输入)间的差来调整神经元间连接的强度或权。因此,有师学习需要有个老师或导
师来提供期望或目标输出信号。有师学习算法的例子包括 规则、广义规则或反向传播算法以及LVQ算法等。
(2)无师学习 无师学习算法不需要知道期望输出。在训练过程中,只要向神经网络提供输入模式,神经网络就能够自动地适应连接权,以便按相似特征把输入模式分组聚集。无师学习算法的例子包括Kohonen算法和Carpenter-Grossberg自适应共振理论(ART)等。
(3)强化学习 如前所述,强化学习是有师学习的特例。它不需要老师给出目标输出。强化学习算法采用一个“评论员”来评价与给定输入相对应的神。
2 BP神经网络原理 2.1 基本BP算法公式推导
基本BP算法包括两个方面:信号的前向传播和误差的反向传播。即计算实际输出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。
?1 a1 ?… x1 … 输入变量 ? … o1 ?i wki ak 输出xj wij … ? … ?… ok变 量 ?q aL ?输出层 xM 输入层 ? 隐含层 oL
图2-1 BP网络结构
Fig.2-1 Structure of BP network
图中:
wijxj表示输入层第j个节点的输入,j=1,…,M;
表示隐含层第i个节点到输入层第j个节点之间的权值;
?i表示隐含层第i个节点的阈值;
?(x)表示隐含层的激励函数;
wkiak表示输出层第k个节点到隐含层第i个节点之间的权值,i=1,…,q;
表示输出层第k个节点的阈值,k=1,…,L; 表示输出层的激励函数;
??x?表示输出层第k个节点的输出。 (1)信号的前向传播过程 隐含层第i个节点的输入neti:
neti??wijxj??ij?1Mok (3-1)
隐含层第i个节点的输出yi:
yi??(neti)??(?wijxj??i)j?1M (3-2)
输出层第k个节点的输入netk:
netk??wkiyi?ak??wki?(?wijxj??i)?aki?1i?1j?1qqM (3-3)
输出层第k个节点的输出ok:
M?q?ok??(netk)??(?wkiyi?ak)????wki?(?wijxj??i)?ak?i?1j?1?i?1? (3-4)
q(2)误差的反向传播过程
误差的反向传播,即首先由输出层开始逐层计算各层神经元的输出误差,然后根据误差梯度下降法来调节各层的权值和阈值,使修改后的网络的最终输出能接近期望值。
对于每一个样本p的二次型误差准则函数为Ep:
1LEp??(Tk?ok)22k?1 (3-5)
系统对P个训练样本的总误差准则函数为:
1PLE???(Tkp?okp)22p?1k?1 (3-6)
根据误差梯度下降法依次修正输出层权值的修正量Δwki,输出层阈值的修正量Δak,隐含层权值的修正量Δwij,隐含层阈值的修正量
?E?wki????wki??i。
?E?E?E?w????ak?????i???ij?wij?ak;??i (3-7) ;;输出层权值调整公式:
?w?E?E?netk?E?ok?ki????w????w???netkki?netkki?ok?netk?wki 输出层阈值调整公式:
?a?E?E?netk?E?k????a??????ok?netkk?netk?ak?ok?netk?ak 隐含层权值调整公式:
?wij????E?E?neti?E?y?w???net???i?netiij?i?wij?yi?neti?wij 隐含层阈值调整公式:
???E?neti?E?yi?netii????E????????i?neti??i?yi?neti??i 又因为:
?E??PL??(Tpp?ok?ok)kp?1k?1 ?netk?netk?neti?neti?w?yi?1ki,?ak,?w?xj?1ij,??i ?EPL????(Tp?yk?opk)??'(netk)?wkiip?1k?1 ?yi?net???(neti)i ?ok?net??'(netk)k 所以最后得到以下公式:
PL?wki????(Tpk?opk)??'?netk??yip?1k?1 (3-8) (3-9)
3-10)
3-11)
3-12)
3-13)
3-14)
3-15)
3-16)
3-17) ( ( ( ( ( ( ( (