人工神经网络仿真实例_PPT幻灯片
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
max_epoch=3000; %最大训练次数设置为3000
err_goal=0.02;
%期望误差设置为0.02
lr=0.01;
%学习效率设置为0.01
TP=[disp_fqre,max_epoch,err_goal,lr];
[w1,b1,w2,b2,te,tr]=trainbpx(w1,b1,'tansig',w2,b2,'purelin
空间变换后
Page 15
例3-5试设计RBF网络来实现例3-2的输入/输出关系
P=-1:0.1:1;
T=[-0.96 -0.577 -0.0729 0.377 0.641 0.66 0.461 0.1336 -0.201 -0.434 -0.5 -0.393 -0.1647 0.0988
0.3072 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.3201];
end
end
Page 3
Page 4
Page 5
用矢量P计算网络的输出:
A1=tansig(w1*P,b1); %tansig为正切S型传递函数
A2=purelin(w2*A1,b2); %purelin为线性传递函数
下面定义网络训练参数:
disp_fqre=10;
%间隔次数设置为10
net2.traห้องสมุดไป่ตู้nParam.epochs = 10; %训练次数为十次
net2.trainParam.show = 1; %设置迭代次数为1
net2 = train(net2, a1, t);
%训练当前网络
a2 = sim(net2, a1)
%对该神经网络进行仿真
if a2 == t
i=1;
figure(1)
plot(P,T,'+');
disp_freq=10; %显示间隔次数
max_neuron=100;%最多神经元数
err_goal=0.02;%目标误差平方和
',P,T,TP)
%用BP算法进行训练
Page 6
BP网络训练过程(一)
Page 7
net=newff(minmax(P),[5,1],{'tansig','purelin'},'traingdm') %创建一个前馈BP网络
Y=sim(net,P);
E1=T-Y;
perf=mse(E1,net);
xe|x |u2|2 | 2
||X u 1 ||2 (x 1 1 )2 (x 2 1 )2 1 1 (x ) e ||x u 1 ||2 e 1 0 .3 6 7 9
2x
1x 2x
1x
Page 14
x2
R(x2)
1
1
0
1 x1
空间变换前
0.1353
0 0.3679
1 R(x1)
Page 10
例3-3试用加入动量项的BP网络实现下面输入/输出关系
P=[-6.0 -6.1 -4.1 -4.0 5.0 -5.1 6.0 6.1]; T=[0 0 0.97 0.99 0.01 0.03 1.0 1.0]; net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm') inputWeights=net.IW{1,1} inputbias=net.b{1} layerWeights=net.LW{2,1} layerbias=net.b{2} net.TrainParam.show=50; net.TrainParam.lr=0.05; net.TrainParam.mc=0.9; net.TrainParam.epoch=500; net.TrainParam.goal=0.001; %期望误差设置为0.001 [net,tr]=train(net,P,T); A=sim(net,P) E=T-A; MSE=mse(E) hold on
net1.biases{1}.initFcn = 'rands'; %随机生成阀值
i=0; %设变量i初值为0
while i==0
net1 = init(net1); %对第一层感知器初始化
a1 = sim(net1, p); % 第一层输出作为第二层输入a1
net2 = newp([0 1; 0 1], 1); % 新建第二层感知器,一个神经元
-0.5
+1 输出层
newp函数建立多层感知器
p = [0 0 1 1; 0 1 0 1]; %训练样本
t = [0 1 1 0];
%目标函数
net1 = newp([0 1; 0 1], 2); % 新建第一层感知器,两个神经元
net1.inputWeights{1}.initFcn = 'rands'; %随机生成权值
Page 11
网络的训练误差记录图:
Page 12
3-4试用RBF网络解决异或问题
X1
1(x)
w11
Output y
X2
∑
2(x)
w11
XOR异或
空间变换前
Page 13
基函数
u1 [1,1]T
(Xk,Xi)ex p 2 1i2||XkXi|2 |
u2 [0,0]T
xe|x |u1|2 | 1
%对误差进行均方差性能分析
vv.P=P;
vv.T=T;
net.trainParam.epoch=80000;
[net,tr]=train(net,P,T,[],[],vv);
A=sim(net,P);
E2=T-A;
perf2=mse(E2,net);
figure;
plot(P,T,'-g+');
例3-1试用多层感知器解决异或问题
解:对于异或运算可以将问题转化为两类模式(即输入、输 出模式)的分类问题。
异或问题的输入输出映射如下表所示:
Page 1
解决该异或问题的网络结构如下:
x1
x2 输入层
-1.5 +1
+1 神经元1
-2
+1
+1
+1 -0.5
+1 神经元2
+1 隐含层
Page 2
神经元3 y
hold on
plot(P,Y,'-ro');
hold on
plot(P,A,'-b');
Page 8
网络的训练误差记录图:
Page 9
运行结果如下:
如图所示:绿色 线表示的是目标 矢量相对于输入 适量的波形图; 红色代表的是初 始网络输出波形 图;蓝色代表的 是训练后网络的 输出波形。