2013-01-24 52 views
0

我想建立描述为用于多输入和多输出(MIMO)系统中的神经网络:神经网络用于多输入和多输出(MIMO)系统

y1(t)= f1(x1(t), x2(t),...xn(t)) 
y2(t)= f2(x1(t), x2(t),...xn(t)) 
..... 
..... 
ym(t)= fm(x1(t), x2(t),...xn(t)) 

书中我读描述的例子单输入单输出系统,主要用于形式y= f(t)的函数逼近,其中神经网络针对输入t(自变量)和输出y进行训练。我正在使用matlab神经网络工具箱,并且可以轻松完成标量情况的解决方案。但是,如何构建或解决MIMO问题?如何转换或表示输入或输出以解决功能中内置的matlab问题?

回答

0

首先一个很简单的例子:

1 - 首先,你需要为数据输入输出数据矩阵和其他。 这里我正在使用来自matlab的预设数据。你应该尽量让你的输入输出数据的结构是这样的:

[InData,TarData] = engin_dataset; 

所以在这里我们有两个输入和两个输出(MIMO)2 - > 2 2 - 现在你应该创建网络。我所选择的前馈网络:

net1 = newff(minmax(InData),[10,2],{'tansig','purelin'},'trainlm') 

这里我已经定义了输入数据范围,数量的神经元中的每个层(包括输出层= 2),功能类型和训练算法的类型。

3-现在,你可以训练你的网络:

net2 = train(net1,InData,TarData) 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%

和这里的代码来了,从利用MATLAB自动生成一个例子:

% load data 
[inputs,targets] = engin_dataset; 
%inputs = engineInputs; 
%targets = engineTargets; 

% Create a Fitting Network 
hiddenLayerSize = 10; 
net = fitnet(hiddenLayerSize); 


% Setup Division of Data for Training, Validation, Testing 
net.divideParam.trainRatio = 70/100; 
net.divideParam.valRatio = 15/100; 
net.divideParam.testRatio = 15/100; 


% Train the Network 
[net,tr] = train(net,inputs,targets); 

% Test the Network 
outputs = net(inputs); 
errors = gsubtract(targets,outputs); 
performance = perform(net,targets,outputs) 

% View the Network 
view(net) 
+0

检查的问题/答案是:http:/ /stackoverflow.com/questions/1672850/how-to-set-output-size-in-matlab-newff-method – NKN