One-Class classifier using Neural Network

Hi all. I'm having a problem setting up a proper Neural Network for one class classification. Basically I've only the features that rapresent a background of an image. So the training phase would train the NN on those features. During the execution phase the NN will have features that could be "background" or "foreground" (the upper step is segmentation, I've already done it). How I'm supposed to set up correctly my NN?
Here is some piece of code:
toTrainFeat = computeFeatures(backBboxes,frame);
classes(1:size(backBboxes,1))=1; % one-class
[net Y E] = adapt(net,toTrainFeat,classes); % Incremental learning
if numFrame >=40 || sse(E) <0.01 %classify only after 40 frames OR if NN is smart enough
y = net(toClassifyFeat);
y
end
This code does not work, I think because I'm submitting only ONE-CLASS to the adapt method (in fact it crashes when it call adapt). Any help? Thanks a lot.

 Respuesta aceptada

Greg Heath
Greg Heath el 15 de Oct. de 2016

0 votos

Use an RBF or EBF net. Generate points in between and outside of the clusters obtained from the original data.
Train the net with original data (1) and the simulated data outside and between clusters(0).
Hope this helps.
Thank you for formally accepting my answer
Greg

3 comentarios

Leox91
Leox91 el 15 de Oct. de 2016
Thank you for your tip. I've just 2 questions:
1. May you explain why this should work with 2 classes (the real and the fake one) and give me better result then a feed forward net? 2. Do you know if RBF NN could be trained incremental (like adapt for FF net)?
Thanks again.
Greg Heath
Greg Heath el 16 de Oct. de 2016
There is no reason why it should not work if the classes do not overlap and you have enough hidden nodes.
I did not say it would give better results. Just that the results will be easier to understand.
If you use RADBAS hidden nodes and the usual training functions, you will get elliptical basis functions because there will be no constraints to make them circular.
Hope this helps.
Greg
Leox91
Leox91 el 16 de Oct. de 2016
Editada: Leox91 el 16 de Oct. de 2016
Thank you again. Just another question...may you clarify what do you mean with: " simulated data outside and between clusters(0). " . I surely can simulate data OUTSIDE the cluster of my "background" class, but how to do between?

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 14 de Oct. de 2016

Editada:

el 16 de Oct. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by