2
$\begingroup$

I'm creating a supervised convnet which recognizes a phrase in a regional language.

For example:

I have a dataset which contains 100 sounds for labels A and another 100 sounds for labels B. Now normal operation of the network is to differentiate a sound between label A and label B.

But let's say that I give a new sound to the network to classify, which is actually neither A nor B. I want the neural net to tell me that it doesn't qualify any of the labels.

How can I achieve this?

$\endgroup$

1 Answer 1

4
$\begingroup$

Let's phrase it another way, decomposing into two problems:

  1. given a sound, we want to know if it's of class A
  2. given a sound, we want to know if it's of class B

This way of putting it is valuable to some techniques, notably "one-class classification" and "PU learning" (learning from positive and unlabeled examples). These techniques are very relevant when you want to know "does my item follow a given distribution D?", which is exactly what you're looking for.

Still, if you have (or can collect) a lot of data that is neither A nor B, you may simply label it as a garbage class C and use a common classifier - however, it may actually be harmful, because you're likely assuming wrong things about class C [Li, Liu and Ng, "Negative Training Data can be Harmful to Text Classification", 2010]. It could work and is much simpler to develop, may be good enough depending on your case.

$\endgroup$
3
  • $\begingroup$ as you said that creating a third class might actually harm the network, I won't be using it. Morever I actually have 10 classes and I don't think that creating a 10 binary classifiers is a good solution. Isn't there a way I can set some threshold on the distribution? $\endgroup$
    – penduDev
    Commented Oct 16, 2017 at 14:02
  • $\begingroup$ @penduDev "I don't think that creating 10 binary classifiers is a good solution" I know the feeling behind this, but honestly I'd give it a try if training the model isn't that expensive, machine learning is all about "good enough". $\endgroup$
    – Mephy
    Commented Oct 16, 2017 at 14:35
  • $\begingroup$ I'll give it a try! $\endgroup$
    – penduDev
    Commented Oct 16, 2017 at 14:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.