How to improve the prediction performance of NARXNET in closed loop simulation and how to train it for multiple data set?

2 次查看(过去 30 天)
Hi,
I am working on a problem where a neural network is used to model a dynamic mechanical system. I have data of the input and output of the model. I have trained the NARXNET for the dataset from one single run from the system using the Open Loop (Parallel Architecture) and then simulated the network for the same dataset in open loop mode. I am getting very good results from the system. But as soon as I convert the network to a closed loop and then simulate it for the same dataset the performance of the network deteriorates highly (mse increased by 100 times). Literature indicates that for NARXNET training is best done in open-loop mode and then for simulation it should be turned into a closed loop. What are the ways in which I can improve upon the closed loop performance of the network?
My second question is that I had trained the above network for a single set of time-series dataset of the inputs and targets (from the a single type of input to the system). But I need the network to generalize my network for any type of input my system gets. How do I go on about achieving that? One method I tried is that I vectorized the dataset from few different types of input datasets (as mentioned in one of a similar post, link below) and then trained the network with the new combined/larger dataset. But this method did not give good results.

采纳的回答

Greg Heath
Greg Heath 2017-12-13
Your comments are too qualitative.
Have you consulted my NARXNET posts in the NEWSGROUP and ANSWERS?
Dimensions of input and target series matrices?
input delays = ?
feedback delays = ?
Which numbers of hidden nodes? (e.g., 4,9 or 13)
How many random initial weights trials for each hidden node value? (e,g, 10?)
NMSEo = ?
NMSEc = ?
Hope this helps
Thank you for formally accepting my answer
Greg
  2 个评论
Parimal Sarathi
Parimal Sarathi 2017-12-13
Yes, I have gone through some of those posts.
The Input Matrix is of size 2x4800 (two inputs variables of 4800 timesteps) and the Target Matrix is of the same size. I have arranged the data as Cell Matrices.
delaysteps = 3;
delayinput = 0:2;
delayfeedback = 1:delstep;
hiddenLayerSize = [5, 6];
Then to prepare data for the open loop training, I am using preparets function.
[osinputs,oinindel,oinlaydel,ostargets] = preparets(net,inputs,{},targets);
net.trainFcn = 'trainlm';
net.divideFcn = 'divideint';
net.performFcn = 'mse';
net.divideParam.trainRatio = 85/100;
net.divideParam.valRatio = 10/100;
net.divideParam.testRatio = 5/100;
net.layers{1}.transferFcn = 'tansig';
net.layers{2}.transferFcn = 'tansig';
After training the network, I am closing the network using the following commands-
[cnet,cinindel,cinlaydel] = closeloop(net,oinindel,oinlaydel);
coutputs = cnet(inputs(:,(1+delstep):end),cinindel,cinlaydel);
clPerformance = perform(cnet,targets((1+delstep):end),coutputs);
Here o stands for open loop, c for closed loop, s for shifted, inindel for initial input delay and inlaydel for initial layer delay.
I didn't understand a few questions posed by you here-
_How many random initial weights trials for each hidden node value? (e,g, 10?)_
What do you mean by initial weights trails and how do we set that? What does N stand for NMSEo and NMSEc?
Regarding the MSEs for the closed loop and open loop simulations -
ooutputs = net(osinputs,oinindel,oinlaydel);
performance = perform(net,ostargets,ooutputs)
performance =
107.9811
coutputs = cnet(inputs(:,(1+delstep):end),cinindel,cinlaydel);
clPerformance = perform(cnet,targets((1+delstep):end),coutputs)
clPerformance =
2.7219e+04
The range of my data is: 2805.6.
Muhammad Adil Raja
Muhammad Adil Raja 2020-4-11
Is it possible to specify input and feedback delays within a certain range? Like 300:309? Moreover, is it possible to specify different delays for each of the input variables?

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Sequence and Numeric Feature Data Workflows 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by