Find accuracy of neural network application result

3.4k views Asked by At

I couldn't find anything useful about accuracy of results in neural network,

  1. I run character recognition example in Matlab, after network training and simulation by input test, how can I compute accuracy of output result after simulation?

  2. for some reasons(Research) after network training I want to change some neuron weights and simulate by input test then how can I compute its output accuracy compared to exact output result? and Is this task possible in neural network,

Thanks in advance for any help.

2

There are 2 answers

0
adamconkey On BEST ANSWER

When you train a network using something like [net,tr] = train(net,x,t) where net is a configured network, x is an input matrix, and t is a targets matrix, the second returned argument tr is the training record. If you just display tr on the console you get something that looks like

tr = 

    trainFcn: 'trainlm'
  trainParam: [1x1 struct]
  performFcn: 'mse'
performParam: [1x1 struct]
    derivFcn: 'defaultderiv'
   divideFcn: 'dividerand'
  divideMode: 'sample'
 divideParam: [1x1 struct]
    trainInd: [1x354 double]
      valInd: [1x76 double]
     testInd: [1x76 double]
        stop: 'Validation stop.'
  num_epochs: 12
   trainMask: {[1x506 double]}
     valMask: {[1x506 double]}
    testMask: {[1x506 double]}
  best_epoch: 6
        goal: 0
      states: {1x8 cell}
       epoch: [0 1 2 3 4 5 6 7 8 9 10 11 12]
        time: [1x13 double]
        perf: [1x13 double]
       vperf: [1x13 double]
       tperf: [1x13 double]
          mu: [1x13 double]
    gradient: [1x13 double]
    val_fail: [0 0 0 0 0 1 0 1 2 3 4 5 6]
   best_perf: 7.0111
  best_vperf: 10.3333
  best_tperf: 10.6567

which has everything about the training results. Matlab has some built in functions for operating on this record, the most useful of which I find to be:

plotperform(tr) - plot performance calculated by performFcn in tr

plotconfusion(t,y) - plots confusion matrix which is a very concise graphical display of how your network misclassified things, and shows percentages of correct/incorrect in each class as well as total. t is the targets matrix and y is the computed output, which you can extract using y=net(x) for x input matrix.

0
a1i On

Plot classification confusion matrix

plotconfusion(Target,Output) displays the classification confusion grid.

Here are the overall percentages of correct and incorrect classification:

[c,cm] = confusion(Target,Output)

fprintf('Percentage Correct Classification   : %f%%\n', 100*(1-c));
fprintf('Percentage Incorrect Classification : %f%%\n', 100*c);