Face recognition using back propagation network.

I am trying to implement face recognition system. I am extracting the zernike features. the length of my feature vector is 49. on using euclidean distance as the classifier, I am getting an accuracy of 94%. however, on using BPN, I am getting just 89%. I am not sure if I am doing it right. I used "patternnet" in MATLAB as:
nat=patternnet(48);
nat.trainFcn='trainscg';
%nat.trainParam.lr=0.01;
nat.trainParam.epochs = 4000;
nat.performFcn = 'sse';
nat.trainParam.min_grad = 1e-11;
%nat.trainParam.goal=1e-11;
nat.divideFcn = 'dividerand';
nat.divideParam.trainRatio=100/100; nat.divideParam.valRatio=0; nat.divideParam.testRatio=0;
[nat,tr]=train(nat,A,t);
Is there any other parameter that I should set?
I also tried to implement the BPN through code. My code is working fine for XOR net. But I am not understanding how to use it for Zernike features. Please help.

 Respuesta aceptada

Greg Heath
Greg Heath el 19 de Dic. de 2013
How many examples do you have?
How many classes?
The number of hidden nodes should probably be much smaller than 48
Why aren't you using as many defaults as possible?
Search
greg patternnet
Hope this helps.
Thank you for formally accepting my answer
Greg

9 comentarios

Geetika
Geetika el 19 de Dic. de 2013
Thank you very much for your reply.I have 40 classes. and 200 images per class. I have tried with different number of hidden node but of no use. Please help.
Geetika
Geetika el 19 de Dic. de 2013
Here is the example of one of my feature vectors. (length=66) 188.4417 9.1943 12.4750 4.6526 20.0248 2.2230 5.7723 2.7679 6.3700 0.6101 1.3754 30.9737 3.9334 6.2325 4.5655 16.1239 3.7225 5.3743 2.1221 6.5732 1.4985 25.0482 5.2343 7.8841 2.2677 19.1434 3.6436 4.6672 2.2644 5.3674 32.0023 5.2587 6.1456 4.3499 16.4862 4.1345 5.2081 2.8387 26.1948 6.0507 7.6276 3.2228 18.6669 3.8360 4.8080 29.8671 5.1138 6.2489 4.0073 17.5920 4.1606 26.7832 5.7089 7.2078 3.4475 19.5402 30.4850 5.1935 6.3083 4.0395 28.8822 5.5750 6.7168 30.5983 5.5392 29.2029
Greg Heath
Greg Heath el 19 de Dic. de 2013
>> mean(x) = 12.7211 >> std(x) = 23.8503 >> minmax(x) = 0.6101 188.4417
I would investigate feature extraction and normalization
Geetika
Geetika el 19 de Dic. de 2013
I dont think normalization is required for patternet?
Geetika
Geetika el 19 de Dic. de 2013
the problem is that I am geeting 95% accuracy on the same feature set with Euclidean distance but 89.5% with BPN. and I am not able to determine the basic problem.This is what I am finally using:
net = patternnet(30); %net.performFcn = 'sse'; net.divideFcn = 'dividerand'; net.divideParam.trainRatio=1; net.divideParam.valRatio=0; net.divideParam.testRatio=0; net.trainParam.min_grad = 1e-12; net = train(net,A,t); view(net); y = net(TA); perf = perform(net,t,y); classes = vec2ind(y)
If you have a 66-dim input, I don't know of any one who would believe that all 66 are necessary. If you reduce the dimensionality using feature extraction, then you should normalize the inputs to the same scale in order to eliminate scale size bias.
How many random weight initialization trials are you using? Search
Greg Ntrials
Geetika
Geetika el 21 de Dic. de 2013
Thanku for your reply Sir. I tried using the RBF and the PNN and now I am getting equivalent accuracy. I think BPN will not work with such radial feature vectors of Zernike moments. But, I had one query if you can please help me out. The accuracy with RBF is 1-2% lesser than with PNN. Is it correct?
Geetika
Geetika el 21 de Dic. de 2013
I was capable of implementing my own BPN network as well as built in function and still getting low accuracy. For RBF and PNN, I am using the inbuilt tools.
Greg Heath
Greg Heath el 22 de Dic. de 2013
Did you normalize? Reduce the dimensionality? Vary the spread in RBF and PNN? Vary the number of hidden nodes in the MLPNN (There is no such animal as a BPN) How much data for training? How many random weight initialization trials? Are you still using 'dividetrain'? If not, what split ratio?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Deep Learning Toolbox en Centro de ayuda y File Exchange.

Preguntada:

el 18 de Dic. de 2013

Comentada:

el 22 de Dic. de 2013

Community Treasure Hunt

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

Start Hunting!

Translated by