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.

 Risposta accettata

Greg Heath
Greg Heath il 15 Ott 2016
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 Commenti

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.
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 il 16 Ott 2016
Modificato: Leox91 il 16 Ott 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?

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Deep Learning Toolbox in Centro assistenza e File Exchange

Richiesto:

il 14 Ott 2016

Modificato:

il 16 Ott 2016

Community Treasure Hunt

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

Start Hunting!

Translated by