BP神经网络(Matlab实现)

BP神经网络是反向传播网络(back propagation)的简称,它是一种多层前向网络,采用最小均方误差学习方式。

算法步骤:
BP神经网络(Matlab实现)_第1张图片
代码如下:

function example9_1()
p = [1.78 1.96 1.86 1.72 2.00 2.00 1.96 1.74 1.64 1.82 1.90 1.70 1.82 1.82 2.08;
1.14 1.18 1.20 1.24 1.26 1.28 1.30 1.36 1.38 1.38 1.38 1.40 1.48 1.54 1.56];
%输入两种飞蠓的参数
t = [1 1 1 0 1 1 1 0 0 0 0 0 0 0 0];                   %两种飞蠓的类别
plot(p(1,find(t>0.5)),p(2,find(t>0.5)),'o');hold on ;
plot(p(1,find(t<=0.5)),p(2,find(t<=0.5)),'*');          %画出两种飞蠓的分布图
net=newff(minmax(p),[2,1],{'tansig','purelin'});       %建立一个具有两层的神经网络
net.trainParam.show = 50;
net.trainParam.epochs = 300;
net.trainParam.goal = 1e-2;                            %设置训练参数
net=train(net,p,t);                                    %对网络进行训练估计出参数
pp=[1.80 1.84 2.04;
1.24 1.28 1.40];                                      %输入需要判别的三只飞蠓参数
y = sim(net, pp) ;                                    %利用已训练好的网络识别三只飞蠓
plot(pp(1,find(y>0.5)),pp(2,find(y>0.5)),'ro');
plot(pp(1,find(y<=0.5)),pp(2,find(y<=0.5)),'r*');      %画出三只飞蠓的分布图
plot([1.7 2.1 ],[1.1 1.5],'k')                         %画出判别直线

运行结果
BP神经网络(Matlab实现)_第2张图片
BP神经网络(Matlab实现)_第3张图片

你可能感兴趣的:(数学建模,算法,神经网络)