Needing Good Neural Network (Classification) Design

1 view (last 30 days)
Good day! I am somewhat new to neural setworks and to the nnet toolbox.
Basically, I have six inputs and 32 categories for the output.
The ranges of my inputs are the following: [50, 1060] [70, 590] [385 725] [80 170] [0, 800] [0, 180] corresponding to: x and y coordinates, another x and y coordinates, a distance (most significant), and an angle(more significant) respectively.
And my current idea for the output is to have 5 binary targets to represent the 32 categories.
My questions are: (1) What is the ideal network topology for this, training functions and parameters/ etc. (2) What is the ideal way to standardize/rescale/normalize my inputs based from their ranges(and significance?)
I'm already trying some ideas but my performance(MSE) wont drop below 0.1. I just want to know how will you do it exactly if it were you in my place. :)
Thank you in advance!
PS: Hi, Sir Greg! This is a semi-independent topic from my other post, so I still need your ideas there if you have time. Thx :)

Accepted Answer

Greg Heath
Greg Heath on 2 Oct 2012
Sir Greg? I must be getting old because I don't remember being knighted.
Why aren't you consulting the examples in the documentation?
I favor zscore or mapstd normalization to investigate outliers.
I use MSEgoal = 0.01*Neq*mean(var(targets'))/(Neq-Nw)
Search my posts and answers in NEWSGROUPS and ANSWERS using
Neq Nw Ntrials.
Greg

More Answers (1)

renz
renz on 2 Oct 2012
if this is my network: (6inputs, 6 targets, 2layer feedforward)
H = 10;
TF = {'tansig','logsig'};
BTF = 'trainlm';
BLF = 'learngdm';
PF = 'mse';
IPF = {'fixunknowns','removeconstantrows', 'mapminmax'};
OPF = {'removeconstantrows'};
DDF = 'dividerand';
net = newff(inputs,targets,H,TF,BTF,BLF,PF,IPF,OPF,DDF);
net.divideParam.trainRatio =.5;
net.divideParam.testRatio =.25;
net.divideParam.valRatio =.25;
net.plotFcns = {'ploterrhist'};
and since I want BINARY target values,
a = round(sim(net,inputs));
Am I correct to choose my "best" network as the one that has the highest concentration of validation and test errors inside the range (-0.5, 0.5) ? That is, by using error histogram and observing the instances of validation and test errors.
OR should I look for the network with the highest R in
R = postreg(a,targets)
Thank you in advance!

Community Treasure Hunt

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

Start Hunting!