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.

 Accepted Answer

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 Comments

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 on 16 Oct 2016
Edited: Leox91 on 16 Oct 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?

Sign in to comment.

More Answers (0)

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Asked:

on 14 Oct 2016

Edited:

on 16 Oct 2016

Community Treasure Hunt

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

Start Hunting!