MATLAB: Predicting microstructural properties using Neural Network: Backpropagation

MATLABneural network

I want to predict 3 microstructural properties by training neural network (backpropagation) with cooling rate of a alloy solidifying from a liquid as input and my target values as those 3 properties. I have 50 samples of cooling rate and corresponding 50 X 3 values of properties.
1) How should i set my neural network so that i could train it and reproduce the target results in the output ? 2) Also, i should be able to predict the value at any given cooling rate, obviously within a certain range it would be?

Best Answer

1. The scaling of the target data is unbalanced
meant = mean(t')' % [ 36.5 1.08 -4.38 ]'
vart = var(t')' % [ 2.67 0.0012 44.4 ]'
Unbalanced scaling will cause NN training to neglect t(1:2,:)
To mitigate the unbalancing, either scale the variables or weight the targets.
Compare the MSE of the separate outputs to those of 3 separate networks.
Without scaling or weighting I get
rng(0)
for i = 1:20
net = train(fitnet,x,t);
MSE(i) = perform(net,t,net(x))
end
minMSE = min(MSE) % 5.26
medMSE = median(MSE) % 14.2
meanMSE = mean(MSE) % 14.3
stdMSE = std(MSE) % 4.98
maxMSE = max(MSE) %22.99
2. The input is not very predictive using a three output net without scaling or weighting.
Hope this helps.
Greg