Académique Documents
Professionnel Documents
Culture Documents
ARTIFICIALES
FACULTAD DE INGENIERA
DEPARTAMENTO DE ELECTRNICA
BOGOT D.C.
2003
PONTIFICIA UNIVERSIDAD JAVERIANA
FACULTAD DE INGENIERA
2
ARTCULO 23 DE LA RESOLUCIN No. 13 DE JUNIO DE 1946
Slo velar por que no se publique nada contrario al dogma y a la moral catlica y por que
los trabajos no contengan ataques o polmicas puramente personales. Antes bien, que se
3
A mi mam,
comprensin y afecto
a lo largo de mi vida.
4
A los que incondicionalmente me han brindado
5
A todas las personas que hicieron esto posible.
6
CONTENIDO
Pg.
INTRODUCCIN 15
1. MARCO TERICO 17
1.1. EXTRACCIN DE CARACTERSTICAS Y PREPROCESAMIENTO 17
1.1.1. Extraccin de caractersticas a partir del dominio del tiempo 20
1.1.2. Extraccin de caractersticas a partir del dominio de la frecuencia 22
1.1.3. Extraccin de caractersticas a partir de la transformada Wavelet 23
1.1.3.1. Transformada continua Wavelet 24
1.1.3.2. Transformada discreta Wavelet 25
1.1.4. Preprocesamiento 26
1.2. REDES NEURONALES ARTIFICIALES 28
1.2.1. Red de propagacin inversa (Backpropagation) 31
1.2.1.1. Perceptrn Multinivel 31
1.2.1.2. Backpropagation 33
1.2.2. Red de funciones de base radial (Radial Basis Functions) 34
1.2.3. Seleccin del orden del modelo utilizando Validacin Cruzada 38
1.2.4. Boosting 39
1.2.4.1. Convergencia del error de entrenamiento a cero 42
2. ESPECIFICACIONES 43
2.1. ARQUITECTURA DEL SISTEMA 43
2.2. ESPECIFICACIONES DE LOS GNEROS MUSICALES 44
2.3. ESPECIFICACIONES DEL FORMATO DE LAS CANCIONES 47
2.4. CARACTERSTICAS DE LA BASE DE DATOS 48
2.4.1. Conjunto de Entrenamiento 48
2.4.2. Conjunto de Evaluacin 49
2.5. IMPLEMENTACIN 49
7
3. DESARROLLOS 51
3.1. EXTRACCIN DE PARMETROS 51
3.1.1. Anlisis en tiempo 51
3.1.2. Anlisis en frecuencia 55
3.1.3. Transformada Wavelet 58
3.1.3.1. Energa por Escala 63
3.1.3.2. Patrones rtmicos 64
3.1.4. Resumen de parmetros extrados 70
3.1.5. Preprocesamiento 72
3.2. REDES NEURONALES ARTIFICIALES 73
3.2.1. Redes de Propagacin Inversa (Backpropagation) 73
3.2.2. Redes de funciones de base radial 75
3.2.3. Seleccin del orden del modelo 78
3.2.3.1. 10Fold Cross Validation para la red Backpropagation 78
3.2.3.2. 10Fold Cross Validation para la red de funciones de base radial 79
3.2.4. Mejoras en el desempeo de los clasificadores 79
3.2.5. Boosting 80
4. ANLISIS DE RESULTADOS 84
4.1. CLASIFICADOR RED DE PROPAGACIN INVERSA 84
4.2 CLASIFICADOR RED DE FUNCIONES DE BASE RADIAL 88
4.3. CLASIFICADOR ADABOOST 91
4.4.COMPARACIN ENTRE LOS DIFERENTES CLASIFICADORES
IMPLEMENTADOS 102
5. CONCLUSIONES 105
BIBLIOGRAFA 108
ANEXO A INTERFAZ GRFICA CON EL USUARIO 110
8
LISTA DE TABLAS
Pg.
9
LISTA DE FIGURAS
Pg.
Figura 5. Factores causantes del hecho que la funcin real y la estimada difieran. 30
Figura 8. Modelo de una neurona para una red de funciones de base radial. 35
10
LISTA DE GRFICAS
Pg.
11
Grfica 15. Envolventes de orden cero y uno para los patrones rtmicos. 67
Grfica 20. Nmero mnimo de elementos por cluster en funcin el nmero de clusters. 77
Grfica 23. Tiempo empleado en hacer 10 Fold Cross Validation en funcin del
nmero de neuronas de la capa oculta. 87
Grfica 26. Tiempo empleado en hacer 10 Fold Cross Validation en funcin del
nmero de neuronas de la capa oculta. 90
12
Grfica 34. Tiempo de entrenamiento en funcin del nmero de iteraciones. 97
Grfica 36. Error de Evaluacin para merengue en funcin del nmero de iteraciones. 98
Grfica 37. Error de Evaluacin para salsa en funcin del nmero de iteraciones. 99
Grfica 38. Error de Evaluacin para vallenato en funcin del nmero de iteraciones. 99
13
LISTA DE ANEXOS
Pg.
14
INTRODUCCIN
Bases de datos de msica en formato digital cuyo tamao era difcil imaginar hace unos
aos se comparten hoy en da con gran facilidad a travs de las redes de computadores (por
sistemas capaces de clasificar msica de manera automtica. Sin embargo, son muchos los
estudios que se han venido realizando con el fin de establecer cules son aquellas
Este proyecto est enfocado hacia la clasificacin de canciones en tres gneros a saber:
entradas a una Red Neuronal Artificial. Una vez se han identificado tales caractersticas, se
estudiado el efecto que tiene la aplicacin del algoritmo AdaBoost sobre el desempeo final
del clasificador.
15
Los estudios que se han realizado al respecto son pocos. Seth Golub [2] realiz una tesis de
maestra en la cual prob tres tipos diferentes de clasificadores aplicados a dos gneros
similares, obteniendo un porcentaje de clasificacin correcta del 77%. Paul Scott [3]
msica. Por ejemplo, Foote [4] emple tcnicas espectrales para distinguir entre voz y
msica con un alto grado de exactitud, mientras que Soltau [5] entren una red neuronal
autoasociativa usando la tcnica de Foote para los gneros rock, pop, tecno y clsico. Su
En el primer captulo de este libro se presenta una descripcin de la teora relacionada con
segundo captulo se considera todo lo referente a las especificaciones del proyecto y se hace
anlisis de los resultados obtenidos para todas las pruebas que fueron realizadas. En el
quinto captulo de exponen las conclusiones resultantes del proyecto. Finalmente se brinda
una bibliografa que tiene como objetivo permitir que el lector vaya a las fuentes primarias
16
1. MARCO TERICO
realizada en primera instancia por David Gerhard [1] en un estudio realizado acerca de la
correspondiente a Gnero, y puede verse que junto con Cultura, Compositor y Cantante,
son las formas de clasificar msica por Tipo. Igualmente puede observarse que la msica
Msica
Contenido
Meloda Notas
Tipo
Cultura Gnero Compositor Intrprete
Instrumentos
Familia Tipo Individual
Nmero de Instrumentos
17
La razn por la cual se ha implementado este sistema se debe a que la bsqueda de una
cancin por gnero, es la forma ms natural y frecuente en la cual se realiza este proceso
hecho, sta es la forma en la que cualquier persona buscara en una tienda de msica o en
acuerdo al gnero musical por rock, pop, jazz, clsica, tropical, vallenato, etc. [1]
2.1). Como se muestra, el sistema est compuesto de dos bloques interconectados entre s.
partir del archivo de msica, mientras que el segundo bloque es el sistema clasificador,
ENTRADA SALIDA
Christopher Bishop [6] habla acerca de la importancia que tiene la utilizacin del bloque de
rendimiento final del sistema de clasificacin. El primer objetivo es, como su nombre lo
18
indica, extraer parmetros que permitan diferenciar entre los conjuntos que son usados
como entradas al sistema completo. Esta extraccin de caractersticas debe ser tal, que
complejidad del modelo, mejorar la clasificacin y reducir el tiempo necesario para llevar a
cmputo inmanejables para la fase de entrenamiento. Por ejemplo, una cancin en formato
inferior a 5000.000.
herramientas que permitan analizar las seales, es posible extraer un nmero adecuado de
parmetros en esta parte del sistema. Algunas tcnicas de anlisis en tiempo y frecuencia
(intensidad, duracin, timbre, tono, comps, pulso, escalas meldicas, instrumentos) que
est relacionada con el gnero musical al que pertenecen las muestras analizadas.
19
1.1.1. Extraccin de caractersticas a partir del dominio del tiempo
El volumen Promedio se calcula como el valor RMS de la seal de onda, es decir tomamos
N 1
1
V= sn2 (i ) (1.1)
N i =0
El volumen promedio permite tener una nocin del valor promedio de las muestras, es decir
Vmax - Vmin
VDR = (1.2)
Vmax
Estos dos datos permiten conocer la acumulacin de diferencias existentes sobre ventanas
20
En la ejecucin de la msica, el intrprete usa las variaciones de tiempo, dinmica y
relacionadas con la estructura musical [7]. Una de las herramientas de anlisis de datos es
usar la correlacin con el objetivo de encontrar regularidades, las cuales, de acuerdo con la
Una cancin es mezcla de muchas frecuencias fundamentales que entregan el ritmo. Por
esta razn se debe analizar el espectro de sta y ver como vara a travs del tiempo. Para
diferentes muestras de tiempo sobre una cancin. Esto entrega una medida del intervalo de
R xy = E [ X mYn ] (1.3)
Estos parmetros permiten conocer una tasa de variacin de una muestra a otra dentro de
una misma cancin, tanto en amplitud, como en contenido de frecuencia, lo cual a travs
21
del anlisis de muestras de varios gneros permite identificar dichas caractersticas como
Hay una amplia gama de herramientas matemticas que permiten realizar anlisis de
[8]. La transformada de Fourier de una seal de energa finita est definida como
X ( ) = x(n) e j n (1.4)
n =
Una cancin es muestreada a una frecuencia determinada, que para el caso de seales de
audio es generalmente 44100 Hz. La razn por la cual se muestrea a esta tasa se
fundamenta en el Criterio de Nyquist, el cual establece que para recuperar una seal a
partir de sus muestras, stas deben ser tomadas a una frecuencia igual a superior a dos
veces la frecuencia mxima contenida en dicha seal. Una seal de audio tiene un espectro
que no sobrepasa los 20 kHz, razn por la cual es posible recuperarla si la tasa de muestreo
es 44.1 kHz.
22
Hacia mediados de los aos 60s se desarroll un algoritmo conocido como Transformada
Rpida de Fourier (Fast Fourier Transform FFT) que ayud a realizar una implementacin
para realizar tal transformacin [9]. Por esta razn y por el hecho que es una funcin
incluida en Matlab, sta fue ampliamente utilizada en el proyecto para obtener las
transformadas. Este algoritmo toma como entrada una seal y obtiene su transformada
N
X (k ) = x(i ) N( i 1)( k 1) (1.5)
i =1
En donde N = e ( j 2 ) / N
Hasta el momento se ha hablado del dominio del tiempo y del dominio de la frecuencia por
separado, sin embargo surge la duda de si es necesario poseer informacin que relacione
tiempo y frecuencia para una seal dada. Para responder se hace necesario diferenciar si la
seal es estacionaria o no, puesto que una seal no estacionaria cambia su contenido en
frecuencia con el transcurso del tiempo y en este caso sera til establecer una relacin
entre tiempo y frecuencia. Este es el caso de la msica, la cual es un tipo de seal no
estacionaria.
23
de frecuencia, pues mientras se tiene mayor precisin en el tiempo se pierde precisin en
frecuencia, esto se conoce como el principio de incertidumbre.
La transformada continua Wavelet (CWT por sus siglas en ingls) est definida para una
t
( , s ) = s
1
2
x(t ) dt (1.6)
s
1 t
x (t ) = K 2
( , s ) dsd (1.7)
s s
W ( )
2
K= d (1.8)
24
La transformada Wavelet ( , s ) es una funcin de dos variables, o traslacin que hace
refiere al ancho de dicha funcin. Es importante resaltar que aunque no exista la variable
frecuencia dentro de la definicin de la transformada Wavelet, la variable escala se
relaciona con este parmetro, donde altas escalas hacen referencia a bajas frecuencias
mientras bajas escalas hacen referencia a altas frecuencias [10].
x2 x2
(t ) = A 1 e 2 2
(1.9)
2
Utilizando la transformada Discreta Wavelet (DWT por sus siglas en ingls) es posible
x (t ) = a , s , s ( t ) (1.10)
= s =
donde
, s ( t ) = 2 2 ( 2 s t )
s
(1.11)
25
As el grupo de coeficientes bidimensionales a ,s es llamado transformada discreta
Wavelet. [11].
1.1.4. Preprocesamiento
conocimiento previo hace referencia a informacin relevante que puede ser usada para
entrenamiento [6].
tiempos necesarios para poder entrenar la Red Neuronal, debido a que se descarta contenido
poco informativo. Adems es adecuado realizar otro proceso conocido como escalamiento
lineal, mediante el cual se pretende que todos los parmetros de entrada tengan valores en
valores que difieren en varios rdenes de magnitud. Para el proyecto se realiz una
26
normalizacin de todas las variables con respecto a los valores que son obtenidos para todas
las muestras, haciendo que todas las entradas quedaran dentro del intervalo [-1,1].
de ellas y descartar el otro, partiendo del supuesto que hay ciertas entradas que contienen
mayor informacin que otras. Un procedimiento que seleccione las entradas adecuadas
debe contar con un criterio que permita discernir qu variables son mejores que otras. El
subconjunto de entradas ptimo depender, en gran medida, del sistema clasificador que
ser empleado. As mismo, este proceso de seleccin debera idealmente ser realizado
los resultados que se obtienen para cada uno de ellos. Una aproximacin como sta resulta
demasiadas veces. Por esta razn se realiz una transformacin conocida como blanqueo
[12] o KLT (Ver Numeral 3.1.5.). Inicialmente se agrupan las variables de entrada xi en un
matriz con respecto a todos las muestras del conjunto de entrenamiento dados por:
N
1
x= xn (1.12)
N n =1
1
( )( )
T
= xn x xn x (1.13)
N 1
u j = j u j (1.14)
27
Puede definirse una transformacin lineal de la entradas que est dada por
( )
n
x = 1/ 2 U T x n x (1.15)
En donde
En el nuevo espacio de coordenadas que ha sido generado, los datos tienen una media de
Las Redes Neuronales surgieron como una aproximacin a la Inteligencia Artificial hecha
fsico del cerebro. Actualmente han encontrado gran acogida en procesos de bajo nivel
han revelado que un ser humano promedio tiene cerca de 109 neuronas en su cerebro,
unidas entre s por un nmero cercano a 1011 conexiones. Se presume que todas estas
28
En este enfoque, una neurona es considerada como un dispositivo computacional que tiene
2 clases de entradas: Excitatorias e Inhibitorias, as como una salida (Figura 3). Las Redes
Neuronales han sido aplicadas con gran xito en el rea del Reconocimiento de Patrones,
tal que se consiga xito en la clasificacin de nuevas entradas que no fueron usadas durante
Entradas Excitatorias +
+
Seal de Activacin
Entradas Inhibitorias
Una Red Neuronal Artificial es el segundo gran bloque del proyecto, y tiene como funcin
llevar a cabo la clasificacin de las canciones en los gneros Merengue, Salsa y Vallenato.
de datos de canciones correctamente etiquetadas (es decir que se conoce el gnero de cada
una las canciones contenidas en dicho conjunto) que permite entrenar y evaluar la red. Las
entradas y salidas del sistema son conocidas y se pretende encontrar la funcin desconocida
29
finito N y se estima una funcin h a partir de tales datos mediante la utilizacin de algn
algoritmo.
fueron utilizadas para el entrenamiento. Esto significa que se busca que la probabilidad de
que h( x) y sea baja (Idealmente debera ser cero). Para tal fin se asume que los datos del
cuando el objetivo del algoritmo del aprendizaje es hacerlas tan parecidas como sea posible.
Figura 5. Factores causantes del hecho que la funcin real y la estimada difieran.
30
En la Figura 5 se muestran esquemticamente los diversos errores que se presentan en el
proceso de entrenamiento de una Red Neuronal. El primero de ellos se conoce como error
se conoce como error de estimacin y se debe a que el conjunto de entrenamiento del cual
tiempo de procesamiento.
capas. Tpicamente se manejan tres capas, una capa de entrada que acepta las variables de
entrada que se usan en el proceso de clasificacin, una capa oculta, y una capa de salida con
una neurona por cada clase. El principio de la red consiste en que cuando los datos de
patrones de entrada son presentados, las neuronas de la de la red realizan clculos en cada
capa y la seal de salida indica cul es la clase apropiada para el dato de entrada. Se espera
31
que exista un valor de salida alto en la neurona de la clase correcta y un valor de salida
bajo en las dems. ste pertenece a la clase de redes neuronales con aprendizaje
adems, la complejidad de esta red, puede ser modificada cambiando el nmero de capas o
el nmero de unidades por capa. La gran ventaja de esta arquitectura es que si se tienen
Ahora bien, el objetivo que se desea alcanzar en definitiva, es entrenar la red; intentando
disminuir el error cuadrtico medio de la salida con respecto a la entrada, para esto se
entrenamiento a travs de la variacin iterativa de los de los valores de los pesos que
conectan las diferentes neuronas, para corregir los valores de las salidas estimadas. Esto se
32
1.2.1.2. Backpropagation
salidas son usadas para entrenar una red que puede aproximar una funcin, asociando un
Se espera que una red correctamente entrenada produzca respuestas correctas cuando se
presentan entradas nunca vistas. Esta propiedad de generalizacin hace posible entrenar
una red con un conjunto representativo de parejas entrada / salida y que se obtengan buenos
resultados sin necesitad de entrenar la red con todas las posibles parejas .
(O Oi )
M
1
Ek = i
(k )
(1.18)
2 i =1
33
Donde M es el nmero de neuronas, O i es la salida esperada y O i( k ) es la salida para cada
poca.
Este tipo de redes neuronales hacen uso de las funciones de base radial. stas son un tipo
montonamente a medida que la distancia entre el punto central y otro punto aumenta. La
xc
2
h( x) = exp (1.19)
r2
Hacia 1988, Broomhead y Lowe [15] introdujeron el modelo de una red de funciones de
base radial que puede ser usada en redes de una o mltiples capas. Sin embargo, este tipo
de redes han sido asociadas primordialmente con una topologa de una capa escondida,
34
La relacin entre la entrada y la salida para este tipo de redes es
M
yk ( x ) = wkj j ( x) + wk 0 (1.20)
j =1
2
xj
j = exp (1.21)
2 2j
vector que determina el centro de la funcin de base radial j . El modelo de una neurona
para este tipo de red se ilustra en la Figura 8, mientras que la arquitectura de estas redes
Figura 8. Modelo de una neurona para una red de funciones de base radial [10].
35
Figura 9. Arquitectura de una red de funciones de base radial [10].
La forma de las redes de funciones de base radial puede ser generalizada para matrices de
1
( x j ) j 1 ( x j )
T
j = exp (1.22)
2
Un aspecto fundamental para este tipo de redes es la diferencia que existe entre los pesos de
la capa de funciones de base radial y los pesos de la capa lineal. Esta diferencia radica en el
hecho que los pesos de la primera capa son encontrados mediante un proceso de
este primera parte del proceso de aprendizaje se usa el conjunto de los datos de entrada con
el fin de determinar los parmetros que definen las funciones de base radial, tratando de
pesos de la segunda capa (capa lineal). (1.23 ) puede ser escrita de la forma
M
yk ( x ) = wkj j ( x) (1.23)
j =0
36
y ( x) = W (1.24)
Los pesos pueden ser optimizados mediante la bsqueda del mnimo de una funcin de
1
{y ( x ) t }
2
E= k
n n
k (1.25)
2 n k
En donde tnk es la etiqueta para la salida k cuando la entrada a la red es el vector x n . Los
T W T = T T (1.26)
W T = T (1.27)
Con el fin de determinar los parmetros que definen a las funciones de base radial, se
El algoritmo de agrupacin K-means desarrollado por Moody y Darken [17] es uno de los
ms usados y fue el que se utiliz en este proyecto. El pseudo cdigo de este algoritmo se
37
1.2.3. Seleccin del orden del modelo utilizando Validacin Cruzada.
encontrar el tamao ptimo de la Red Neuronal, debido a que son procesos independientes.
Sin embargo, otro de los objetivos que se persiguen durante un proceso de entrenamiento es
determinar el tamao de la red que tenga el mejor comportamiento frente a entradas nuevas.
Uno de los procedimientos ms sencillos consiste en evaluar la red para conjuntos de datos
que no fueron empleados durante la fase de entrenamiento. Para realizar esto se entrena
uso del subconjunto que no fue empleado en el proceso de entrenamiento. Este proceso se
repite para cada una de las S posibilidades, y el error definitivo es promediado sobre los S
resultados obtenidos.
Este procedimiento tiene como ventajas su sencillez y el hecho que suele funcionar bien,
mientras que sus principales desventajas son dos: El nmero de datos de entrenamiento se
38
1.2.4. Boosting
aprendizaje [19]. Se busca tomar un clasificador dbil que sea mejor que adivinar, es decir
que su probabilidad de error sea mayor a 0.5 para ser mejorado arbitriamente casi a
de clasificacin para formar una funcin con un rendimiento mucho mayor. El principio
bsico es la combinacin lineal de clasificadores dbiles para formar una hiptesis mejor,
T
h f ( x) = t ht ( x) (1.28)
t =1
conjunto de entrada como X y se denotan las posibles salidas de una hiptesis como Y. Es
decir se estima una hiptesis cuya funcin es h : X Y , donde se usan las parejas de datos
[20].
estimar una funcin que est cerca de la ptima basada en la informacin disponible dentro
39
del conjunto de entrenamiento para cada una de las hiptesis. Para disear esta distribucin
se inicia para el primer entrenamiento con una distribucin uniforme, lo que quiere decir
que cualquiera de las muestras del conjunto de entrada se puede elegir con la misma
de dicha funcin de probabilidad, basada en los datos obtenidos y se le asigna una mayor
poca del entrenamiento se tiene una distribucin d asignada al conjunto de datos en dicha
poca, y con base en sta, se construye un clasificador dbil h(x). Estos pesos son
N
t (ht , d (t ) ) = d n(t ) ( yn ht ( xn ) ) (1.29)
n =1
dbil. Se puede inferir que cuanto mayor porcentaje de error haya obtenido un clasificador
dbil, menor va a ser la credibilidad y menor va a ser su peso dentro de la hiptesis final,
este valor t es
1 1 t
t = log (1.30)
2 t
40
Donde el valor del error debe ser menor a con el objetivo de tener valores t positivos.
t +1 d nt et yn ht ( xn )
d n = (1.31)
zt
Esto quiere decir que la probabilidad del n-simo elemento del conjunto de entrenamiento
para la poca t+1 va a tener una probabilidad que est dada por la probabilidad para l
o no. La distribucin para el tiempo t+1 es tal que el clasificador previo tiene error previo
. En caso de que haya sido correcto, su probabilidad disminuye con el fin de mostrarle a
N
correctamente. La constante zt es de normalizacin con el fin que d nt +1 = 1 .
n =1
clasificadores dbiles, as
T
hF ( x) = t ht ( x) (1.32)
t =1
41
1.2.4.1. Convergencia del error de entrenamiento a cero
Si se presentan las condiciones apropiadas para garantizar que el error de clasificacin sea
menor a para cada clasificador dbil, es posible demostrar que est condicin es
suficiente para garantizar que el error de la hiptesis final tiende a cero. Esto se debe a que
iteraciones aumenta, el error de entrenamiento baja hasta un punto en el cual se hace cero.
generalizacin siga disminuyendo con el entrenamiento, sin que la red genere sobreajuste a
42
2. ESPECIFICACIONES
con una base de datos de muestras que estn correctamente clasificadas, de acuerdo a las
posibles etiquetas en las cuales sern categorizadas las entradas. Los resultados en la
mejores en cuanto el tamao de dicha base de datos aumente. Una afirmacin como la
anterior sugerira elevar el nmero de muestras de la base de datos tanto como sea posible.
Sin embargo, la limitacin est impuesta por el hecho que no se dispone de una capacidad
computacional infinita.
parmetros, que permita descartar caractersticas que aporten poca informacin al sistema
es el segundo aspecto a tener en cuenta, de tal forma que la clasificacin sea basada en
aquellos parmetros que permiten a un ser humano discernir entre dos o ms clases
43
La seleccin del tipo de clasificador que ser usado es el tercer aspecto. Para el caso de
este proyecto, se decidi emplear Redes Neuronales Artificiales para tal fin, basndose en
realizaron comparaciones con los resultados obtenidos en cada uno de los casos. Se
procedi con el entrenamiento para cada una de las redes escogidas con el fin de poder
Como se menciona en un principio, la Red Neuronal se disea para ser capaz de clasificar
canciones en tres gneros: Merengue, Salsa y Vallenato. Son dos las razones que motivan
la realizacin de este sistema: Primero, dentro de la consulta previa que se llev a cabo
acerca del estado del arte en este campo, jams de encontr un sistema como ste. Los
Rock, Pop, Trance, Country y otros gneros propios de otras culturas. Aqu es donde nace
la segunda motivacin: Se desea realizar un sistema que est de acuerdo con la cultura de
nuestro pas, en donde la msica tropical ocupa un lugar importante en cuanto a la cantidad
adeptos.
44
BASE DE DATOS
Preprocesamiento
Preprocesamiento
Extraccin Informacin Relevante
Reduccin de la Dimensionalidad
Algoritmo de Entrenamiento
de la Red Neuronal Red Neuronal Entrenada
Resultado Sugerido
por el Clasificador
45
Una dificultad adicional a la realizacin del proyecto es el hecho que estos tres gneros
musicales tienen races semejantes, razn por la cual la tarea de clasificacin es un poco
Merengue: El merengue se desarroll a mediados del siglo XVIII como una variante
Repblica Dominicana hacia 1930, marca los orgenes de este gnero y de todos los
como la salsa boricua, la salsa cubana, la salsa venezolana, la salsa de Cali y la salsa
panamea. [22]
friccin, de percusin y de viento, los cuales se unen para darle vida al vallenato. La
46
2.3. ESPECIFICACIONES DEL FORMATO DE LAS CANCIONES
Actualmente es posible encontrar varios formatos digitales de audio. En los ltimos aos
que antes tenan tamaos 10 veces superiores a los que ahora tienen. Esa es la razn
fundamental por la cual grandes cantidades de msica en formato digital son compartidas a
travs de Internet. Otro formato ampliamente difundido es el WAV. Sin embargo, este
archivo WAV es factible porque contiene los valores de las amplitudes de una cancin a
travs del tiempo. No sucede lo mismo con los archivos MP3, los cuales vienen
legal y gratuita.
Con el fin de asegurar una mnima calidad dentro de las canciones que componen la base de
Canciones en formato MP3: La calidad escogida fue 128 kbps, que corresponde a
47
2.4. CARACTERSTICAS DE LA BASE DE DATOS
La base de datos con la cual se trabaj consta de 500 canciones, repartidas de la siguiente
forma:
170 merengues.
177 salsas.
163 vallenatos.
Como se mencion anteriormente, el conjunto de entrenamiento debe ser tan grande como
En este caso, se decidi tomar un 90% del nmero de canciones de la base de datos para
143 merengues.
160 salsas.
147 vallenatos.
48
2.4.2. Conjunto de Evaluacin
desempeo de la Red, una vez haba sido entrenada. Este conjunto est compuesto de 50
17 merengues
17 salsas
16 vallenatos
2.5. IMPLEMENTACIN
Sin embargo, es preciso aclarar que absolutamente todo el cdigo necesario fue
implementado sin hacer uso de las funciones del toolbox de Redes Neuronales. Este
para redes de propagacin inversa, pero tiene muy poca flexibilidad en cuanto a redes de
funciones de base radial y no tiene nada relacionado con Boosting. Sin embargo, no se
emple ninguna funcin del toolbox, porque uno de los objetivos del proyecto era hacer
1
Matlab. The MathWorks, Inc. Versin 6.1.0.450. Release 12.1.
49
una comparacin entre estos tres tipos de redes bajo las mismas condiciones de prueba para
especificaciones:
50
3. DESARROLLOS
Las muestras que se toman a partir de las canciones en formato WAV tienen una duracin
de 1.4861 segundos a partir de canciones cuya tasa de muestreo es 44.1 kHz. Esto
significa que en un segundo habr 44100 valores discretos (si la cancin es monofnica), de
forma tal que se toman 216 = 65536 muestras para la extraccin de parmetros.
La autocorrelacin es una medida estadstica de la similitud de una seal con ella misma
ventanas de tiempo se obtiene una serie de valores que generan una curva de
un pico en la curva en dicho valor. Como la seal est variando con el tiempo, se realiza
una toma de muestras de la seal para comparar dichas ventanas de tiempo. Entonces la
51
Para que los parmetros mostrados anteriormente sean de utilidad, es necesario que
permitan realizar una diferenciacin bsica de los diferentes ritmos y que mantengan cierto
nivel de similitud en el transcurso del tiempo. Por eso se prueba este primer elemento para
cada uno de los ritmos. A continuacin se presentan las grficas de cada uno de los ritmos
en dos instantes de tiempo diferentes, en donde para calcular cada una de estas muestras se
conjunto de merengue.
Al observarse las dos grficas, para los dos diferentes valores de tiempo, se observa que se
cumple la primera condicin para los parmetros a utilizar, pues no existen variaciones
52
Grfica 2. Correlacin Componentes de Frecuencia para la salsa Cali Aj de Grupo Niche para 2
tiempos.
Las diferencias existentes entre las grficas de merengue y de salsa se deben a que la gran
salsa, el ritmo lo lleva la percusin y el bajo, por lo cual los valores ms altos de
53
Por la existencia de un instrumento como el acorden, que lleva los bajos dentro de la
cancin y tambin lleva las frecuencias altas de la cancin, se puede ver que las grficas de
vallenato tienen una distribucin ms uniforme. Una vez se ha visto que la autocorrelacin
para los componentes de frecuencia entre los tres ritmos es diferente, se obtienen como
parmetros dos valores estadstico simples como son la media y la varianza, que permiten
Los volmenes promedio y dinmico que se derivan a partir de (1.1) y (1.2) tambin son
Otro de los parmetros extrados fue usado en un estudio previo que realiz Golub [2] en un
como
N
1
loudness = log 2 1 + at (3.1)
N t =1
demasiado altos. Con el fin de evitar este problema se tomaron muestras cuya duracin es
1.4864 segundos. La razn de la escogencia de este nmero de debe al hecho que algunos
54
3.1.2. Anlisis en frecuencia
por esta razn se tomaron muestras de duracin 1.4861 segundos (216 = 65536 muestras) a
como entrada al bloque de extraccin de caractersticas el promedio de los dos canales del
archivo estereofnico. Tomar la resta de los dos, o alguno de ellos result en la prdida de
perteneciente al gnero merengue, las FFT del primer canal y de la resta de ambos canales
respectivamente. All es claro que el tomar la resta resulta en una prdida de informacin
contenida mayormente en el rango que va desde 0 hasta 1000 Hz, que es donde se
encuentran caractersticas tales como la percusin, que ayudan a diferenciar entre diferentes
realizar una decimacin de orden 2, es decir tomar slo una de cada dos muestras, sin
perder informacin relevante. Algunos de los parmetros que fueron usados en este
55
-4
x 10 FFT de la seal del primer canal del archivo de audio estereofnico
3.5
2.5
Magnitud de la FFT
1.5
0.5
0
0 500 1000 1500 2000 2500
Frecuencia (Hz)
Grfica 4. Magnitud de la FFT del primer canal en funcin de la frecuencia para la cancin
Nuestro Amor de Eddie Herrera.
-4
x 10 FFT de la seal resultante al restar los dos canales de un archivo de audio estereofnico
8
6
Magnitud de la FFT
0
0 500 1000 1500 2000 2500
Frecuencia (Hz)
56
Estos parmetros son: El centroide, el ancho de banda y el roll-off. El centroide fue
explicado por Wold [26] como una medida del brillo de una cancin y corresponde a una
N
f =1
f H( f )
centroide = N
(3.2)
f =1
H( f )
( centroide f ) H ( f )
N
f =1
bandwidth = N
(3.3)
f =1
H( f )
El roll-off est relacionado con la forma espectral de una seal, y se define como el nmero
R N
f =1
H ( f ) = 0.85 f =1
H( f ) (3.4)
Hay otro par de parmetros que fueron extrados a partir de la observacin y estudio de las
grficas que se obtienen al calcular la FFT para canciones pertenecientes a los tres gneros
que hacen parte del proyecto y que se explicarn a continuacin. En la grfica 6 se muestra
la FFT, que es obtenida tpicamente para 3 canciones que pertenecen a gneros distintos.
armnicas tanto para bajas como para medias frecuencias. Por su parte, la cancin de
vallenato tiene un mayor contenido de armnicas que la cancin de salsa, siendo esta ltima
57
Por esta razn se extrajeron como caractersticas los promedios de los valores absolutos de
hecho de que estos parmetros surgieron de la observacin de grficas para pruebas que se
-4
x 10 FFT merengue - El rompecintura
1
0.8
0.6
0.4
0.2
0
0 2000 4000 6000 8000 10000 12000
-4 FFT salsa - Que alguien me diga
x 10
3
0
0 2000 4000 6000 8000 10000 12000
-5
x 10 FFT vallenato - Sin medir distancias
3
0
0 2000 4000 6000 8000 10000 12000
transformada discreta Wavelet y como funcin madre, al sombrero mejicano, definido por
58
(1 x 2 ) e
2 14 x2
(t ) = 2
(3.5)
3
grupos de estos. Es importante resaltar que, aunque esta separacin no tiene en cuenta las
rtmicas audiblemente diferenciables y que logran marcar diferencia entre los gneros por
clasificar.
Una razn adicional para trabajar con una muestra cuya longitud es la dicha en el numeral
3.1., es poder capturar durante ms de un periodo los aportes rtmicos de inters en este
estudio.
Wavelet, empieza por una bsqueda general en un intervalo muy amplio de escalas,
59
Grfica 7. Transformada Wavelet del merengue Nuestro Amor de Eddie Herrera.
60
Grfica 8. Detalles de la transformada Wavelet para un fragmento de merengue.
[1,400], tal como se aprecia en la grfica 8. Sin embargo, hasta este punto no se ha
muestreado la seal, y los tiempos de procesamiento son muy altos, as que se hace
necesario reducir el nmero de muestras de la seal, sin que esto implique reducir el rango
tambin en la escala de la transformada Wavelet, se hicieron pruebas para ver hasta que
61
Grfica 9. Transformada Wavelet para 2 canciones del los gneros merengue y salsa con diferentes
tasas de muestreo.Columna Izquierda: Merengue. Columna Derecha: Salsa
a) 22050Hz b) 11025Hz c) 5512.5 Hz d) 2756.25 Hz
62
punto es posible muestrear sin que se pierdan las proporciones de las singularidades
Tal como se ve en la grfica 9, de las pruebas realizadas para diferentes canciones de los
gneros a clasificar, es posible muestrear hasta 5512.5 Hz sin prdida de las proporciones
con respecto a la seal original. As el nmero de muestras tomadas se reduce a 8192 ( 213 ),
que as mismo cumple con ser potencia de 2 y minimiza el tiempo de procesamiento de este
algoritmo.
E (s) = a , s (3.6)
Esta funcin de energa se caracteriza con su media y varianza, adems es de inters para
cules escalas E ( s ) tiene mximos, as que se hallan los mximos de esta funcin y se
63
Grfica 10. Transformada Wavelet y su respectiva Energa para cada escala.
consecuencia, cules frecuencias son las de mayor importancia a nivel rtmico, ya que una
mayor energa implica que se escuchan con mayor intensidad, presentando particular
De esta forma, se escogen estas escalas y se selecciona todo el plano de traslacin para
dichas escalas, cada una de las cuales contiene un patrn rtmico que es audiblemente
distinguible y que guarda estrecha relacin con las diferentes familias de instrumentos y las
voces presentes en dicho fragmento musical. Otra caracterstica importante es que con estos
64
Grfica 11. Fragmento original antes de procesar.
Esto no solamente es comprobable por medio de la forma de onda sino tambin se percibe
al escuchar los patrones y el fragmento original. Tambin es muy importante resaltar que
cada uno de estos patrones rtmicos es muy puro en frecuencia, es decir que existe un
65
componente en frecuencia muy relevante y con bajo contenido armnico. En las grficas
13 y 14 se presentan los espectros de frecuencia tanto del fragmento original como de los
patrones rtmicos.
66
Esta frecuencia fundamental en cada patrn rtmico ya est representada en la escala que
manifiesta la percepcin del ritmo, pues esta envolvente guarda relacin con el volumen.
cero y orden uno para reconstruir la envolvente. Sin embargo es necesario aplicar este
mtodo varias veces para conseguir buenos resultados, como se muestran en la grfica 15.
Envolvente orden 0 para el primer patrn rtmico. Iteracin 2 Envolvente orden 1 para el primer patrn rtmico Iteracin 2
2.5 2.5
2 2
1.5 1.5
d d
Amplitud
Amplitud
uti 1 uti 1
pl pl
m m
A 0.5 A 0.5
0 0
-0.5 -0.5
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 0 1000 2000 3000 4000 5000 6000 7000 8000 9000
Traslacin Traslacin
Envolvente orden 0 para el segundo patrn rtmico. Iteracin 2 Envolvente orden 1 para el segundo patrn rtmico. Iteracin 2
2 1.6
1.4
1.5 1.2
1
1 0.8
d d
Amplitud
Amplitud
Grfica 15. Envolventes de orden cero y uno para los patrones rtmicos.
67
En el segundo mtodo, se hallan mximos locales y consta de dos pasos. En el primer paso,
conforma a partir de los mximos de cada uno de estos intervalos. Este mtodo adems de
Envolvente para el primer patrn rtmico. Mtodo 2 Envolvente para el segundo patrn rtmico. Mtodo 2.
1.8 2.5
1.6
1.4 2
1.2
1.5
Amplitud
Amplitud
0.8
1
0.6
0.4 0.5
0.2
0 0
0 50 100 150 200 250 300 0 50 100 150 200 250 300
Traslacin Traslacin
Grfica 16. Envolventes de los patrones rtmicos utilizando el mtodo de mximos locales.
Debido a la simplicidad de este mtodo y a los resultados similares con el primero se utiliza
este segundo para la obtencin de la envolvente de los patrones rtmicos. Estas funciones
rpida de Fourier (FFT), sin tener en cuenta su media y tomando solo una de las mitades
68
Amplitud de la FFT de la envolvente del primer patrn rtmico Amplitud de la FFT de la envolvente del segundo patrn rtmico
25 35
30
20
25
15
Amplitud
20
Amplitud
15
10
10
5
5
0 0
0 20 40 60 80 100 120 140 0 20 40 60 80 100 120 140
Frecuencia Frecuencia
Puede concluirse de la grfica 17 que en este caso la envolvente del primer patrn rtmico,
y en consecuencia el patrn rtmico, ocurren a una tasa mayor que el segundo patrn, pero
considerando similares sus armnicas. Esto puede constatarse tambin con la grfica 12 y,
Por otra parte se analizan las fases de la FFT de las envolventes tal como se presentan en la
Grfica 18.
69
Fase de la FFT de la envolvente para el primer patrn rtmico Fase de la FFT de la envolvente para el segundo patrn rtmico
10 35
0 30
-10 25
-20 20
Fase
Fase
-30 15
-40 10
-50 5
-60 0
-70 -5
0 20 40 60 80 100 120 140 0 20 40 60 80 100 120 140
Frecuencia Frecuencia
interesante hallar una relacin entre ellas, para este fin se toma como parmetro la
A continuacin se presenta una tabla que resume los parmetros que fueron extrados
70
Volumen promedio
Parmetros
frecuencia. de tiempo
Volumen dinmico
Media de la autocorrelacin de las componentes de frecuencia.
Desviacin estndar de la autocorrelacin de las componentes de frecuencia.
Sonoridad
Centroide
Parmetros
Ancho de banda
de
Roll-off
Media de las componentes de frecuencia entre 0 y 2.5kHz
Media de las componentes de frecuencia entre 2.5kHz y 10kHz
Media de la funcin energa por escala.
Varianza de la funcin energa por escala.
Primer mximo de la funcin energa por escala.
Segundo mximo de la funcin energa por escala.
Escala primer mximo de la funcin energa por escala.
Escala segundo mximo de la funcin energa por escala.
Media de la envolvente del primer patrn rtmico.
Parmetros de la Transformada Wavelet
71
3.1.5. Preprocesamiento
Un total de 33 parmetros son extrados a partir de las canciones para el caso particular de
las magnitudes obtenidas para dichos valores y se observa claramente lo que se mencion
anteriormente.
0.2
0.15
0.1
0.05
0
0 5 10 15 20 25 30 35
72
Como criterio para seleccionar el nmero de parmetros que fueron usados como entrada a
la Red Neuronal Artificial, se tom el valor mximo de los valores propios y se descartaron
todos aquellos que tenan una magnitud 100 veces menor que dicho valor. Esto dio como
la forma ideal de determinar cules parmetros deben ser usados como entrada a una Red
Neuronal, es usar diferentes subconjuntos como entrada y evaluar el desempeo general del
Sin embargo esto es demasiado ineficiente y es una de las razones por las cuales se utiliz
El pseudo cdigo del algoritmo de entrenamiento de propagacin inversa del error para
Repita
N
Calcule la salida para la primera capa G j = f X iWhji + WhjB
i =1
73
K
Calcule la salida total Fj = f GiWoji + WojB
i =1
Fin.
Repita para cada uno de las salidas Fj para todo j desde 1 hasta M
oj = (Y j F j )[F j (1 F j )]
Fin
1
f ( x) = (3.7)
1 + e x
2
H = Tp tal que Tp F es mnima (3.8)
74
3.2.2. Redes de funciones de base radial
Activacin Radial)
Repita
Fin.
1
i = xj
j j j
Fin.
1
i2 = ( x i ) ( x i )
T
j 1 x j
W T = T
75
En la implementacin del algoritmo fue necesario tomar ciertas precauciones y realizar
primera parte del pseudo-cdigo corresponde al algoritmo de agrupacin K-means que fue
mencionado en el numeral 1.2.2. Es posible ver que los clusters resultantes dependern de
numerosas pruebas fue posible verificar que hay ocasiones en las cuales resultan grupos
base radial sube (esto es, el nmero de clusters aumenta), el algoritmo necesita un mayor
variaciones. Con el fin de solucionar este inconveniente se impuso una condicin sobre el
nmero mnimo de elementos para cada uno de los clusters as: Si se desea agrupar en 2
conjuntos, el nmero de elementos por grupo puede ser muy grande, mientras que si el
deseo es agrupar en 20 conjuntos, ese nmero mnimo de elementos debe ser pequeo.
elementos mnimo del grupo disminuye a medida que el nmero de clusters aumenta.
Tambin fue posible observar que el porcentaje final de clasificacin correcta para el
conjunto de evaluacin es superior al introducir este cambio. Esto de debe a que se est
realizando una distribucin de elementos ms uniforme en cada uno de los grupos, mientras
76
que en un principio podan resultar grupos que tienen un alto nmero de elementos y otros
20
Nmero mnimo de elementos por cluster
15
10
0
2 4 6 8 10 12 14 16 18 20
Nmero de Cluster
Grfica 20. Nmero mnimo de elementos por cluster en funcin el nmero de clusters.
Otro aspecto interesante durante este estudio fue observar el desempeo de la red en
funcin del nmero de neuronas de la capa escondida para determinar el tamao ptimo de
77
3.2.3. Seleccin del orden del modelo
Con el objetivo de encontrar el orden del modelo adecuado para las redes de propagacin
inversa y de funciones de base radial se realizaron pruebas haciendo uso del proceso de 10
subconjuntos de tal forma que la red es entrenada con 9 subconjuntos y validada con el
conjunto restante. Este proceso se repite para cada una de las 10 posibles combinaciones.
Al final, los errores del proceso de validacin son promediados escogiendo el mejor.
inversa se decidi entrenar redes de orden 2 a 20. Para cada una de stas se utilizaron los
de 0.01 para todas las pocas y una condicin de terminacin con un error mximo de
escogi el mejor, de tal forma que para cada orden se escogieron 10 redes.
78
3.2.3.2. 10Fold Cross Validation para la red de funciones de base radial
Se hicieron pruebas colocando desde 2 hasta 20 neuronas para la capa de neuronas cuya
funcin de activacin es del tipo radial. Como se mencion en el numeral 3.2.2., los
clusters dependen del la inicializacin de los i que se realice al principio del algoritmo.
Por esta razn, y con el objetivo de encontrar la mejor red posible se decidi realizar un
total de 250 iteraciones para cada uno de los 10 subconjuntos, guardando el resultado de
Este concepto se emplea con el fin de obtener desempeos superiores a aquellos que
En el caso particular de este proyecto se extrajeron muestras de las canciones cuya duracin
fue mencionada anteriormente. Sin embargo las canciones de los gneros estudiados
de velocidad y muchos otros. Por ejemplo, la inmensa mayora de las canciones presentan
79
Con el fin de compensar este caracterstica se incorpor un sistema de votacin 2 de 3, en
3.2.5. Boosting
evaluacin a medida que la red se sigue entrenando, incluso despus de que el error de
entrenamiento ha alcanzado el valor de cero [27]. Se escoge como clasificador dbil una
red de funciones de base radial debido a que los tiempos de procesamiento para las
funciones de base radial son inferiores a aquellos obtenidos para el entrenamiento de una
1
Se hace uniforme Dt (i ) =
m
Se calcula t R
Se actualiza
Dt (i)e( t t ( i ))
Dt +1 (i ) =
Zt
80
1 si H t (i ) = Y (i )
donde (i ) es un factor tal que (i ) =
1 si H t (i ) Y (i )
Fin
T
H (i ) = p tal que t gt (i ) es mxima
t =1
Puede notarse que para la primera iteracin que el algoritmo tena igual probabilidad de
equivocarse con cualquier cancin, por lo cual la distribucin inicial asigna igual
acuerdo al resultado obtenido por la red al momento de clasificar una muestra, si esta es
muestras bootstrap, lo que se desea con este tipo de conjunto, es que cada clasificador dbil
se entrene con un conjunto de muestras aleatorio, pero haciendo mayor nfasis en las
canciones que no han sido clasificadas correctamente con el fin de llevar a cero el error de
entrenamiento.
81
poca t
0 1
Cancin mal clasificada
poca t +1
0 1
Figura 11. Probabilidad de seleccin en la muestra bootstrap.
En este caso se utiliz como clasificador dbil una red de funciones de base radial de orden
necesario calcular su error para poder realizar los respectivos ajustes para la siguiente
iteracin. Este error es calculado utilizando como la distancia euclidiana entre todos los
Con el valor del error se procede a calcular el coeficiente a que se define como:
1 1- i
i = log (3.9)
2 i
coeficiente entrega un grado de credibilidad para cada uno de los clasificadores dbiles y
82
Los clasificadores dbiles obtenidos se utilizan para calcular el error de la hiptesis final.
A partir de la suma de hiptesis parciales se genera la anterior hiptesis final, con la cual se
calcula el error de entrenamiento y la distribucin de mrgenes para cada una de las clases
83
4. ANLISIS DE RESULTADOS
(BACKPROPAGATION)
subconjuntos de forma tal que para cada iteracin se contaba con 405 canciones para
70
60
Porcentaje Promedio de Clasificacin Correcta
50
40
30
20
10
0
2 4 6 8 10 12 14 16 18 20
Nmero de Neuronas
Grfica 21. Porcentaje Promedio de Clasificacin Correcta obtenido empleando 10 Fold Cross
Validation.
84
All se puede observar que el error promedio de clasificacin para el conjunto de validacin
de clasificacin correcta tiene su mximo para la red con 6 neuronas en la capa escondida,
con un porcentaje de acierto del 72.25 %. Como ya se mencion, esto es un promedio del
muestran los promedios de clasificacin correcta para cada uno de los 10 subconjuntos al
70
60
Porcentaje Promedio de Clasificacin
50
40
30
20
10
0
1 2 3 4 5 6 7 8 9 10
Subconjunto de Validacin
Grfica 22. Porcentaje promedio de Clasificacin correcta para los 10 subconjuntos de Validacin
con una red de 6 neuronas.
85
La observacin de esta grfica es interesante porque muestra que para la red de 6 neuronas
anteriormente. Lo deseable sera que este porcentaje variara muy poco (idealmente no
debera variar), pero como la validacin depende de las canciones que sean evaluadas en
Otro factor importante en un estudio como el que se realiz es el relacionado con los
se muestran los tiempos que se necesitaron para realizar 20 iteraciones con cada una de los
para realizar las 200 iteraciones correspondientes al proceso de Validacin Cruzada con
cada una de las redes consideradas. La grfica muestra una tendencia creciente para redes
disminuye para redes que tienen entre 11 y 20 neuronas para la misma capa. La red cuyo
minutos.
86
Tiempo Total haciendo la Validacin Cruzada en funcin del Nmero de Neuronas
900
800
700
600
Tiempo (Minutos)
500
400
300
200
100
0
2 4 6 8 10 12 14 16 18 20
Nmero de Neuronas
Grfica 23. Tiempo empleado en hacer 10 Fold Cross Validation en funcin del nmero de
neuronas de la capa oculta.
De acuerdo a la red que tuvo mayor porcentaje promedio de clasificacin correcta para el
porcentajes de validacin para cada uno de los subconjuntos y se aprecia que la mejor red
1 minuto.
87
Tal y como se haba mencionado anteriormente es posible mejorar el desempeo de la red
esto para fragmentos ubicados en 1, 1.25 y 1.5 minutos se obtiene un porcentaje de acierto
Al igual que para la red de propagacin inversa, se utiliz 10 Fold Cross Validation
que para cada iteracin se contaba con 405 canciones para realizar el entrenamiento, y 45
para la validacin. Los promedios de clasificacin correcta que se obtuvieron para cada
70
Porcentaje Promedio de Clasificacin Correcta
60
50
40
30
20
10
0
2 4 6 8 10 12 14 16 18 20
Nmero de Neuronas
88
Se ve que el porcentaje promedio de clasificacin aumenta a medida que se agregan
correcta tiene su mximo para una red con 19 neuronas cuya funcin de activacin esta
dada por la funcin de base radial, con un porcentaje promedio de acierto del 76.89 %. Sin
correcta para cada uno de los 10 subconjuntos al realizar 10 Fold Cross Validation, para
la red de 16 neuronas.
70
60
Porcentaje de Clasificacin Correcta
50
40
30
20
10
0
1 2 3 4 5 6 7 8 9 10
Subconjunto de Validacin
Grfica 25. Mximo Porcentaje de Clasificacin correcta para los 10 subconjuntos de Validacin
con una red de 16 neuronas.
89
Otro factor importante en un estudio como el que se realiz es el relacionado con los
grfica 26 se muestran los tiempos que se necesitaron para realizar 250 iteraciones con
cada una de los 10 subconjuntos del proceso de validacin, es decir que se muestra el
Fold Cross Validation con cada una de las redes consideradas. La grfica muestra una
tendencia al alza a medida que el nmero de clusters aumenta, teniendo su mximo para
una red con 17 neuronas, con un tiempo total de 162.74 minutos. La razn por la cual el
tiempo disminuye para redes con 18, 19 y 20 neuronas es la limitacin que se impuso con
respecto al nmero mnimo de elementos por cluster a medida que el nmero de neuronas
Tiempo Total empleado haciendo la Validacin Cruzada en funcin del nmero de neuronas
300
250
200
Tiempo (Minutos)
150
100
50
0
2 4 6 8 10 12 14 16 18 20
Nmero de Neuronas
Grfica 26. Tiempo empleado en hacer 10 Fold Cross Validation en funcin del nmero de
neuronas de la capa oculta.
90
Basndose en los parmetros mencionados en el numeral 4.1. se escoge una red de 16
neuronas. En la grfica 25 se muestran los porcentajes de validacin para cada uno de los
cual se escoge.
1 minuto.
esto para fragmentos ubicados en 0.75, 1 y 1.25 minutos se obtiene un porcentaje de acierto
91
Error de Entrenamiento Total
0.45
0.4
0.35
)
% 0.3
0
0
1
x(
r 0.25
Porcentaje de Error (x100%)
or
r
E
e 0.2
d
ej
at
n 0.15
e
cr
o
P 0.1
0.05
0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Nmero de Iteraciones
0.6
) 0.5
%
0
0
1
x( 0.4
r
Porcentaje de Error (x100%)
or
r
E
e
d 0.3
ej
at
n
e
cr 0.2
o
P
0.1
0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Nmero de Iteraciones
92
Error de Entrenamiento Salsa
0.45
0.4
0.35
)
% 0.3
0
0
Porcentaje de Error (x100%)
1
x(
r 0.25
or
r
E
e 0.2
d
ej
at
n 0.15
e
cr
o
P 0.1
0.05
0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Nmero de Iteraciones
0.6
) 0.5
%
0
0
1
Porcentaje de Error (x100%)
x( 0.4
r
or
r
E
e
d 0.3
ej
at
n
e
cr 0.2
o
P
0.1
0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Nmero de Iteraciones
93
Adicionalmente para comprobar que se estn aumentando los mrgenes de confidencia en
las grficas 31, 32 y 33 se muestran las respectivas distribuciones de mrgenes para cada
gnero.
M
e 0.5
d
n
i 0.4
c
u
bi
rt
si 0.3
D
0.2
0.1
0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Mrgen
Mrgenes
94
Distribucin de Mrgenes Gnero Salsa
1
10 Iteraciones
0.9 100 Iteraciones
1000 Iteraciones
0.8 5000 Iteraciones
10000 Iteraciones
0.7
s
e
n
e
g 0.6
r
Distribucin de Mrgenes
M
e 0.5
d
n
i 0.4
c
u
bi
rt
si 0.3
D
0.2
0.1
0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Mrgen
Mrgenes
M
e 0.5
d
n
i 0.4
c
u
bi
rt
si 0.3
D
0.2
0.1
0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Mrgen
Mrgenes
95
De las grficas 27 a 30 se aprecia como el error de entrenamiento baja considerablemente
hasta la iteracin 3000 y contina bajando lentamente hasta la iteracin 10000 a un punto
Se destaca que el error del merengue es el que decrece con mayor rapidez, pero presenta un
Por otra parte de las grficas 31 a 33 se confirma que el margen de confidencia que se
Se iter hasta 10000 puesto que como se aprecia en la grfica 34 a medida que aumenta el
suspende el entrenamiento ya que dicho error ha alcanzado un valor cercano a cero a partir
de la iteracin 7000.
96
Tiempo de entrenamiento adaboost vs Nmero de Iteraciones
300
250
200
o
p 150
Tiempo (min)
m
ei
T
100
50
0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Nmero de Iteraciones
A continuacin se presenta el error de evaluacin total y para cada gnero en las grficas
97
Error de Evaluacin Total
0.5
0.45
)
% 0.4
0
0
1
Porcentaje de Error (x100%)
x(
r
or
r 0.35
E
e
d
ej
at
n 0.3
e
cr
o
P
0.25
0.2
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Nmero de Iteraciones
0.8
) 0.7
%
0
0
1
x(
Porcentaje de Error (x100%)
0.6
r
or
r
E
e
d 0.5
ej
at
n
e
cr 0.4
o
P
0.3
0.2
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Nmero de Iteraciones
Grfica 36. Error de Evaluacin para merengue en funcin del nmero de iteraciones.
98
Error de Evaluacin Salsa
0.7
0.6
) 0.5
%
0
0
1
Porcentaje de Error (x100%)
x( 0.4
r
or
r
E
e
d 0.3
ej
at
n
e
cr 0.2
o
P
0.1
0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Nmero de Iteraciones
Grfica 37. Error de Evaluacin para salsa en funcin del nmero de iteraciones.
0.6
0.55
) 0.5
%
0
Porcentaje de Error (x100%)
0
1 0.45
x(
r
or
r 0.4
E
e
d
ej 0.35
at
n
e 0.3
cr
o
P
0.25
0.2
0.15
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Nmero de Iteraciones
Grfica 38. Error de Evaluacin para vallenato en funcin del nmero de iteraciones.
99
Distribucin de Mrgenes Gnero Merengue
1
2 Iteraciones
0.9 50 Iteraciones
2000 Iteraciones
0.8 10000 Iteraciones
0.7
s
e
n
e
g 0.6
r
Distribucin de Mrgenes
M
e 0.5
d
n
i 0.4
c
u
bi
rt
si 0.3
D
0.2
0.1
0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Mrgenes
0.7
s
e
n
e
g 0.6
r
Distribucin de Mrgenes
M
e 0.5
d
n
i 0.4
c
u
bi
rt
si 0.3
D
0.2
0.1
0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Mrgenes
100
Distribucin de Mrgenes Gnero Vallenato
1
2 Iteraciones
0.9 50 Iteraciones
2000 Iteraciones
0.8 10000 Iteraciones
0.7
s
e
n
e
g 0.6
Distribucin de Mrgenes
r
M
e 0.5
d
n
i 0.4
c
u
bi
rt
si 0.3
D
0.2
0.1
0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Mrgenes
ocurriendo algo similar aunque con decrecimiento ms lento para la salsa; mientras para el
vallenato la disminucin del error slo se presenta alrededor de las 5000 iteraciones, razn
por la cual, los mrgenes de confidencia del vallenato se incrementan en las iteraciones
finales mientras para el merengue y la salsa lo hacen a partir de las iteraciones iniciales.
101
El error mnimo total alcanzado para el conjunto de evaluacin es de 20%
Adaboost implementado.
IMPLEMENTADOS
La Tabla 3 presenta un resumen detallado de todas las caractersticas obtenidas para las
102
RED DE RED DE FUNCIONES
PROPAGACIN DE BASE RADIAL
INVERSA
Tiempo total empleado en la
bsqueda de la Red ptima. 101.8357 horas 20.84 horas
Nmero de Neuronas ptimo para la
Capa Oculta. 6 16
Tiempo total empleado en el
entrenamiento de la Red ptima 173.8836 minutos 215.56 minutos
Nmero de Iteraciones realizadas en
la Validacin Cruzada. 200 2500
Porcentaje Promedio de Clasificacin
en la Validacin Cruzada 70.67 76.22
Tabla 3. Comparacin de los resultados obtenidos para las topologas Red de Propagacin Inversa
y Red de Funciones de Base Radial.
La razn por la cual se utiliz como clasificador dbil una red de Funciones de Base Radial
propagacin inversa y una red de funciones de base radial. Especficamente hablando, este
103
Para la implementacin de Adaboost, se utiliz una red de funciones de base radial con 11
dbil mediante la observacin del porcentaje obtenido al realizar las 10000 iteraciones.
evaluacin obtenido utilizando Adaboost es superior a ste mismo porcentaje para la mejor
104
5. CONCLUSIONES
partir de un archivo de msica en formato digital muestra que las caractersticas utilizadas
son apropiadas y permiten diferenciar entre los tres tipos de gneros que forman parte de
este estudio. Los resultados arrojados por los clasificadores implementados corroboran la
Los parmetros extrados a partir de la Transformada Wavelet tienen una estrecha relacin
con la forma en la cual el ser humano realiza el proceso de distincin de msica por gnero.
Es de destacar que los parmetros que son extrados buscando un patrn rtmico son
El desarrollo del proyecto obtuvo como resultado dos tipos bsicos de clasificadores que
arquitecturas de red, buscando aquellas para las cuales se presentaba el mejor desempeo
105
medido en trminos de la clasificacin correcta de canciones que no fueron usadas durante
la fase de entrenamiento.
Karhunen Love.
10 Fold Cross Validation con el fin de determinar el orden apropiado del modelo.
Los resultados producidos en este proyecto son bastante buenos en comparacin con los
que han sido obtenidos por otros investigadores que han trabajado en el mismo campo. Por
ejemplo Seth Golub [2] obtuvo un porcentaje de clasificacin correcto del 77% utilizando
redes de propagacin inversa para dos gneros muy similares, mientras que Paul Scott [3]
diferentes como Rock, Clsica, Soul y Country. Otros trabajos como el de Soltau [5]
obtuvieron 81.9% para Rock, Pop, Tecno y Clsica, mientras Tzanetakis [25] utiliz seis
106
gneros y obtuvo un porcentaje de clasificacin de 60%. Estos porcentajes son inferiores
para aquellos estudios que utilizaron ritmos similares y comparables con los estudios que
usaron ritmos diferentes. A pesar de la similitud existente en los gneros utilizados en este
Futuros trabajos que tomen como base el presente proyecto, y cuyo tema sea la
clasificacin de msica por gnero pueden orientarse hacia los siguientes aspectos:
Artificiales con el fin de comparar los resultados con los obtenidos en este estudio.
tamao de la red.
Realizar el mismo proceso de ste estudio con un nmero superior de gneros, para
determinar si los parmetros que aqu fueron extrados siguen siendo suficientes para
realizar la clasificacin.
107
BIBLIOGRAFA
[1] Gerhard, David. Ph.D. Depth Paper: Audio Signal Classification. School of
Computing Science. Simon Fraser University. 2000.
[2] Golub, Seth. Classifying Recorded Music. MSc in Artificial Intelligence. Division
of Informatics. University of Edinburgh. 2000.
[3] Scott, Paul. Music Classification using Neural Networks. EE373B Proyect.
Stanford University. 2001.
[4] Foote, J.. A similarity measure for automatic audio classification. Technical report,
Institute of Systems Science, National University of Singapure. 1997
[5] Soltau, H., Schultz, T., Westphal, M., y Waibel, A.. Recognition of music types.
Interactive System Laboratory. 1998.
[6] Bishop, Christopher. Neural Networks for Pattern Recognition. New York.
Oxford University Press Inc. 1995.
[9] Oppenheim, Alan y Willsky, Alan. Signals and Systems. Prentice Hall Signal
Processing Series. 1983.
[10] Matlab Help. The MathWorks, Inc. Versin 6.1.0.450. Release 12.1.
108
[14] Rumelhart, D.E., G.E. Hinton, y R.J. Williams. Learning Internal represantations
by error propagation. Parallel Distributed Processing: Exploration in the
Microstructure of Cognition. Cambridge, MIT Press. Reimpreso en 1988.
[15] D.S. Bromead and D. Lowe. Multivariate Functional Interpolation and Adaptive
Networks. Complex Systems, 2:321-355, 1988.
[16] Orr, Mark. Introduction to radial basis function networks. Centre of Cognitive
Science University of Edinburgh. 1996
[17] Moody, J y Darken, C. Fast learning networks of locally tuned processing units.
Neural computation 1, 281-294. 1989
[22] Manuel, Peter. Caribbean Currents: Caribbean Music from Rumba to Reggae.
Philadelphia: Temple UP, 1995.
[25] Tzanetakis, George; Essl, Georg; Cook, Perry. Automatic Musical Genre
Classification of Audio Signals. Computer Science Department. Princeton University.
2001
[26] Wold, E., Blum, T., Keislar, D., and Wheaton, J. (1996). Content-based
classification, search, and retrieval of audio. IEEE Multimedia, 3(3):2736.
109
ANEXO A - INTERFAZ GRFICA CON EL USUARIO
Este programa permite realizar clasificacin de archivos de audio digitales para los gneros
Campo para
ingresar la Botn de Botn Botn de
Ubicacin de Bsqueda de Acerca de Ayuda
la Cancin Cancin
110
Si conoce la ubicacin del archivo de msica, se escribe en el campo destinado para tal fin.
111
Es importante recordar que el listado de canciones que se puede seleccionar depende del
formato se que haya escogido, es decir, si selecciona formato .WAV solo ver el listado de
Una vez se haya escogido la cancin que desea clasificar se debe escoger la Topologa de la
Red Neuronal Artificial con la cual desea realizar la clasificacin. Las opciones
con Votacin, Redes de Funciones de Base Radial con Votacin y AdaBoost. Por ltimo se
y determina el gnero al cual pertenece. Cuando se finaliza tal proceso, aparece un anuncio
112
Botn Salida
de Acerca de
Adems se presenta una pantalla con la informacin de los autores del programa al hacer
clic en el botn Acerca de con el fin de contactarlos si existe cualquier tipo de duda o
de comentario sobre la utilizacin del programa. Por ltimo se presenta el esquema tpico
para realizar la clasificacin de una cancin al hacer clic sobre el botn de Ayuda, como
se ve en la figura 16.
113
Botn Salida
de Ayuda
Figura 16. Pantalla de Bsqueda de Cancin.
114