Clear Filters
Clear Filters

Neural Network - Pattern recognition

1 view (last 30 days)
Hi there,
I used the neural network toolbox ( nprtool ) for classifying my detected objects into either of 3 classes. I used 14 parameters (image moments) for all the 3 classes of input for training. As of now, I was able to collect only few data for each classes say around
Class 1 - 17 * 14
Class 2 - 11 * 14
Class 3 - 48 * 14
Total
Inputclass - 14*76 && Outputclass - 3 * 76
I arranged these data in column wise to feed into nprtool box.... I used the default toolbox functions like - hidden as 10 , training - 70% (54 samples) , validation - 15% (11 samples), testing - 15% (11 samples) and started the training.
Total number of Iterations was - 20
Performance (MSE) was - 0.0731
Gradient was 0.0617
Validation checks was - 6
Once the net has been created, I tried to use some data in "sim(net,input)" to check my networks performance. For certain inputs from the trained data set, the network's performance was fine but for many it was very bad. (unexpected results).
This is my status and problem. Now I need suggestions -
In what all ways I can improve the performance of the network.
1. Increasing the inputclass database will improve but suggest me something other than that.
2. Increasing the number of hidden layers from 10 to many doesn't seem to make much difference :(....
Through the documentation of Neural Network toolbox - I found the default nprtool in Matlab take cares of input and output processing (ex: mapminmax) and also it uses trainscg function for training.... Should I use some other efficient training algorithms such as trainlm ? But here how can I decide logically (not by trying all algorithms) which training function will be useful for me.?
I have just started to work on neural network after exploring some basics...Kindly help me on improving it -- making me a transition from advance beginner to expert :P
Thanks for your time....!

Accepted Answer

Greg Heath
Greg Heath on 6 Jan 2013
I have posted two answers to this question in the NEWSGROUP:
Hope this helps.
Thank you for formally accepting my answer.
Greg
  2 Comments
Sriram
Sriram on 25 Feb 2013
Dear Greg,
As I work on medical images, it was tedious and time consuming collecting the sample data. And now I am back with 37 vectors of 3 classes (N = 3*37 = 111).
MSE00 = mean(var(t',1)) = 0.2222
MSE00 = mean(var(t',0)) = 0.2242
N = 111, O = 3
Ntrn = N - round(0.15*N) = 94
Ntrneq = 94 * 3 = 282
Nw = I-H-O = 3+18*H
H = 15.5 == 20( Hidden layer used)
Ndof = 266
MSE = sse(t-y)/Ntrneq = 0.0823 MSEa = sse(t-y)/Ndof = 0.0871
NMSE = 0.3705 NMSEa = 0.3886
MSEgoal = 0.01* (Ndof/Ntrneq) *MSE00a = 0.00211
Above calculations were suggested by you in the last comment.
1. A network with the following parameters was used
% code
hiddenLayerSize = 20;
net = patternnet(hiddenLayerSize);
net.inputs{1}.processFcns = {'removeconstantrows','mapstd'};
net.outputs{2}.processFcns = {'removeconstantrows','mapstd'};
net.trainFcn = 'trainscg';
net.trainParam.goal = 0.0022; %%mean(var(t',1))
net.performFcn = 'mse';
[net,tr] = train(net,inputs,targets);
performance =
0.0615
trainPerformance =
0.0554
valPerformance =
0.0432
testPerformance =
0.1076
2.I would like to know when you would say a networks performance is with minimal error percentage or 90 - 100 percent efficient ? or when it would provide a good fit( again I am sorry for using non-quantitative terms)
3.Comments on my networks performance values
4.About Regression ( I found R should 0.9 - indicating a good fit ) So is that something I should look for my inputs (14 variables) or add some more to make my network to find a more linear relation ?
Training =
0.8874
Testing =
0.73716
Validation =
0.91735
5.And I am not bothering on any other parameters such as
Gradient
Mu
leaving it to default settings... ! your comments on that ?
Walter Roberson
Walter Roberson on 9 Jan 2019
This was flagged because the link reference does not go anywhere. It appears that the original question was at https://groups.google.com/d/msg/comp.soft-sys.matlab/Z9Z1UqppOTY/16MVoo_EtEoJ

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!