BP算法
- 格式:doc
- 大小:485.00 KB
- 文档页数:11
BP算法
1 BP算法
BP算法可以描述如下(分两步):
(1)工作信号的正向传播:输入信号从输入层经隐层,传向输出层,在输出端产生输出信号,这是工作信号的正向传播。在信号的正向传播过程中权值和阈值是固定不变的,每一层神经元的状态只能影响下一层神经元的状态。如果在输出层不能得到期望的输出,则转入误差信号的反向传播。
(2)误差信号的反向传播:网络的期望输出与实际输出即为误差信号,误差信号由输出端开始逐层向前传播,这是误差信号的反向传播。在误差信号的反向传播过程中,网络的权值和阈值由误差反馈进行调节,通过不断修改权值和阈值使网络的输出更接近期望输出。
下面以含有两个隐层的BP网络为例,推导BP算法。
设输入层为M个输入信号,任一输入信号用m表示。第1隐层为I,表示有I个神经元,任一神经元用i表示。第2隐层为J,表示BP算法
2 有J个神经元,任一神经元用j表示。输出层为P,表示有P个神经元,任一神经元用p表示。
约定:神经元的输入用u表示,输出用v表示,u和v的上标表示层,下标表示某个神经元。如Iiu表示第I层(第1隐层)的第i个神经元的输入。Ii表示第I层(第1隐层)第i个神经元的阈值。IMimw表示第M层(前一层)的第m个输出(?神经元)到第I层的第i个神经元的权值。所有神经元的激励函数均用logsig函数。
设训练样本集为12{,,...,}NXXXX,对应任一训练样本:
12[,,...,],(1,2,...,)TkkkkMXXXXkN的实际输出为:12[,,...,]TkkkkPYyyy,期望输出为12[,,...,]TkkkkPdddd。设n为迭代次数,权值、阈值和实际输出是n的函数。
网络输入训练样本Xk,由工作信号的正向传播过程可得:
1122...IIMIMIMIiikikiMkMiuwxwxwx ()IIiivfu
1MIMIimkmimwx
1()MIMIimkmimfwx
1122...JJIIJIIJIIJjjjjIIjuwvwvwv ()JJjjvfu
1IJIIJjiijiwv
1()IJIIJjiijifwv
1122...PPJJPJJPJJPppppJJpuwvwvwv ()PPkpppyvfu
1JPJJPpjjpjwv
1()JPJJPpjjpjfwv
输出层第p个神经元的误差信号为()()()kpkpkpendnyn,定BP算法
3 义神经元p的误差为21()2kpen,则输出层所有神经元的误差为222212111()(()()...())()22PkkkPkppEnenenenen。不同的网络误差函数E(n)取法不一样
误差信号从后向前传递,在反向传播的过程中,逐层修改联接权值和阈值。下面计算误差信号的反向传播过程:
定义网络误差函数E(n)对各网络层的输入的导数的负数为局部梯度。则第P、J、I层局部梯度分别为:
()()()PpPpEnnun ()()()JjJjEnnun ()()()IiIiEnnun
由上述结果知,P、J、I层总的局部梯度为:
12()()()()PPPPPnnnn 12()()()()JJJJJnnnn 12()()()()IIIIInnnn
(1) 隐层J与输出层P之间的权值修正量
()()()()()()PpPJPPJpjppjunEnEnwnunwn()()PJpjnvn
由WH学习规则:()()()()()PJPJpjpjPJpjEnwnnvnwn
PJPJPJpjpjpjwnwnwn
(2) 隐层I和隐层J之间的权值修正量。
()()()()()()JjJIJJIjijjiunEnEnwnunwn()()JIjinvn BP算法
4 由WH学习规则:()()()()()JIJIjijiJIjiEnwnnvnwn
JIJIJIjijijiwnwnwn
(3) 隐层I和输入层M之间的权值修正量。
()()()()()()IiIMIIMimiimunEnEnwnunwn()()Iikmnxn
由WH学习规则:()()()()()IMIimikmIMimEnwnnxnwn
IMIMIMimimimwnwnwn
(4) 输出层P的阈值修正量
()()()()()()PpPPPpppunEnEnnunn()(1)Ppn()Ppn
由WH学习规则:()()()()PPppPpEnnnn
PPPpppnnn
(5) 隐层J的阈值修正量
()()()()()()JjJJJjjjunEnEnnunn()(1)Jjn()Jjn
由WH学习规则:()()()()JJjjJjEnnnn
JJJjjjnnn
(6) 隐层I的阈值修正量
()()()()()()IiIIIiiiunEnEnnunn()(1)Iin()Iin BP算法
5 由WH学习规则:()()()()IIiiIiEnnnn
IIIiiinnn
下面推导()Ppn、()Jjn、()Iin之间的关系。
()()()PpPpEnnun()()()..()()()kpkpPkpkppenynEnenynun
'().(1).(())()PpkpEnfunen'()(())()PpkpEnfunen
()()()JjJjEnnun1()()()()PPpPJppjunEnunun1()()()()()()PJPpjPJJppjjunvnEnunvnun
'1()(())PPPJJppjjpnwfun'1(())()()PJPPJjppjpfunnwn
()()()IiIiEnnun1()()()()JJjJIjjiunEnunun1()()()()()()JIJjiJIIjjiiunvnEnunvnun
'1()()(())JJJIIjjiijnwnfun'1(())()()JIJJIijjijfunnwn
将以上结果作一整理:
(1) '()()(())()PPppkpEnnfunen p=1,2,…,P
(2) '1()(())()()PJJPPJjjppjpnfunnwn j=1,2,…,J
(3) '1()(())()()JIIJJIiijjijnfunnwn i=1,2,…,I
(4) ()()()PJPJpjpjwnnvn p=1,2,…,P ;j=1,2,…,J
(5) ()()()JIJIjijiwnnvn j=1,2,…,J ;i=1,2,…,I BP算法
6 (6) ()()()IMIimikmwnnxn i=1,2,…,I ;m=1,2,…,M
(7) ()()PPppnn p=1,2,…,P
(8) ()()JJjjnn j=1,2,…,J
(9) ()()IIiinn i=1,2,…,I
将上述9个式子整理成矩阵形式:
(1)'()()(())()PPppkpEnnfunen p=1,2,…,P
12()()()()PPPPPnnnn'11'22'()(())()()(())()()(())()PkPkPPkPEnfunenEnfunenEnfunen'().*(())()PkEnfunen
(2)'1()(())()()PJJPPJjjppjpnfunnwn j=1,2,…,J
12()()()()JJJJJnnnn'111'221'1(())()()(())()()(())()()PJPPJpppPJPPJpppPJPPJJppJpfunnwnfunnwnfunnwn BP算法
7 112'11()()()()(())*()()PPPJpppPPPJppJpPPPJppJpnwnnwnfunnwn
1112211'11222221122()()()()...()()()()()()...()()(())*()()()()...()()PPJPPJPPJPPPPJPPJPPJJPPPPJPPJPPJJJPPJnwnnwnnwnnwnnwnnwnfunnwnnwnnwn 112111'12222212()()()()()()()()(())**()()()()PJPJPJPPPJPJPJPJPPJPJPJPJJPJPwnwnwnnwnwnwnnfunwnwnwnn
'(())*(())*()TJPTPJfunnWn 为了和matlab中权值矩阵保持一致
(3)'1()(())()()JIIJJIiijjijnfunnwn i=1,2,…,I
'1111'2221'1(())()()()(())()()()()()(())()()JIJJIjjjIJIJJIIjjIjIIJIJJIIjjIjfunnwnnfunnwnnnnfunnwn