12.Matlab神经网络工具箱

概述:

1  人工神经网络介绍

2  人工神经元

3  MATLAB神经网络工具箱

4  感知器神经网络

5  感知器神经网络

5.1  设计实例分析

 1 clear all;
 2 close all;
 3 P=[0 0 1 1;0 1 0 1];
 4 T=[0 1 1 1];
 5 %建立神经网络
 6 net=newp(minmax(P),1,'hardlim','learnp');
 7 %对神经网络进行训练,net是建立网络,P是输入向量,T是目标向量
 8 net=train(net,P,T);
 9 %对网络进行仿真
10 Y=sim(net,P);
11 %绘制建模点
12 plotpv(P,T);
13 %绘制分界线
14 plotpc(net.iw{1,1},net.b{1});
 1 clear all;
 2 close all;
 3 P=[-0.5 -0.5 0.4 -0.1 -0.8;-0.5 0.5 -0.3 0.2 0.9];
 4 T=[1 1 0 0 1];
 5 plotpv(P,T);
 6 %建立感知器网络
 7 net=newp(minmax(P),1,'hardlim','learnpn');
 8 hold on;
 9 linehandle=plot(net.IW{1},net.b{1});
10 E=1;
11 net.adaptParam.passes=10;
12 %误差没有达到要求会持续不断的训练
13 while mae(E)
14     %进行感知器网络的训练
15     [net,Y,E]=adapt(net,P,T);
16     linehandle=plotpc(net.IW{1},net.b{1},linehandle);
17     drawnow;
18 end
19 %对训练好的网络进行保存,保存成net1
20 save net1 net;
21 set(gcf,'position',[50,50,400,400]);
 1 clear all;
 2 close all;
 3 %加载网络
 4 load net1.mat;
 5 X=[-0.4 0.2 0.8;-0.7 0.3 0.9];
 6 %对网络进行仿真,输入向量为X
 7 Y=sim(net,X);
 8 figure;
 9 %绘制样本点和分界线
10 plotpv(X,Y);
11 plotpc(net.IW{1},net.b{1});
12 set(gcf,'position',[50,50,400,400]);

5.2  线性神经网络

 1 clear all;
 2 close all;
 3 P=[1.0 2.1 3 4];
 4 T=[2.0 4.01 5.9 8.0];
 5 %获取最大的学习速率
 6 lr=maxlinlr(P);
 7 net=newlin(minmax(P),1,0,lr);
 8 %最大学习次数是300
 9 net.trainParam.epochs=300;
10 %训练的目标误差为0.05
11 net.trainParam.goal=0.05;
12 net=train(net,P,T);
13 Y=sim(net,P)

6  设计实例分析

 1 clear all;
 2 close all;
 3 t=0:pi/10:4*pi;
 4 X=t.*sin(t);
 5 T=2*X+3;
 6 figure;
 7 plot(t,X,'+-',t,T,'+--');
 8 legend('系统输入','系统输出');
 9 set(gca,'xlim',[0 4*pi]);
10 set(gcf,'position',[50,50,400,400]);
11 net=newlind(X,T);
12 %对网络进行仿真
13 y=sim(net,X);
14 figure;
15 plot(t,y,'+:',t,y-T,'r:');
16 legend('网络预测输出','误差');
17 set(gca,'xlim',[0 4*pi]);
18 set(gcf,'position',[50,50,400,400]);

7  BP网络

7.1  BP网络的创建

7.2  BP网络实例分析

 1 clear all;
 2 clear all;
 3 P=[0 1 2 3 4 5 6 7 8 9 10];
 4 T=[0 1 2 3 4 3 2 1 2 3 4];
 5 %隐含层为10个神经元
 6 net=newff(P,T,10);
 7 net.trainParam.epochs=100;
 8 %进行训练
 9 net=train(net,P,T);
10 %对网络进行仿真
11 Y=sim(net,P);
12 figure;
13 plot(P,T,P,Y,'o');
  • BP神经网络进行曲线拟合
 1 clear all;
 2 clear all;
 3 P=-1:0.05:1;
 4 T=sin(2*pi*P)+0.1*randn(size(P));
 5 net=newff(P,T,20,{},'trainbr');
 6 net.trainParam.show=10;
 7 net.trainParam.epochs=50;
 8 net=train(net,P,T);
 9 Y=sim(net,P);
10 figure;
11 plot(P,T,'-',P,Y,'+');
12 legend('原始信号','网络输出信号');
13 set(gcf,'position',[50,50,600,300]);

8  径向基审计网络

1 clear all;
2 close all;
3 P=[1 2 3 4 5];
4 T=[2.1 3.4 5.4 6.9 5.6];
5 net=newrb(P,T);
6 x=2:0.5:5
7 y=sim(net,x)

9  广义回归神经网络

 1 clear all;
 2 close all;
 3 %输入向量
 4 P=1:20;
 5 %输出向量
 6 T=3*sin(P);
 7 net=newgrnn(P,T,0.2);
 8 y=sim(net,P);
 9 figure;
10 plot(P,T,':+',P,T-y,'-o');

10  概率神经网络

1 clear all;
2 close all;
3 P=[1:8];
4 Tc=[2 3 1 2 3 2 1 1];
5 T=ind2vec(Tc)
6 net=newpnn(P,T);
7 Y=sim(net,P);
8 Yc=vec2ind(Y)

 

posted @ 2018-04-23 11:42  喵小喵~  阅读(8771)  评论(0编辑  收藏  举报