MATLAB中BP神经网络

2024-11-08 11:37:46
推荐回答(1个)
回答(1):

%% BP算法
function Out=bpnet(p,t,p_test)
S1=5; 
%threshold=[0 pi/2;0 pi/2];
%net=newff(threshold,[5,2],{'tansig','purelin'},'trainlm');
net=newff(minmax(p),[S1,2],{'tansig','purelin'},'trainlm');
%net=newff(P,T,5,{'tansig','purelin'},'trainlm');%新版用法
net.trainParam.epochs=1000;
net.trainParam.goal=0.00001;
net.trainParam.lr=0.01;
net.trainParam.showWindow = false;      %阻止训练窗口的弹出
net.trainParam.showCommandLine = false; %阻止训练窗口的弹出
net=train(net,p,t);
Out=sim(net,p_test);
end

上次那个问题也是你问的吧?

把上次产生的p和t,用mapminmax函数进行归一化后,传递给这个函数即可,测试的p也可以现在就加进去。


BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。