第四章 多层感知器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

vhp
δpk-1
wpm ANp 第k-1层 wpq
δmk
第 k层
13
+ 样本集:S={(X1,Y1),(X2,Y2),…,(Xs,Ys)} + 基本思想 : – 逐一地根据样本集中的样本(Xk,Yk)计算出实际输出 Ok和误差测度E1,对W(1) ,W(2) ,…,W(L)各做一 次调整,重复这个循环,直到∑Ep<ε。 – 用输出层的误差调整输出层权矩阵,并用此误差 估计输出层的直接前导层的误差,再用输出层前 导层误差估计更前一层的误差。如此获得所有其 它各层的误差估计,并用这些估计实现对权矩阵 的修改。形成将输出端表现出的误差沿着与输入 信号相反的方向逐级向输入端传递的过程
25
+ 隐藏层的神经元的个数H作为一个输入参数
+ 同时将ε 、循环最大次数M等,作为算法的
输入参数 + 在调试阶段,最外层循环内,加一层控制, 以探测网络是否陷入了局部极小点
26
+ 基本假设 – 网络含有L层 – 联接矩阵: W(1) ,W(2) ,…,W(L) – 第k层的神经元:Hk个 – 自变量数: n*H1+H1*H2+H2*H3+…+HL*m – 样本集: S={ (X1,Y1),(X2,Y2),…,(Xs,Ys)} + 误差测度:
19
+ 较好地解决了因样本的顺序引起的精度问
题和训练的抖动问题 + 收敛速度:比较慢 + 偏移量:给每一个神经元增加一个偏移量 来加快收敛速度 + 冲量:联接权的本次修改要考虑上次修改 的影响,以减少抖动问题
20
+ Rumelhart等人1986年 – ∆wij=αδjoi+β∆wij′ – ∆wij′为上一次的修改量,β为冲量系数,一般可 取到0.9
18
4.3 对S中的每一个样本(Xp,Yp): 4.3.1 计算出Xp对应的实际输出Op; 4.3.2 计算出Ep; 4.3.3 E=E+Ep; 4.3.4 对所有i,j根据相应式子计算∆p w (L)ij; 4.3.5 对所有i,j:∆ w (L)ij=∆ w (L)ij+∆p w (L)ij; 4.3.6 k=L-1; 4.3.7 while k≠0 do 4.3.7.1 对所有i,j根据相应式子计算∆p w (k)ij; 4.3.7.2 对所有i,j:∆ w (k)ij=∆ w (k)ij+∆p w (k)ij; 4.3.7.3 k=k-1 4.4 对所有i,j,k:w (k)ij= w (k)ij+ ∆w (k)ij; 4.5 E=E/2.0
12
vhp=vhp+∆vhp ∆vhp=αδpk-1ohk-2 =αfk-1′(netp)(wp1δ1k+ wp2δ2k+…+ wpmδmk)ohk-2 =αopk-1(1-opk-1)(wp1δ1k+wp2δ2k+…+ pmδmk)ohk-2
wp1 ANh 第k-2层 δ1k

δqk ANq …
1 m 2 E (y k o k ) 2 k 1
29

E
E w ij w ij
E
wij
E >0,此时Δwij<0 w ij
E <0, 此时Δwij>0 w ij
wij
30
E E net j wij net j wij
而其中的
wk.baidu.com
net j w kj o k
3
o
f ′(net) 1
1 o net 1 e
net
0.25
(0,0.5)
0 (0,0) 0.5 1
o
– 应该将net的值尽量控制在收敛比较快的范围内 – 可以用其它的函数作为激活函数,只要该函数 是处处可导的
4
x1
W(1)
W(2)
W(3)
W(L)
o1
x2
o2

xn





… om
输入层
35
E j net j E o j o j net j
E j f (net j ) o j
函 数
o j net j
f (net j )
1 m 2 E (y k o k ) 2 k 1
36
H h1
netk=
w o
i 1
+ Sejnowski与Rosenberg ,1987年 – ∆wij=α((1-β)δjoi+β∆wij′) – ∆wij′也是上一次的修改量,β在0和1之间取值
21
+ 主要数据结构
W[H,m]——输出层的权矩阵; V[n,H]——输入(隐藏)层的权矩阵; ∆o[m]——输出层各联接权的修改量组成的向量; ∆h[H]——隐藏层各联接权的修改量组成的向量; O1——隐藏层的输出向量; O2——输出层的输出向量; (X,Y)——一个样本。
22
1
2 3 4
用不同的小伪随机数初始化W,V; 初始化精度控制参数ε;学习率α ; 循环控制参数E=ε+1;循环最大次数M; 循环次数控制参数N=0; while E>ε & N<M do 4.1 N=N+1;E=0; 4.2 对每一个样本(X,Y),执行如下操作
23
4.2.1 计算:O1=F1(XV);O2=F2(O1W); 4.2.2 计算输出层的权修改量 for i=1 to m 4.2.2.1 ∆o[i]= O2 [i]*(1- O2 [i])*(Y[i]-O2 [i]); 4.2.3 计算输出误差:for i=1 to m 4.2.3.1 E=E+(Y[i]-O2 [i])2;
E
E
p 1
s
p
27
误差测度
E Ep
p 1
s
用E代表EP,用(X,Y)代表(XP,YP) X=(x1,x2,…,xn) Y=(y1,y2,…,ym) 该样本对应的实际输出为 O=(o1,o2,…,om)
28
E Ep
p 1
s
+ 用理想输出与实际输出的方差
作为相应的误差测度
24
4.2.4 计算隐藏层的权修改量:for i=1 to H 4.2.4.1 Z=0; 4.2.4.2 for j=1 to m do Z=Z+W[i,j]* ∆o[j]; 4.2.4.3 Δh[i]=Z* O1 [i](1- O1 [i]) ; 4.2.5 修改输出层权矩阵:for k=1 to H & i=1 to m 4.2.5.1 W[k,i]= W[k,i]+ α*O1[k]*∆o[i]; 4.2.5 修改隐藏层权矩阵:for k=1 to n & i=1 to H 4.2.5.1 V[k,i]= V[k,i]+ α*X[k]* ∆h[i];
2、弱点:训练速度非常慢、局部极小点的逃离问题、 算法不一定收敛。 3、优点:广泛的适应性和有效性。
2
+ 4.2.1 网络的构成
神经元的网络输入: neti=x1w1i+x2w2i+…+xnwni 神经元的输出:
1 o f (net ) net 1 e
1 net 2 f (net) (e ) o o o(1 o) net 2 (1 e )
E 令 j net j
所以Δ wij=αδjoi
α为学习率
32
从而
oj=f(netj) 容易得到
E j net j E o j o j net j E f (net j ) o j
33
o j net j
f (net j )
1 m 2 yk ok 2 k 1 E o j o j 1 y j o j ( ) 2 o j
隐藏层
输出层
5
1. BP网的结构 2. 输入向量、输出向量的维数、网络隐藏层
的层数和各个隐藏层神经元的个数的决定 3. 实验:增加隐藏层的层数和隐藏层神经元 个数不一定总能够提高网络精度和表达能 力。 4. BP网一般都选用二级网络。
6
x1
V
W
o1
x2
o2
… xn


… om
输入层
隐藏层
输出层
7
14
1 for k=1 to L do 1.1 初始化W(k); 2 初始化精度控制参数ε; 3 E=ε+1; 4 while E>ε do 4.1 E=0;
15
4.2 对S中的每一个样本(Xp,Yp): 4.2.1 计算出Xp对应的实际输出Op; 4.2.2 计算出Ep; 4.2.3 E=E+Ep; 4.2.4 根据相应式子调整W(L); 4.2.5 k=L-1; 4.2.6 while k≠0 do 4.2.6.1 根据相应式子调整W(k); 4.2.6.2 k=k-1 4.3 E=E/2.0
1 m 2 Ep y pj o pj 2 j 1
(4) 网络关于整个样本集的误差测度:
E Ep
p
9
1、输出层权的调整
ANp wpq 第L-1层 ANq
∆wpq
第L层
wpq= wpq+∆wpq
∆wpq=αδqop
=αfn′ (netq)(yq-oq)op =αoq(1-oq) (yq-oq)op
4.1 概述 4.2 基本BP算法 4.3 算法的改进 4.4 算法的实现 4.5 算法的理论基础 4.6 几个问题的讨论
1
1、BP算法的出现
非循环多级网络的训练算法 UCSD PDP 小组的 Rumelhart、Hinton 和 Williams1986 年独 立地给出了BP算法清楚而简单的描述 1982年,Paker就完成了相似的工作 1974年,Werbos已提出了该方法
ik i
netk是 oj下一级的神 经元的网络输入
o1 oj o2 …
E H h E netk ( ) o j k 1 netk o j
H h1
w o ik i netk i 1 w jk o j o j
oHh
37
net E H h E k o j k 1 netk o j H h E w jk k 1 netk
样本:(输入向量,理想输出向量) 权初始化:“小随机数”与饱和状态;“不 同”保证网络可以学。 1、向前传播阶段: (1)从样本集中取一个样本(Xp,Yp),将Xp输 入网络; (2)计算相应的实际输出Op: Op=FL(…(F2(F1(XpW(1))W(2))…)W(L))
8
2、向后传播阶段——误差传播阶段: ( 1 )计算实际输出 Op 与相应的理想输出 Yp 的差; (2)按极小化误差的方式调整权矩阵。 (3)网络关于第p个样本的误差测度:
16
1、BP网络接受样本的顺序对训练结果有较大影 响。它更“偏爱”较后出现的样本 2、给集中的样本安排一个适当的顺序,是非常 困难的。 3、用 (X1,Y1),(X2,Y2),…,(Xs,Ys)的“总效 果”修改W(1) ,W(2) ,…,W(L)。 ∆w(k)ij=∑∆p w(k)ij
17
1 for k=1 to L do 1.1 初始化W(k); 2 初始化精度控制参数ε; 3 E=ε+1; 4 while E>ε do 4.1 E=0; 4.2 对所有的i,j,k:∆ w (k)ij=0;
k
所以,
w o kj k net j k oi w ij w ij
31
E E net j wij net j wij wkjok E k net j wij E oi net j
2
2 ( ( y j o j )) 2 (yj oj )
34
所以,
j
(y j o j )f (net j )
故,当ANj为输出层的神经元时,它对应 的联接权wij应该按照下列公式进行调整:
w ij w ij j o i w ij f (net j )(y j o j )o i
10
δ1k wp1 vhp δpk-1 wpq δqk …
ANh
ANp
wpm δmk
ANq

第k-2层
第k-1层
第 k层
11
δpk-1的值和δ1k,δ2k,…,δmk 有关
不妨认为δpk-1 通过权wp1对δ1k做出贡献, 通过权wp2对δ2k做出贡献, …… 通过权wpm对δmk做出贡献。
δpk-1= fk-1′(netp) (wp1δ1k+ wp2δ2k+…+ wpmδm k)
相关文档
最新文档