CNN: Handling None class classification?

CNN: Handling None class classification?

Say we are developing an image classification task to categorise each image into 3 classes, say cat, dog and horses, or something else say 3 different breeds of dogs.
How do we generally handle the task of training the model to identify that an image does not belong to any of the 3 classes? Do we explicitly train it on rest of the universe images as a None class separately?
Assuming softmax is the final output layer, the probability of the class which it is closest to will always be shown as the highest probability. Should we in this case remove the softmax layer and take the layer just before softmax and try to use a threshold value to determine if the image belongs to any of the classes?
Please advise.

There are multiple approaches to handle this, the first one is having ample of other images( which don’t belong to any of these classes) and use it while training giving “None” label. But doing this, we might face situations where true class can be classified as None. Because following this approach, the data in the none class might be of high variety, and model might not be able to fit it properly using an approximation function.
Another approach is to use another stacked classifier model before feeding our image to be classified as one of the three classes.This also might encounter the same problem as the first one, but as the no. Of classes gets increased, model might be able to perform better.
Here’s a really good paper by Yann LeCunn you can go through it…
“[1511.03719] Universum Prescription: Regularization using Unlabeled Data”