I'm confused as to what the output would be.

Consider the "blind source separation" problem. Let's say I have a ton of training examples where the input is the final cacophony of sounds as a sound file, and the "answer" is the multiple individual audio files which comprised the final sound file. Maybe some of these are labeled, like "piano" or "man's voice", but others might be unlabeled, like a weird machine or animal. The system should learn what the labeled ones sound like (so it should identify "piano" and "man's voice" in future test data), but it should also be able to separate unknowns. But order doesn't matter on the unknowns -- for example if there is an alien sound and a tree falling sound, it doesn't matter if it puts alien sound as "unknown #1" and tree falling as "unknown #2" or vice versa.

Traditionally, if all source files were labeled, then I could maybe have n*k output neurons where n is the number of frequency bins needed to make a good-enough sound file, and k is the number of all possible sources in the whole world (piano, man's voice). Then when it's being fed the input data, it could be an RNN which fires 0 or more output neurons at each time step (e.g. 1024 per second), to recreate the source sounds.

But with the "unknowns", this turns into more like "sort of classification sort of clustering" problem and I am completely in the dark as to how to use the output neurons. For example if I reserve n*5 output neurons for "unknowns", how would it learn that it's supposed to put unknowns in there, but the order doesn't matter? How would it avoid erroneously "learning" that an "unknown" is supposed to sound like whatever the training data happened to tell it?

  • 1
    $\begingroup$ Self Organising Maps could be regarded as "supervised clustering", though to be honest this term is an oxymoron to me. $\endgroup$ – Digio Aug 20 '15 at 8:34
  • 1
    $\begingroup$ How is it an oxymoron if you read my question description? We are trying to find the clusters for each datum, not clustering the entire body of data. This is actually a very similar problem to "generic object detection", where you have to find the bounding box and location of each object in an image, but not necessarily classify or label any object -- you just have to know they're there. So the answers are like "object #1 is here, object #2 is there". But "object #1 is there, object #2 is here" is just as valid, so how do we reflect that in a neural net architecture? $\endgroup$ – pete Aug 24 '15 at 3:13
  • $\begingroup$ This sounds kind of like meta-learning -- MAML might be a good place to start. arxiv.org/abs/1703.03400 But I'm not sure that anyone has developed a method to solve your exact problem. $\endgroup$ – Sycorax Aug 17 '18 at 2:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.