当前位置:文档之家› 多层感知器

多层感知器

(2) j
s
(2) j

Eq x
(2) j
f (s )
'
(2) j
x(j2) f (s(j2) )
9
Eq x (2) j
n2 1 n3 (3) (2) 2 (2) [d qk f ( wkh xh )] x j 2 k 1 h 1 (3) (3) (3) d qk f ( sk ) f ' ( sk ) wkj k 1 n3 (3) k(3) wkj k 1 n3
n3 d q : 期望输出 1 1 T 2 Eq (d q yq ) (d q yq ) (dqj yqj ) 2 2 j 1 yq : 网络输出
由梯度法
w
(l ) ji (l )
Eq w
(l ) ji
, l 1, 2,3
: 学习率
(3) (2) s (3) W x j
xn0 xn0
3
第一隐含层:由W(1)与输入层全连接。 第二隐含层:由W(2)与第一隐含层全连接。 1 激活函数: y j f ( s j ) bs j 1 e
() 1 x (1) f ( s ) =f (W (1) x (0) ) () 2 x (2) =f ( s ) f (W (2) x (1) ) 4
3)带动量项修正的BP算法
为使学习率μ足够大,又不产生振荡,通常在标准BP算法上 再加上一个动量项。
(l ) (l ) w(jil ) k 1 w(jil ) k (l ) (j l ) xi(l 1) w ( k ) w ji ( k 1) ji
二、多层前馈网络与BP算法
Perceptron是由单层神经元构成的神经网络,δ学习规则
只适用于单层神经网络和线性可分的训练模式。
在Perceptron的基础上加入了隐含层,形成了多层前馈网 络MFNN(Multilayer Feedforward NN),也有称其多层感知 器(MLP,Multilayered Perceptron)。 其训练算法就是著名的误差反向传播算法(BP,Error
( 1 (2) (2) j xi
)
)
不同处:局部误差δ计算。 (3) ' (3) d -f(s ) 和 f (s 乘积成正比 输出层, δ与 qj j j)
3) (3) ' (3) ( d f ( s ) f ( s j j j ) qj
隐含层, 局部误差δ由输出层的性能误差经反向传播而得。
h=j的留下
误差反传
n3 k 1
于是 所以
Eq s (2) j

Eq x (2) j x (j2) s (j 2)
(3) (3) f ' ( s (2) j ) k wkj
j(2)
(2) w(2) ji
Eq w(2) ji
(2)
Eq s (2) j
18
% 逼近非线性函数 d=f(u)=exp(-1.9(u+0.5))sin(10u) clear all; close all; u=-0.5:0.05:0.45; %输入样本集 d=exp(-1.9*(u+0.5)).*sin(10*u); %输出样本集:非线性函数d figure(1); plot(u,d,'bo');ylabel('输出样本集d=f(u)','color','r','fontsize',13); xlabel('输入样本集u','color','r','fontsize',13);pause net=newff(minmax(u),[3,1],{'tansig','purelin'},'trainlm');%网络结构 N1,3,1 net=train(net,u,d); %网络训练 y=sim(net,u); %网络输出 [d' y'] %期望目标与网络输出对比 figure(2); plot(u,d,'bo',u,y,'r*'); ylabel('输出样本集d(o)网络输出 y(*)','color','r','fontsize',13); xlabel('输入样本集u'); pause
(l )
x
(l ) (l 1) j i
输出层: 隐含层:
l) (l ) ' (l ) ( d x ) f ( s j j j ) qj
l) ' (l ) ( l 1) ( l 1) ( f ( s ) k wkj j j k 1
nl 1
误Hale Waihona Puke 反传12误差反向传播用以修正连接权时,则反向计算。
6
x
(1) (2)
f (s ) = f (W x )
() 1 (1) (0) (2) (2)
x = f( s ) f (W
x )
7
(1)
y x (3) f ( s(3) ) f (W (3) x (2) )
2. BP算法
1)算法推导
第q个样本加在网络上,定义性能指标


(l ) j
( l 1) f ( s ) k(l 1) wkj ' (l ) j k 1
nl 1
隐含层
(5) 修正权值和阈值
l ) ( l 1) (l ) (l ) w(jil ) k 1 w(jil ) k ( x w ( k ) w j i ji ( k 1) ji l) (l ) (l ) (l ) (l ) ( k 1 k ( k ) j j j j ( k 1) j
19
u1=-0.48:0.05:0.47; %测试输入集 d1=exp(-1.9*(u1+0.5)).*sin(10*u1); %测试数据集 y1=sim(net,u1); %网络输出 figure(3); plot(u1,y1,'go',u1,d1,'r*'); ylabel('测试数据集d1(*) 网络输出y1(o)','color','r','fontsize',13); xlabel('测试输入集u1','color','r','fontsize',13) ;
16
%
由(三维)输入向量的最大、最小值,构建BP网络
clear all;
close all; %---构建BP网络结构:N3,4,2(3输入,隐层4节点,2输出) net=newff([0.5 1; 0.3 0.9; 1 2], [4,2], {'logsig', 'purelin'}, 'traingd'); w1=net.iw{1,1} b1=net.b{1} w2=net.lw{2,1} b2=net.b{2} %观测2-3层的权值、阈值 %观测BP网1-2层的权值、阈值
u=[1; 0.5; 1.2]
y=sim(net,u)
%输入一个向量
%观测输出
17
5)BP网络逼近非线性函数
非线性函数:
f (u) e[1.9(u0.5)] sin(10u)
BP网络:N1,3,1。隐层取S函数,输出取线性函数。权 值训练取L-MBP。 训练样本集:u=-0.5:0.05:0.45, d=f(u),样本对长度L=20。 测试数据集:u1=-0.48:0.05:0.47,d1=f(u1),样本对长度 L=20。
η是动量项的学习率。 具体算法:
l) (1) 置各权值和阈值初值, w(jil ) [0], ( j [0] (l 1, 2,
, L)
为小的随机数。
(2) 输入训练样本(Iq,dq)(q=1,2,…,Q),
对每个样本进行(3)-(5)步
13
(3) 计算网络各层实际输出
x (l ) f (s(l ) ) f (w(l ) x(l 1) ) (4) 计算训练误差 l) (l ) ' (l ) 输出层 ( d x ) f ( s j qj j j )
(2) s (2) w j ji
(2) (j 2) xi(1)
结果可以推广到所有的隐含层
(1) w(1) ji
Eq w(1) ji

(1) E s q j (1) (1) s (1) w j ji
(1) j(1) xi(0)
10
2)标准BP算法权值调整
' (2) (3) (3) ( 1 ) ' ( 1 ) ( 2) (2) (2) j =f ( s j ) k wkj , j =f ( s j ) k wkj k 1 k 1 n3 n2
11
权值调整公式:
w
(l ) ji
k 1 w k
(l ) ji
输出层与隐含层的权值修正公式具有相同的形式 Eq (3) (3 ) (3) (3) (2 ) w ji = j xi (3) w ji
w
(2) ji

(2 )
Eq
1 ) ( 1 w(ji
)
w(ji2) Eq ( 1 ) ( 1 ) (0 j xi (1) w ji
考虑输出层
相关主题