Reputation: 300
I have a data set with 5 inputs and one output. I want to train this data set with Neural Network modeling in MATLAB. When i input data without normalization, the MSE is very large around 1e+3
. But, when i normalize the input data, the output error becomes around 1e-4
. So, as i understand, normalization is an important task.
My 2 questions:
1- my real target (output) before training process is in range of [0 1000]
or [50 800]
, but after normalization, the neural network gives me a value in range of [0 1]
due to normalization. I mean, i cannot get any value in my real range [0 1000]
or [50 800]
. How can i convert the output from neural network to its correct target in range of [0 1000]
or [50 800]
? Is it logic to do it? When my real (target) output should be [0 1000]
or [50 800]
, what can i do with the values in range of [0 1]
?
2- I want to test the trained NN with one new input pattern. When i normalized the input data in training phase, this new input pattern should be normalized. yes? How? I mean, my input data in training phase, was around 1000 data and i normalized them with (x-min)/(max-min)
. Should i normalized my one new input pattern in this min
and max
range?
Upvotes: 0
Views: 1481
Reputation: 308
Well, assuming the normalization is linear (it probably is), you can take the outputs, multiply them by 1000 and round that.
You can also play around with different transfer functions. Sigmoid has many desirable properties, but it is not capable of producing anything larger than 1 (which is sort of necessary if your outputs run up to 1000). I think that often the last layer has linear transfer function - but since your outputs are this large, it may not be sufficient in this particular case.
Upvotes: 1