0
$\begingroup$

I'm trying to make a neural network that detects certain instruments in a song. I don't know for sure if I should use an RNN, CNN OR DNN. Which one is best for this situation?

$\endgroup$
2
  • 2
    $\begingroup$ I suggest you insert your question in the question body instead of the title and provide some more details $\endgroup$
    – user9947
    May 3, 2018 at 12:26
  • $\begingroup$ Without knowing anything about this problem, the question that pops into my mind is "are you looking at patterns to determine the number of instruments in a recording, such as a popular song or symphony?" $\endgroup$
    – DukeZhou
    May 3, 2018 at 18:44

1 Answer 1

2
$\begingroup$

I don't know for sure if I should use an RNN, CNN OR DNN. Which one is best for this situation?

This question or variations of of crop up a lot in DataScience stack exchange too. To paraphrase:

I am trying to do something with X data, and I have a lot of choices for the model. Which is best?

Unfortunately, the answer is generally:

  • It depends on all the fine details of your project

  • Unless someone has done almost your exact project recently (so they were using latest techniques of the model type), then no-one knows a priori which model will get the best result.

  • Optimising machine learning is very much an empirical subject. If you want to know whether A is better than B, you have to try both and measure their performance.

In your case, I think that CNNs and RNNs are both applicable (and you might want to look at a WaveNet-like architecture, which is a variant of CNN, but that could be a bit too advanced to start with). You might have a slight preference for RNN as a starting point if the sequence length to process varies significantly, such that padding input to a CNN would be inefficient. You may also prefer an RNN if the output of your model needs to be a sequence, and doubly so if the output sequence varies in length and is not directly related to the input sequence length (think of natural language translation).

$\endgroup$

Not the answer you're looking for? Browse other questions tagged .