Not so much updates for this week, as I am still reading through lots of materials and resources regarding CNN and another new variation of neural network – Recurrent Neural Network (RNN). Found a very good website in explaining the underlying structure of different neural network, definitely recommended to read it out
Apart from reading, I am experimenting using a special type of RNN which is LSTM (Long Short Term Memory network) to perform music generation. The idea is to have a set of existing music (I am going to start with Jay Chou song!), extract the features (notes, rests, duration etc.) and approach it as a supervised learning classification problem. Imagine the first 20 notes are fed into the network, and the output of the network is checked against the 21st note. It will be a multiclass classification problem and we can use activation function like softmax to calculate the probabilities for each note / pitch, and get the respective loss value based on how confident are we on certain notes at each of the iteration.
In short, since music usually involved time series information (eg: C chord in verse are usually followed by Am but followed by G in chorus for pop songs), we use recurrent neural network to train with this extra piece of information. And the RNN we used which is LSTM, solves normal RNN’s issue on the long term dependency + vanishing / exploding gradient problem by introduce a memory gate in the recurring process. More information on that when I sit down and digest the details of it; in the mean time, the link mentioned above is definitely much better than my explanation 😀
Hopefully I have some song generated by next week to update on this post!
Featured image by Ilya Yakover