Predicting microstructural properties using Neural Network: Backpropagation

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?

2 Comments

Please show what you have done so far.
Greg
I simply called nftool which uses trainlm and lets me select the size of hidden layer apart from partitioning the data, and fed the i/p with Cooling rate data [1x50] matrix. Similarly the Targets were provided with the [3 X 50] matrix representing the 50 values of my 3 parameters.
The value of the MSE that i have obtained is mostly in the range of 8 - 30.
I tried to use the values of hidden layer from 4-16, but that didn't help much.
Could you please tell me how should i approach this to get better results?
Raghav

Sign in to comment.

 Accepted 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

3 Comments

It is easier to understand the significance of the MSE VALUE by comparing it to that of the Naive classifier with constant output equal to the mean of the targets (MSE00)
[ I N ] = size(x) % [ 1 50 ]
y00 = repmat(mean(t')',1,N);
MSE00 = mse(t-y00) % 15.3
minNMSE = min(MSE/MSE00) % 0.3420
medNMSE = median(MSE/MSE00) % 0.9215
meanNMSE = mean(MSE/MSE00) % 0.9319
stdNMSE = std(MSE/MSE00) % 0.3240
maxNMSE = max(MSE/MSE00) % 1.4950
Could you explain the below mentioned point as to how i change my weights or scale variables?
''To mitigate the unbalancing, either scale the variables or weight the targets''
thanks
Raghav

Sign in to comment.

More Answers (0)

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!