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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM