Machine learning: how to determine if an object has educated classes in an image

If I train a deep neural network with (say) 10 classes, and I transfer the networks a completely different image, is it reasonable to expect that the output level cells will not be activated, so I will know that there is no object trained classes in the image?

My intuition says yes, but is it? And what would be the best approach to this?

thanks

+6
source share
2 answers

During controlled training, you usually assume that during training you get a complete picture of future types of objects. Typically, these are all tagged instances. In your case there are also "noise" instances, so basically there are two main approaches:

  • Since a multi-level neural network has K output neurons, each of which represents the probability of being a member of a certain class, you can simply agree that this distribution indicates that the new object does not belong to any of them. One specific approach is to check if min(p(y|x))<T (where p (y | x) is the activation of the output neuron) for some threshold T You can either set this value manually, or by analyzing your โ€œnoiseโ€ instances (you have some for training). Just pass them through your network and compare what T value gives you maximum recognition speed.
  • Add another cool classifier (anomalous detector) in front of your network - so that you get a sequence of two classifiers, first you can find out if it is noise or an element of any of your classes (note that this can be trained without access to noise samples, see methods for classifying a single class or detecting anomalies.

You can also add another output to the network to represent noise, but that probably won't work, since you will force your network to generate a consistent internal representation of both noise and data between several classes.

+6
source

The answer to your question depends very much on your network architecture and the parameters used to train it. If you are trying to protect against false alarms, we can set an arbitrary threshold value for the corresponding output nodes.

In general, learning algorithms basically take the form of โ€œclosed setโ€ recognition, where all testing classes are known during training. However, a more realistic scenario for vision applications is the โ€œopen setโ€ of recognition, where incomplete knowledge of the world is present during training, and unknown classes can be represented during testing.

This is an ongoing research area - please see this Open Set Recognition web page for a lot of resources on this subject.

+3
source

All Articles