用MATLAB建立bp神经网络模型,求高手,在线等
Matlab神经网络工具箱提供了一系列用于建立和训练bp神经网络模型的函数命令,很难一时讲全。下面仅以一个例子列举部分函数的部分用法。更多的函数和用法请仔细查阅Neural Network Toolbox的帮助文档。
例子:利用bp神经网络模型建立z=sin(x+y)的模型并检验效果
%第1步。随机生成200个采样点用于训练
x=unifrnd(-5,5,1,200);
y=unifrnd(-5,5,1,200);
z=sin(x+y);
%第2步。建立神经网络模型。其中参数一是输入数据的范围,参数二是各层神经元数量,参数三是各层传递函数类型。
N=newff([-5 5;-5 5],[5,5,1],{'tansig','tansig','purelin'});
%第3步。训练。这里用批训练函数train。也可用adapt函数进行增长训练。
N=train(N,[x;y],z);
%第4步。检验训练成果。
[X,Y]=meshgrid(linspace(-5,5));
Z=sim(N,[X(:),Y(:)]');
figure
mesh(X,Y,reshape(Z,100,100));
hold on;
plot3(x,y,z,'.')
matlab BP神经网络
从原理上来说,神经网络是可以预测未来的点的。实际上,经过训练之后,神经网络就拟合了输入和输出数据之间的函数关系。只要训练的足够好,那么这个拟合的关系就会足够准确,从而能够预测在其他的输入情况下,会有什么样的输出。如果要预测t=[6 7]两点的R值,先以t=[1 2 3 4 5]作为输入,R=[12 13 14 14 15]作为输出,训练网络。训练完成之后,用t=[2 3 4 5 6]作为输入,这样会得到一个输出。不出意外的话,输出的数组应该是[13 14 14 15 X],这里的X就是预测t=6时的R值。然后以t=[3 4 5 6 7]作为输入,同理得到t=7时候的R值。根据我的神经网络预测,t=6时,R=15,t=7时,R=15。我不知道这个结果是否正确,因为神经网络通常需要大量的数据来训练,而这里给的数据似乎太少,可能不足以拟合出正确的函数。