0

I've trained fitnet network for prediction steel's yield stress with MATLAB ann toolbox.

The neural network should predict yield stress. I have about 250 vector inputs. Every input vector has 12 parameters as inputs plus one parameter as target (yield stress). ann should predict yield stress.

The inputs are weight percent of chemical elements that are used in steel.

Here is my code snippet:

inputs=transpose(inputs);
targets=transpose(targets);

net =  feedforwardnet(20);
%net.trainParam.max_fail=1000

% Setup Division of Data for Training, Validation, Testing
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;

% Train the Network
[net, tr] = train(net,inputs,targets);

Here are the ann training results: enter image description here Here is the regression plot: enter image description here

Here is the actual output (green) and neural network output (red) charts in one diagram:

enter image description here

As it can be seen the charts are not overlapping. This means that network has not worked well.

How can I improve results? Should I use other network or topology. Is my data very noisy or incorrect or they are less to train ann? I've taken data from here:

http://www.msm.cam.ac.uk/map/data/materials/welddb-b.html

Comp_Warrior
  • 2,075
  • 1
  • 20
  • 35
r.zarei
  • 101
  • 1
  • 1
  • Have you tried something simpler than a neural network first, like linear regression? If not you should. It looks like you're using 20 hidden units which means you'll be fitting 12 * 20 (input to hidden) + 20 (hidden biases) + 20 (hidden to output) + 1 (output bias) = 281 parameters using 250 data points. – alto Sep 04 '13 at 20:34
  • i didn't use linear regression. this is a prediction/learning problem. Is 20 neurons much or less what you mean by number 281 ? – r.zarei Sep 05 '13 at 05:49
  • Linear regression is applicable to prediction problems. If you removed the hidden units and just had input to output weights in your ANN, you would have a linear regression model. 20 hidden units may be too many, but you should determine empirically, for example using cross-validation, not by guessing. The 281 number comes from the number of free parameters in the ANN, there is a weight from every input to every hidden unit (12 * 20), every hidden unit to every output unit (20 * 1), 20 hidden biases and 1 output bias. – alto Sep 06 '13 at 11:55
  • @alto thanks for your useful comments. i think its because of my data that the net does not train well. – r.zarei Sep 07 '13 at 06:20
  • @alto: I've trained net with other data set (with 20 parameters and 30 hidden layer neurons). now i have regression over 97.0 and in last figure i have improved results. their is still a vibration over and below target (red line vibrates)!!!? – r.zarei Sep 07 '13 at 07:07

0 Answers0