I think you misunderstood me, or maybe I wasn’t clear. I meant “of the strategies which we used to search for musical ideas, none of them involved solving NP-complete problems, and some of them have dried up.” I think what neural nets do to learn about music are pretty close to what humans do—once a learning tool finds a local minimum, it keeps attacking that local minimum until it refines it into something neat. I think a lot of strategies to produce music work like that.
I definitely don’t think most humans intentionally sit down and try to solve NP-complete problems when they write music, and I don’t think humans should do that either.
Actually, what this network does is a lot closer to pure improvisation than the process of successive refinement you’re describing here. Optimization i.e. (search for a local minimum) is used in the training stage, where the network uses a trial-and-error strategy to fit a model of “how music goes”. Once the model is fitted however, generating new pieces is a process of linear prediction, based on what the model has ‘written’ so far—this is actually among the most significant limitations of these models; they’re great for pure inspiration, but they’ll never reach a local optimum or successfully negotiate broader constraints other than by pure chance. That’s why I find it significant that what they come up with is nonetheless innovative and compelling. (There are of course neural-network-based systems that can do a lot more—such as AlphaGo—but I don’t know of anyone using these to make new music.)
Oh, absolutely! It’s misleading for me to talk about it like this because there’s a couple of different workflows:
train for a while to understand existing data. then optimize for a long time to try to impress the activation layer that konws the most about what the data means. (AlphaGo’s evaluation network, Deep Dream) Under this process you spend a long time optimizing for one thing (network’s ability to recognize) and then a long time optimizing for another thing (how much the network likes your current input)
train a neural network to minimize a loss function based on another neural network’s evaluation, then sample its output. (DCGAN) Under this process you spend a long time optimizing for one thing (the neural network’s loss function) but a short time sampling another thing. (outputs from the neural net)
train a neural network to approximate existing data and then just sample its output. (seq2seq, char-rnn, PixelRNN, WaveNet, AlphaGo’s policy network) Under this process you spend a long time optimizing for one thing (the loss function again) but a short time sampling another thing. (outputs from the neural net)
It’s kind of an important distinction because like with humans, neural networks that can improvise in linear time can be sampled really cheaply (taking deterministic time!), while neural networks that need you to do an optimization task are expensive to sample even though you’ve trained them.
Oh, thanks for the link!
I think you misunderstood me, or maybe I wasn’t clear. I meant “of the strategies which we used to search for musical ideas, none of them involved solving NP-complete problems, and some of them have dried up.” I think what neural nets do to learn about music are pretty close to what humans do—once a learning tool finds a local minimum, it keeps attacking that local minimum until it refines it into something neat. I think a lot of strategies to produce music work like that.
I definitely don’t think most humans intentionally sit down and try to solve NP-complete problems when they write music, and I don’t think humans should do that either.
Actually, what this network does is a lot closer to pure improvisation than the process of successive refinement you’re describing here. Optimization i.e. (search for a local minimum) is used in the training stage, where the network uses a trial-and-error strategy to fit a model of “how music goes”. Once the model is fitted however, generating new pieces is a process of linear prediction, based on what the model has ‘written’ so far—this is actually among the most significant limitations of these models; they’re great for pure inspiration, but they’ll never reach a local optimum or successfully negotiate broader constraints other than by pure chance. That’s why I find it significant that what they come up with is nonetheless innovative and compelling. (There are of course neural-network-based systems that can do a lot more—such as AlphaGo—but I don’t know of anyone using these to make new music.)
Oh, absolutely! It’s misleading for me to talk about it like this because there’s a couple of different workflows:
train for a while to understand existing data. then optimize for a long time to try to impress the activation layer that konws the most about what the data means. (AlphaGo’s evaluation network, Deep Dream) Under this process you spend a long time optimizing for one thing (network’s ability to recognize) and then a long time optimizing for another thing (how much the network likes your current input)
train a neural network to minimize a loss function based on another neural network’s evaluation, then sample its output. (DCGAN) Under this process you spend a long time optimizing for one thing (the neural network’s loss function) but a short time sampling another thing. (outputs from the neural net)
train a neural network to approximate existing data and then just sample its output. (seq2seq, char-rnn, PixelRNN, WaveNet, AlphaGo’s policy network) Under this process you spend a long time optimizing for one thing (the loss function again) but a short time sampling another thing. (outputs from the neural net)
It’s kind of an important distinction because like with humans, neural networks that can improvise in linear time can be sampled really cheaply (taking deterministic time!), while neural networks that need you to do an optimization task are expensive to sample even though you’ve trained them.