一个简单的用于预测的BP神经网络模型

一个简单的用于预测的BP神经网络模型

这是一个简单的bp神经网络模型,其中的数据是铣削实验的数据,数量较少,但作为神经网络的例子正好。读者可以根据自己的需要将自己的数据换进去,其中,传递函数和学习函数都可以代换。隐层根据自己的需要进行调整,该模型可直接进行运行,对于学习BP神经网络非常好。

%构建训练样本中的输入向量
P1= [3.67 2.32 3.67 2.32 3.67 2.32 3.67 2.32 3.67 2.32 3.67 2.32 3.67 2.32 3.67;
0.178 0.28 0.28 0.178 0.178 0.28 0.28 0.178 0.178 0.28 0.28 0.178 0.178 0.28 0.28;
1 1 1 2.25 2.25 2.25 2.25 1 1 1 1 2.25 2.25 2.25 2.25;
0.12 0.12 0.12 0.12 0.12 0.12 0.12 0.28 0.28 0.28 0.28 0.28 0.28 0.28 0.28];
P2=[1.83 4.65 2.95 2.95 2.95 2.95 2.95 2.95;0.223 0.223 0.142 0.351 0.223 0.223 0.223 0.223;
1.5 1.5 1.5 1.5 0.67 3.37 1.5 1.5;0.18 0.18 0.18 0.18 0.18 0.18 0.08 0.4];
P3=[2.95 2.95 2.95 2.95 2.95 2.95;0.223 0.223 0.223 0.223 0.223 0.223;
1.5 1.5 1.5 1.5 1.5 1.5;0.18 0.18 0.18 0.18 0.18 0.18];
P=[P1 P2 P3];
%构建训练样本中的输出向量
T=[1.45 2 1.3 2.1 1.4 2 1.45 3.05 2.2 3.1 2.7 3.5 2.45 2.4 1.75 3.3 1.05 2.1 2.5 2 2.2 1.45 2.6 1.6 1.6 2.2 1.85 2.3 2.7];
%数据归一化处理,使用mapminmax归一化函数
[Pn,PS]=mapminmax§;
[Tn,PS]=mapminmax(T);
%创建一个BP神经网络,隐含层含有8个神经元,传递函数为tansig
%中间层一个神经元,传递函数为tansig,训练函数为traingdx
net=newff(minmax(Pn),[100,150,1],{‘tansig’,‘tansig’,‘tansig’},‘traingdx’);
net.trainParam.epochs=5000;%训练步数为5000
net.trainParam.goal=0.001;%目标误差为0.001
net.trainParam.lr=0.001;%学习速率为0.001
net.trainParam.mc=0.9;%动量为0.9
%训练一个BP神经网络
net=train(net,Pn,Tn);
%输入测试数据,并将其归一化处理
P_test=[2.32;0.178;1;0.12];
Pt=mapminmax(‘apply’,P_test,PS);
Y=sim(net,Pt)
%将预测输出做反归一化处理
Yn=mapminmax(‘reverse’,Y,PS)

你可能感兴趣的:(AI)