Neural Nets for Classification

1 view (last 30 days)
Jay
Jay on 16 Jul 2011
Hi guys!
I want to use Neural Networks (command-line functions) for a classification problem with currently 15 features and 2 (or maybe 3) different target classes.
1) Am I right that for this kind of problem it would be wise to choose "patternnet" instead of "feedforwardnet"? When they speak about "function fitting" in the documentation, the network will output a (real) value instead of a class, right?
2) I want to test parameters for the network to see how I can adapt it accurately on the given situation. I thought about varying the following parameters:
  • number of layers and sizes (net.numlayers is always hidden layers+output layer, right?)
  • the training function, maybe to trainlm, trainscg, trainbr
  • number of epochs
  • transferfunction
  • outputlayer transfer function (does that make sense??)
What about the learning rate? Could not find that in net.trainParam.
Does that make sense like this? Any parameters with a big influence I forgot or unuseful ones listed?
So far for now, thanks a lot! Jay

Accepted Answer

Mark Hudson Beale
Mark Hudson Beale on 9 Sep 2011
Yes, PATTERNNET is recommended for classification problems.
TRAINLM is a good training function for most problems. For small dataset problems TRAINBR may produce better generalization.
There is no need to worry about the number of epochs or learning rate or other details. These have good default values and training stops automatically when the optimization gradient becomes small enough or generalization is optimized (by validation with TRAINLM or regularization with TRAINBR).
You can train a few networks, as each time TRAIN is called different initial weights and biases are used and the data is divided differently for training, validation and test sets. Then choose the network that generalizes best to new data.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!