文档库 最新最全的文档下载
当前位置:文档库 › BP算法过程

BP算法过程

BP算法过程
BP算法过程

一:BP算法程序流程图

二.变量归一化

X=(X-minX)/(maxX-minX),对每一组样本中的每个变量都要进行归一化。

三.数学过程

输出层中M=14,隐含层中q=9,学习率?=0.01,L=1,ε=1e-10,最大训练次数为5000次.这个神经网络就只有一个输出神经元,所以每组样本值输出一个值 一般取初始权值在(-1,1)之间的随机数,初始阈值取(0,1)之间的随机数

表示隐含层第i 个节点到输入层第j 个节点之间的权值;

表示隐含层第i 个节点的阈值;

表示隐含层的激励函数;=1/(1+e -x )

表示输出层第个节点到隐含层第i 个节点之间的权值,i =1,…,q ; 表示输出层第k 个节点的阈值,k =1,…,L ; 表示输出层的激励函数,=x ;

表示输出层第个节点的输出,k=1。

(1)信号的前向传播过程 隐含层第i 个节点的输入net i :

(3-1)

隐含层第i 个节点的输出y i :

(3-2)

输出层第k 个节点的输入net k ,k=1:

(3-3)

ij

w i θ()x φ()x φki w k k

a ()

x ψ()x ψk

o k 1M

i ij j i

j net w x θ==+∑1()()

M

i i ij j i j y net w x φφθ===+∑1

1

1

()q

q

M

k ki i k ki ij j i k

i i j net w y a w w x a φθ====+=++∑∑∑

输出层第k 个节点的输出o k ,k=1:

(3-4)

(2)误差的反向传播过程

误差的反向传播,即首先由输出层开始逐层计算各层神经元的输出误差,然后根据误差梯度下降法来调节各层的权值和阈值,使修改后的网络的最终输出能接近期望值。T k 为预期输出

对于每一个样本p 的二次型误差准则函数为E p :

(3-5)

系统对P 个训练样本的总误差准则函数为:

(3-6)

根据误差梯度下降法依次修正输出层权值的修正量Δw ki ,输出层阈值的修正量Δa k ,隐含层权值的修正量Δw ij ,隐含层阈值的修正量

;;

;(3-7)

输出层权值调整公式:

(3-8)

输出层阈值调整公式:

(3-9)

隐含层权值调整公式:

(3-10)

隐含层阈值调整公式:

(3-11)

又因为:

(3-12)

111()()()q

q M k k ki i k ki ij j i k i i j o net w y a w w x a ψψψφθ===??

==+=++ ?

??∑∑∑2

1

1()2L

p k k k E T o ==-∑2

11

1()2P L

p p k k p k E T o ===-∑∑i

θ?ki

ki w E

w ??-=?η

k k

E

a a η

??=-?ij ij

E w w η

??=-?i i

E θη

θ??=-?ki

k

k k k ki k k ki ki w net net o o E w net net E w E w ??????-=????-=??-=?ηηη

k k k

k k k k k k k

net o net E E E a a net a o net a η

ηη???????=-=-=-??????i i i

ij ij i ij i i ij

net y net E E E w w net w y net w η

ηη???????=-=-=-??????i i i

i i i i i i i

net y net E E E net y net θη

ηηθθθ???????=-=-=-??????11

()P L

p p k k p k k E

T o o ==?=--?∑∑

(3-13)

(3-14)

(3-15)

(3-16)

所以最后得到以下公式:

(3-17)

(3-18)

(3-19)

(3-20)

生成新的权值

(1)()()ki ki ki w k w k w k +=+? (1)()()ij ij ij w k w k w k +=+?

(1)()()k k k k k k ααα+=+? (1)()()i i i k w k k θθ+=+?

然后进入下一步的循环,

计算误差,直到误差ε<1e-10时为止,然后程序结束 当满足下列条件时候采用动量法调整权值 训练程序设计中采用动量法的判断条件为:

??

?

??=mc mc 95.00其它)1()(04.1*)1()(-<->k E k E k E k E , E (k )为第k 步误差平方和。

i

ki

k

y w net =??1k

k

net a ?=?i

j

ij

net x w ?=?1i

i

net θ?=?11

()'()P L

p p k k k ki p k i E

T o net w y ψ==?=--???∑∑)(i i

i

net net y φ'=??'()k

k k

o net net ψ?=?()11

()'P

L

p p ki k k k i

p k w T o net y ηψ==?=-??∑∑()

11

()'P L

p p k k k k p k a T o net ηψ==?=-?∑∑()11

()'()P L

p p ij k k k ki i j

p k w T o net w net x ηψφ=='?=-????∑∑()11

()'()

P L

p p i k k k ki i p k T o net w net θηψφ=='?=-???∑∑

权值调整采用如下公式

(1)'(1)(1)()ki ki ki w k mc w k mc w k ?+=-?++?

(1)'(1)(1)()ij ij ij w k mc w k mc w k η?+=-?++?

(1)'(1)(1)()i i i k mc k mc k αηαα?+=-?++? (1)'(1)(1)()i i i k mc k mc k θηθθ?+=-?++?

其中k 为训练次数,mc 为动量因子,一般取0.9左右。

相关文档