概述:
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)