LiuKejun - 2015-06-03

Hello!
I am training a FFNN by 815 sets of data and validate using 100 sets of data. In the neural net,there are 7 inputs and 1 output.The inputs are the independent variables and the output is dependent variable. So I need to train my network to predict the output, based on input data.

I have the following problem: I have 7 inputs, which have different ranges. My output data is in range started from 6.7 to 11.3. I've used linear layer for the input,sigmoid layer for the hidden layer and output layer, so I need to normalize both my input and output data.
Both in training process and validation process,I normalize the 7 kinds of inputs to (0.1,0.9).

But when I use test data to get result , I am confused about how should I unnormalize the data?
How should I get the results?
I get pretty good RMSE, around 0.19,but the results are far from expected.

Here are my JAVA codes:
In the initiate():
......
LinearLayer ILayer = new LinearLayer();
SigmoidLayer HLayer = new SigmoidLayer();
SigmoidLayer OLayer = new SigmoidLayer();
ILayer.setRows(7);
HLayer.setRows(3);
OLayer.setRows(1);
......
FileInputSynapse ITdata = this.createInput(path+"/file1.txt",1,2,8); / The input training data set /
FileInputSynapse IVdata = this.createInput(path+"/file1.txt",816,2,8); / The input validation data set /
FileInputSynapse DTdata = this.createInput(path+"/file1.txt",1,1,1); / The desired training data set /
FileInputSynapse DVdata = this.createInput(path+"/file1.txt",816,1,1);
LearningSwitch Ilsw = this.createSwitch(ITdata, IVdata);
ILayer.addInputSynapse(llsw);
LearningSwitch Dlsw = this.createSwitch(DTdata, DVdata);
TeachingSynapse ts = new TeachingSynapse(); // The teacher of the net
ts.setDesired(Dlsw);
OLayer.addOutputSynapse(ts);
......

In the test():
Layer input=nnet.getInputLayer();
​input.removeAllInputs();
​NormalizerPlugIn norm = new NormalizerPlugIn();
​norm.setAdvancedSerieSelector("2-8");
​norm.setMin(0);
norm.setMax(1);

​MemoryInputSynapse memInp=new MemoryInputSynapse();
​//memInp.addPlugIn(norm);
​memInp.setFirstRow(1);
​memInp.setAdvancedColumnSelector("2-8");
​input.addInputSynapse(memInp);
​memInp.setInputArray(inputArray);
​​
​Layer output=nnet.getOutputLayer();
​output.removeAllOutputs();
​​
​FileOutputSynapse fileoutput=new FileOutputSynapse();
​fileoutput.setFileName(outputFile);
​UnNormalizerOutputPlugIn unnormalize =new ​UnNormalizerOutputPlugIn();
​unnormalize.setAdvancedSerieSelector("1");
​unnormalize.setInDataMin(-1);
​unnormalize.setInDataMax(1);
​unnormalize.setOutDataMax(11.3);
​unnormalize.setOutDataMin(6.7);
​fileoutput.addPlugIn(unnormalize);
​output.addOutputSynapse(fileoutput);

Please, help me with this question, I would be very thankful!
Thanks!
With best regards,
LiuKejun.