Sei sulla pagina 1di 4

Genre Classification by Data Mining using Artificial Neural

Networks

Genre classification as a means of managing information is already established in music (e.g.


folk, blues, jazz) and text and is used, alongside topic classification.
This is achieved by data mining the analysis step of the "knowledge discovery in databases"
process because the goal is the extraction of patterns and knowledge from large amounts
of data and also the use of artificial neural networks - are a family of models inspired
by biological neural networks and are used to estimate or approximate functions that can
depend on a large number of inputs and are generally unknown.
The main aim is to retrieve the genre of a song just by knowing its basic attributes which in
turn will help in sorting out huge chunks of unorganised music metadata. There are many
other alternatives for such a function but they are mostly based on the frequency analysis of
the song. Such alternatives require an in-depth knowledge of music and also a system that
requires many layers of neural networks. The difference between this system and the others is
that it is very light weight as it is purely text based and also the processing time required is
relatively less.
The calculation of weights of each attribute, for each genre is done using the perceptron
learning rule. The target value is calculated by using a combination of all the median attribute
values of that genre. This target value is compared with the output value of each song of that
genre in order to calculate the new weight due to that song. This process keeps going till the
error is minimised and the output value falls in the given range of the target value.
Once these weights are calculated, they are combined with the values input by the user in
order to give a final output value. This final output value is compared with the target values
of the different genres. If it lies within a particular range of a genres target value, that genre
is given as the output.
Perceptron Algorithm

Shown above is a schematic of a perceptron-based neuron in which each input is multiplied


by its respective weight which corresponds to the significance of that input and then all the
weight-multiplied inputs are summed up. It is then that these values are passed on to an
activation function which can be as simple as a threshold function.The perceptron learning
algorithm is usually fast if the vectors to be linearly separated are chosen randomly.

The Algorithm is as follows:


The connection weights, wj, are modified by an amount that is proportional to the product of:

The difference between the actual output, y, and the desired output, d.

The input pattern, x.


1. Initialise the weights and threshold to small random numbers.
2. Present a vector x to the neuron inputs and calculate the output.
3. Update the weights according to:

wj(t+1)= w(jt) + (d-y)x

Where,
d is the desired output
t is the iteration number
is the gain or the step size, where 0.0<<1.0
4. Repeat steps 2 and 3 until:
The iteration error is less than a user specified error threshold
A predetermined number of iterations have been completed.

Potrebbero piacerti anche