手机版

实验二 基于BP算法的多层感知器

时间:2025-07-05   来源:未知    
字号:

BP基本算法的相应知识

1986=年,Rumellart和McCelland领导的科学家小组在《平行分布处理》一书中,分析了具

有非线性连续变换函数的多层感知器的误差反向传播(Error Back Propagation, BP)算法,

实现了Minsky关于多层网络的设想。 ==BP的基本思想:信号的正向传播+误差的反向传播 ==:输入样本从输入层传入,经各隐层逐层处理后,传向输出层。 – 信号的正向传播

– 误差的反向传播:将输入误差以某种形式通过隐层向输入层逐层反传,并将误差分==摊给各层的所有单元,从而获得各层单元的误差信号来作为修正各单元权值的依据。 ==

1. 基本BP算法的多层感知器模型:

输出层

O=(o1,o2,...,ok...,ol)TW=(W1,W2,...,Wk,...,Wl)

隐层

y0Y=(y0,y1,...,yj,...,ym)T

V=(V1,V2,...,Vj,...,Vm)

输入层

X=(x0,x1,...,xi,...,xn)T

012in 1n

三层BP网模型

输出层

oknetk

隐层

yjnetj

f(netk) k

1,2,...,l1,2,...,l

∑w

j=0

m

jk

yj k

f(netj) j1,2,...,m

∑vijxi j1,2,...,m

i=0

n

变换函数 f (x) 为连续、可导的单极性Sigmoid函数

1

f(x)=

1+e x f'(x)f(x)[1 f(x)]

2. BP学习算法的推导

当网络输出与期望输出不等时,存在输出误差E

11l22

E=(d O)=∑(dk ok)

22k=1

将上面的误差定义式展开至隐层,有

m 1l1l 2

E∑[dk f(netk)]∑ dk f(∑wjkyj)

2k12k1 j0

2

进一步展开至输入层,有

mmn 1l 1l

[(net)][()]Ed fwfd fwfvx k∑ k∑∑∑∑jkj jkiji 2k1 2j0kji100

2

2

调整权值的原则是使误差不断地减小,因此应使权值的调整量与误差的梯度下降成正比,即

wjk= η

E

j=0,1,2,...,m; k=0,1,2,...,l wjk

E

vij= η j=0,1,2,...,m; k=0,1,2,...,l

vij

η∈(0,1)表示比例系数,在训练中反应学习速率

BP算法属于δ学习规则类,这类算法被称为误差的梯度下降(Gradient Descent)算法。

3. 对于三层BP算法 输出层

wjk= η

E E netk

= η wjk netk wjk

(1)

隐层

vij= η

=

E E netj

(2) = η

vvnet ijjij====

对输出层和隐层各定义一个误差信号,令

o

k

δ=

E netk

==

E

δjy=

netj

m

再由于netk=∑wjkyj ,netj=∑vijxi改写权值调整式为

j=0

i=0

n

wjk=ηδkoyj vij=ηδx

y

ji

对于输出层,δko可展开

δko E netk

E ok E

f'(netk) (3)

ok netk ok

对于隐层,δjy可展开

δjy E E yj E f'(netj) (4) netj yj netj yj

由前面E

1l2

(dk ok) ,可得 ∑2k=1

E

= (dk ok) ok

m 1l

() dfwy k∑∑jkj ,可得 2k10j = =l

E

= ∑(dk ok)f'(netk)wjk = yjk=1

2

由E

==

==

代入(3)(4)得到

(dk ok)ok(1 ok)δko=

[∑(dk ok)f'(netk)wjk]f'(netj)=(∑δkowjk)yj(1 yj)δ=

yj

k1

k1

l

l

代回(1)(2)得到

o

wηδk=yjη(dk ok)ok(1 ok)yj jk= l yo== vηδxη(δw)y(1y)x∑jikjkjji ij

k=1

==

扩展到h个隐层的多层感知器

对一般多层感知器,设共有h个隐层,按前后顺序各隐层节点数分别记为m1, m2,…, mh ,各隐层输出分别记为y1, y2, …, yh,各层权值矩阵分别记为M1, M2, …, Mh, Mh+1 ,则各层权值调整计算公式为 ==输出层 =

+1oh+1

wh=η(dk ok)ok(1 ok)yhjk=ηδkyjj j=0,1,2,...,mh;k=1,2,...,l

第h隐层 =

w

hij

ηδy

hjh 1i

hhh 1+1

η(∑δkowhjk)yj(1 yj)yj ik=1

l

0,1,2,...,mh 1;j1,2,...,mh

按以上规律逐层类推,第一隐层权值调整计算公式

w

1

pq

ηδxp1q

21p

η(∑δr2wqr)y1q(1 yq)x pk=1

m2

0,1,2,...,n;j1,2,...,m1

BP算法的信号流向

4. 三层BP算法的训练步骤 Step 1 初始化

==

=对权值矩阵W、V赋随机数,将样本模式计数器p和训练次数计数器q置于1,误差E置0,

学习率η设为0~1内的小数,网络训练后的精度Emin设为一个正的小数; Step 2 输入训练样本对,计算各层输出

用当前样本Xp、dp对向量数组X、d赋值,用下式计算Y和O中各分量

yj

f(netj)

m

f(∑vijxi) j1,2,...,m

i=0

n

ok

==

f(∑wjkyj) k

j=0

=

=

1,2,...,l

=

=Step 3 计算网络输出误差

设共有P

对训练样本,网络对于不同的样本具有不同的误差E

2

p

,可将

全部样本输出误差的平方(Ep)进行累加再开方,作为总输出误差,也可用诸误差中的最大

计算网络的者Emax代表网络的总输出误差。实用中更多采用均方根误差ERME=总误差。

Step 4 计算各层误差信号 ==

δko=(dk ok)ok(1 ok)

=

yj

k1

==ll δ=[∑(dk ok)f'(netk)wjk]f'(netj)=(∑δkowjk)yj(1 yj)

k1

Step 5 调整各层权值

wjk vij

ηδkoyjηδx

y

ji

η(dk ok)ok(1 ok)yj η(∑δwjk)yj(1 yj)xi

okk=1l

Step 6 检查是否对所有样本完成一次轮训 若p<P,计算器p=p+1,q=q+1,返回Step 2, 否则转到Step 7 Step 7 检查网络总误差是否达到精度要求 当用ERME作为网络的总误差时,若满足ERME<Emin,训练结束,否则E置 …… 此处隐藏:1489字,全部文档内容请下载后查看。喜欢就下载吧 ……

实验二 基于BP算法的多层感知器.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)