Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Profesores Patrocinantes:
Dr. Víctor Poblete Ramírez
Instituto de Acústica, UACh
Dr. Pablo Huijse Heise
Instituto de Informática, UACh
Profesor Informante:
Dr. Fernando Huenupán Quinán
Departamento de Ingeniería Eléctrica, UFRO
1 Introducción 6
1.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Metodología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Instrumentación Utilizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 La Música y su Representación 11
2.1 Acordes musicales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1 Cromagramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1
2
5.5.1 Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.5.2 Fase de Prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.6 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.7 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.7.1 Resultados Evaluación de la Base de Prueba . . . . . . . . . . . . . . . . . . 41
5.7.2 Resultados Evaluación MIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.7.3 Resultados con canciones fuera de la base de datos . . . . . . . . . . . . . . 49
En estas primeras líneas quisiera tomarme el tiempo de agradecer a todas las personas que
me han acompañado en esta etapa. Ha sido ya un buen tiempo que inicié este camino y la
verdad no tengo idea en qué va a terminar, aunque tampoco es esa una pregunta que tenga en
mi mente.
Primero que todo agradecer a mi familia por el tremendo apoyo que me han dado. A mis
padres, Rosa y Bernardo que se la jugaron por darme la mejor educación que pudieron y abrirme
camino a un sendero que no tiene fin aún.
A mis profesores del Laboratorio de Señales, Dr. Víctor Poblete y Dr. Pablo Huijse, quienes
con excelente voluntad y cariño por lo que hacen, de a poco han ido armando un equipo de
trabajo increíble y que espero que siga así por mucho tiempo. A mis compañeros de labora-
torio Yetzabeth, Víctor y Diego que son tremendas personas y me han apoyado mucho en este
trabajo. A Isaac, Janio y Juan Pablo, compañeros del Magíster que también trabajaron en el
laboratorio y me han ayudado enormemente.
A mis amigues gracias por la paciencia y el apañe todo este tiempo: Coni, Danu, Jorge, Juan,
Fran, Nacho, Nano, Nicole, Rafael, Raúl y Roberto.
This work is about the design and implementation of a Deep Neural Network (DNN) based
automatic chord estimation system. The input was a subset of the Isophonic dataset, broadly
used in Music Information Retrieval (MIR) chord estimation tasks. The DNN used was a Fully
Connected Feed-Forward Network with three hidden layers. The output was the chord labeling.
The performance of the system was evaluated using (1): only the test set; and (2): the whole
dataset for MIR evaluation mir_eval. Now, from the point of view of the model, the input is
a frame from the quarter-tone spectrogram of a song and the output is the chord class of that
frame. The MIR chord estimation tasks followed by this work are the fundamental note (root)
and the major and minor (maj/min) chords, including the no-chord (N) case. The results are
expressed using a confusion matrix and a proposed confusion matrix for music chords intended
to consider possible mistakes done from the system related to harmony and western-pop music
progressions. The best results of the model are presented in the case of 512 neurons per hidden
layer and between 7 and 9 context frames (650 y 836 ms of context), with accuracy precision
values above 94% in the evaluated metrics, and above 92% in every chord class. It is worth
noticing that the chord class were unbalanced in the dataset, so the implemented system firstly
distributes the samples proportionally based on the amount of samples for each chords class to
the train, validation and test sets. Finally, the model was tested using four songs that were not
observed during training, showing that the model is capable to generalize the chord estimation
task. Some aspects to improve in future research include increasing the dataset and imple-
menting data augmentation techniques. With more data, increasing the chord classes would
be possible, adding the augmented, diminished, suspended and 7th chords.
Capítulo 1
Introducción
1.1 Introducción
Las redes neuronales artificiales han sido uno de los métodos de aprendizaje de máquinas con
mayor desarrollo desde la introducción del perceptrón por McCulloch y Pitts en 1943 y su
resurgimiento a fines de la década de 2010, dados los agigantados pasos en el desarrollo del
hardware y la mayor disponibilidad de datos. Los resultados en tareas de reconocimiento de pa-
trones mediante redes neuronales profundas (DNN por Deep Neural Networks) han sobrepasado
de manera significativa las tasas de acierto en comparación con los sistemas de reconocimiento
del momento e incluso llegando a superar capacidades humanas [He et al., 2015].
En el caso del audio, se ha probado esta metodología en tareas de reconocimiento de voz y
de locutor [Hinton et al., 2012], así como una variedad tareas de Recuperación de Informa-
ción Musical (MIR), por ejemplo en detección de instrumento predominante en música po-
lifónica [Han et al., 2017] y clasificación de géneros musicales [Choi et al., 2016], entre otros.
En la subárea MIR de reconocimiento de acordes, [Korzeniowski and Widmer, 2016] probaron
la metodología mediante el sistema de las cromagramas: representación en clases de altura
tonal versus tiempo de una señal musical, como se ilustra en la figura 2.1.
1.2 Justificación
[Korzeniowski and Widmer, 2016] realizaron un experimiento de reconocimiento automático
de acordes por cromagramas, mediante el uso de DNN. El experimento resultó -cumpliendo
las expectativas de los autores- en una notable mejora en las tasas de reconocimiento, con re-
specto a la línea de base. En aquel trabajo la DNN actúa como extractor de características, cuya
salida son las mencionadas cromagramas. La red utilizada por los investigadores fue una red
multicapa completamente conectada de tres capas ocultas, cuyas entradas consisten en un es-
pectrograma de cuarto de tono. Los resultados mostraron que el modelo fue capaz de producir
vectores croma de superior calidad frente a las técnicas conocidas hasta el momento. Aquel
6
1.3. OBJETIVO GENERAL 7
Considerando los avances tecnológicos y el papel relevante que han tomado las DNN en ese
sentido, es también propósito de este trabajo dar el primer paso para trabajar con este modelo
de aprendizaje de máquinas en el Laboratorio de Señales del Instituto de Acústica. Más allá
de responder preguntas del área de las ciencias computacionales, ese trabajo busca, mediante
prueba y error comprender y ser capaz de manejar un modelo que si bien en este trabajo es
de búsqueda musical, puede ser utilizado en prácticamente cualquier campo de aplicación en
Acústica y Vibraciones.
3) Evaluar el desempeño del modelo, variando número de neuronas por capa oculta y ven-
tanas de contexto con el fin de encontrar el mejor caso. La evaluación será mediante las
métricas f1-score general y por acorde musical, para la base de prueba y con el sistema
de evaluación mir_eval de la comunidad MIR [Raffel et al., 2014], para las tareas root y
maj/min.
1.4 Metodología
El proyecto se realizó íntegramente en las instalaciones del Laboratorio de Procesamiento Digi-
tal de Señales del Instituto de Acústica en la Facultad de Ciencias de la Ingeniería, Universidad
Austral de Chile.
a) Distribución de la base de datos: A partir del hecho que no todas las clases de acordes
están distribuidos de igual forma, la base de datos obtenida junto a su etiquetado son
redistribuidos según aparición de acordes, de tal forma que el 70% de cada acorde
pertenezca al conjunto de entrenamiento, 20% al de validación y el 10% restante al
de prueba.
b) Espectrograma de cuarto de tono: Las señales de audio son transformadas a espectro-
grama de cuarto de tono, a partir de la multiplicación entre las ventanas temporales de
un espectrograma lineal con filtros triangulares centrados en un cuarto de tono musical,
siendo 147 los cuartos de tono implementados entre el cuarto de tono inferior a la nota
B1 ≈ 61.74 Hz y el cuarto de tono superior a B7 ≈ 3951.07 Hz. El espectrograma de
cuarto de tono resultante sirve como entrada a la red.
c) Red Neuronal Profunda (DNN): La DNN corresponde a una red neuronal multicapa
prealimentada, de tres capas ocultas, entrenada por descenso de gradiente con el opti-
mizador ADAM y con dropout en los casos que se permita, con el fin de evitar sobreajuste.
La entrada a la red corresponde a las ventanas contextuales de espectrograma de cuarto
de tono. La salida corresponde a la clase del acorde musical en su forma mayor/menor.
Las funciones de activación estarán dadas según la capa. Para las capas ocultas, la fun-
ción de activación sobre la unidad oculta corresponderá a la función rectificadora lineal
1
http://www.music-ir.org/mirex/wiki/2019:Audio_Chord_Estimation
hi (x) = ReLU(x) = max(0, x). Para la capa de salida, estará dada por la función softmax
e xi
y(x) = PK . La función ReLU, por su parte, se utilizará en las capas ocultas pues es
xj
j=1
e
más robusta al desvanecimiento del gradiente. La función softmax permitirá interpretar
la salida de la red como funciones de probabilidad.
A partir del error de entropía cruzada entre la salida del modelo junto a la salida deseada,
se entrenan los parámetros de la red, iterando este procedimiento hasta encontrar un
mínimo de error para el conjunto de validación, asegurando que éste sea mínimo ab-
soluto, implementando un criterio de detención del entrenamiento. Se almacenan los
parámetros al encontrar el mínimo error de validación.
3) Evaluación: El desempeño del modelo entrenado es evaluado por dos sistemas distintos:
6) Etiquetado y evaluación del modelo en otras canciones: El autor del presente trabajo
realiza el etiquetado de canciones fuera de la base de datos utilizada, con el objetivo de ver-
ificar si el modelo es capaz de generalizar el problema de reconocimiento de acordes y si las
mejoras al llegar al mejor caso también se reflejan en este caso. Aunque esto servirá única-
mente de evidencia de generalización, más que establecer un porcentaje de reconocimiento
en canciones externas al conjunto utilizado.
• Software Sonic Visualiser, el cual permitirá realizar el etiquetado de canciones que estén
fuera de la base de datos. También permitirá realizar un análisis del reconocimiento de
acordes del modelo.
La Música y su Representación
Destacando únicamente aquellas definiciones que involucren un punto vista artístico, la Real
Academia Española define representar1 como: (1) Hacer presente algo con palabras o figuras
que la imaginación retiene. (4) Recitar o ejecutar en público una obra dramática. (5) Interpretar
un papel de una obra dramática. (6) Ser imagen o símbolo de algo, o imitarlo perfectamente.
[Scruton, 1976] y [Berenson, 1994] brindan una discusión interesante acerca de si la música
puede representar o no. La música es un arte netamente abstracto, que no representa algún ob-
jeto físico o sus características (como por el contrario, una pintura que represente una canasta
de frutas), pero sí tiene el poder de generar emociones, sugerir una realidad emocional de las
cosas. Por ejemplo en el habla humana, el cómo se dice, más allá del qué se dice. Una experi-
encia emocional. El compositor utiliza las herramientas que provee la música no en el sentido
de representar cosas concretas, sino de transmitir emociones.
La música y los sonidos en general, por su parte, poseen elementos que les permiten ser
representados. La altura, duración e intensidad de cada nota musical se pueden escribir de
forma ya natural en partitura o en protocolo MIDI. El timbre es lo que permite a los humanos
diferenciar un sonido de otro en términos de sus cualidades sonoras que, aunque hay trabajos
que han tratado de abordarlo de distintas maneras [Slawson, 1968, McAdams, 1999], sigue
siendo materia subjetiva del ser humano. La descomposición del timbre de un sonido en su
frecuencia fundamental sumado a los armónicos, se torna particularmente complejo de difer-
enciar cuando el sonido es polifónico.
11
12
en 12 semitonos (la tabla 2.1 muestra la equivalencia entre los dos sistemas de notaciones
utilizados). Un tono es equivalente al intervalo de dos semitonos. En el sistema bien temperado,
la relación matemática entre una nota y su semitono inmediatamente superior está dado por
la ecuación 2.1.
1
fsemitono superior = 2 12 f (2.1)
Dentro de una octava, la relación entre las notas musicales se entiende como intervalo
musical (ver tabla 2.2), los cuales tienen una gran importancia histórica y son de utilidad en la
composición2 . Sin embargo es común que de todos los intervalos, sólo se seleccionen algunos,
los que en conjunto forman la escala musical.
Según cómo se reordenen los intervalos, éstos formarán escalas musicales con distintos
nombres, cuyos orígenes provienen de las características históricas y geográficas donde se han
2
A modo de ejemplo, históricamente el intervalo de tercera mayor ha expresado alegría; el de tercera menor,
tristeza y tanto la cuarta, como la quinta justa, heroísmo. Compositores modernos como John Williams han sabido
aprovechar este recurso para fortalecer esa idea en los personajes de las películas que han musicalizado (una
lectura interesante de esto en: http://glennpickett.com/the-genius-of-john-williams/).
desarrollado. En el caso de la música occidental, junto con las escalas pentatónicas mayor y
menor (ambas compuestas por cinco notas), se definen las escalas de siete notas musicales,
siendo las más utilizadas la escala mayor natural, menor natural y la menor armónica. La
tabla 2.3 muestra los intervalos musicales de las escalas musicales más comunes de la música
occidental.
La misión de los acordes suspendidos (tal como muestra la tabla 2.4) es de reemplazar la
tercera, lo cual se interpreta como un acorde que no es ni mayor ni menor, resultando en un
acorde que no resuelve en la frase musical.
Si el acorde posee cuatro notas, se llama tétrada, siendo las más comunes las que involu-
cran intervalos de séptima. Acordes de este tipo son: séptima mayor C:maj7, séptima menor
C:min7, séptima dominante3 C:dom = C:7, acordes de novena C:9, de sexta C:6, etc.
Finalmente queda decir que todas las notaciones descritas anteriormente aplican de la
misma forma para cualquier acorde, independiente de cuál sea su fundamental.
2.1.1 Cromagramas
Los cromagramas son objetos matemáticos bidimensionales que buscan representar el con-
tenido armónico de la música. Similar al espectrograma, su eje vertical corresponde al espacio
de frecuencias y su eje horizontal al tiempo. La diferencia radica en que el contenido de la
energía espectral de las señales está acotado a una octava musical. Esto supone la ventaja que
concentra la energía de todas las octavas musicales en una, mejorando la representación sobre
éstas. La desventaja por su parte es que acota el reconocimiento a sólo una octava, resultando
que no permite reconocer si el acorde está extendido, o si el bajo está en una nota que no es la
fundamental. A pesar de esta notable desventaja, las cromagramas han sido uno de los enfo-
ques en reconocimiento automático de contenido armónico y/o polifónico más exitosos en esta
tarea.
1.0
B
0.4
A 0.8
0.2
G 0.6
Pitch class
0.0
F
E 0.4
−0.2
D 0.2
−0.4
C
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6
Time in seconds Time
3
Se llama dominante por la función dominante del acorde, que corresponde al quinto grado de la escala.
Usualmente el dominante resuelve a la tónica o primer grado de la escala (el acorde que le da el nombre a la
escala). Esto es tema tratado en armonía funcional y no será abordado en este trabajo.
La Recuperación de Información Musical (MIR por Music Information Retrieval) es un área de in-
vestigación interdisciplinaria que involucra a las ciencias de la computación, musicología, teoría
musical, procesamiento digital de señales, ingeniería de audio, ciencia cognitiva, publicaciones
y leyes. Entre sus objetivos trata de desarrollar maneras de administrar, preservar y utilizar
colecciones de audio, sobre todo musicales, para diversos fines [Futrelle and Downie, 2003].
Relacionado con el procesamiento de señales y ciencias de la computación, trata de la extrac-
ción e inferencia de patrones y características significativas a partir de la música, indexación de
la música a partir de éstas características y el desarrollo de diferentes esquemas de búsqueda y
recuperación musical [Schedl et al., 2014].
La información de entrada MIR es siempre data digital de música, la que toma principal-
mente cuatro formas [Burgoyne et al., 2016]:
15
16
4. Metadata: Consiste en información adicional de la música, como los títulos de las obras
musicales, los artistas, las letras e incluso información proveniente de blogs y periodismo
musical. Uno de los usos más efectivos del uso de la metadata ha sido para los servicios de
recomendación de música [Òscar Celma, 2010] y también en clasificación de género
musical [Whitman, 2005] o clustering de artistas [Schedl et al., 2011].
Por su parte, dentro del espacio de salidas, hay tres categorías fundamentales:
2. Clasificación o estimación: Trata de corresponder una entrada con una salida específica.
Por ejemplo está el caso de clasificación de intérprete o compositor y estimación de
género musical a partir de una señal de audio.
A medida que ISMIR comenzó a establecerse más y se definieron mejor las tareas MIR, los
investigadores buscaron probar sus algoritmos en una condición común de prueba. Es así como
nace el Music Information Retrieval eXchange (MIREX), un ciclo anual donde se definieron las
tareas a desarrollar bajo tres componentes principales.
• Un conjunto común de métricas y evaluaciones para evaluar las salidas de los algorit-
mos.
Descripción de timbre
Extracción
Transcripción de música y extracción de melodías.
de
Detección de comienzos, seguimiento de beat y estimación de tempo.
Características
Análisis estructural, segmentación y resumen.
Medición de similaridad.
Similaridad Identificación de cover de canciones.
Búsqueda por tarareo (query by humming).
Reconocimiento de emociones.
Clasificación de género.
Clasificación Clasificación de instrumentos.
Identificación de compositor, artista y cantantes.
Autoetiquetado.
Identificación de audio (fingerprinting).
Búsqueda y recuperación basada en contenido musical.
Recomendación de música.
Generación de listas de reproducción.
Alineamiento de audio y sincronización de música.
Aplicaciones
Estimación de popularidad de artistas y canciones.
Visualización de música.
Interfaces de búsqueda web.
Interfaces de interacción con música.
Sistemas personalizados, adaptativos y contextuales.
La evaluación del desempeño de los sistemas está dado por el descriptor Chord symbol recall
(CSR), que está dado por la ecuación 3.1.
MIREX considera cinco casos para evaluar el desempeño de los sistemas (ver tabla 3.2):
detección de nota fundamental, mayores y menores, acordes de séptima, mayores y menores
con inversiones y de séptima e inversiones.
Para evaluar los desempeños bajo el criterio MIREX, existe a disposición de los investi-
gadores la librería mir_eval, la cual requiere que las canciones evaluadas presenten el for-
mato dispuesto en los etiquetados, que consta de tres columnas: tiempo de inicio, tiempo final
y nombre del acorde, tal como muestra la figura 5.2.
Hasta aquí la función f es desconocida, pero a partir de los datos se puede generar una
función (o entrenar un modelo) g : X → Y que aproxime a f , es decir, que el error entre
ambas funciones sea mínima. En este trabajo, la función g corresponderá a una red neuronal
profunda. Para comprender en qué consiste, es necesario comenzar por el perceptrón.
20
4.2. REDES NEURONALES 21
x1
b
w1
x2 w2
Función de
Σ Activación y
φ()
..
.
wm
xm
y = φ(w T x + b) (4.2)
Las neuronas biológicas se activan, es decir, emiten un pulso eléctrico cuando la señal que
ingresa es de su interés, y no se activan cuando la señal no lo es. En el caso de las neuronas
artificiales, el pulso eléctrico puede ser traducido en simplemente un número alto si la entrada
es importante para la neurona, o 0 (o muy cercano), si no es así. Para representar esto, se puede
utilizar la función ReLU(x), que significa que la información pasa a la siguiente neurona sólo
si el resultado dentro de la función da positivo. La función ReLU(x) está dada por la ecuación
4.3.
2 y
1 ¨
x; x ≥0
ReLU(x) = max(x, 0) = (4.3)
x 0; x <0
−2 −1 1 2
En otros casos, que por lo general ocurren en las salidas de las redes neuronales, se pueden
utilizar otras funciones que indiquen la salida de la red como probabilidades de aciertos (valores
entre 0 y 1). Es común en estos casos usar la función sigmoide (ver ecuación 4.4).
y
1
0.5
1
x σ(x) = (4.4)
1 + e−x
−5 5
−0.5
Sin embargo, también se puede desear que la salida esté dado como una función de prob-
abilidad no sólo de una clase, sino que de aquella clase respecto a la totalidad de clases. Para
esto es útil la función softmax s(x) (ver ecuación 4.5).
e xi
s(x i ) = PK ; j ∈ [1, ..., i, ..., K] (4.5)
j=1
exj
Como fue dicho anteriormente, un perceptrón es un clasificador lineal y binario, pero la gran
mayoría de los problemas no son linealmente separables. Aumentar el número de neuronas y
capas neuronales permite realizar clasificaciones en regiones de decisión más complejas. Las ca-
pas de procesamiento adicionales son conocidas como capas ocultas y los perceptrones (ahora
también llamados nodos de procesamiento), unidades ocultas [Abu-Mostafa et al., 2012]. La
red neuronal más común es el perceptrón multicapa, como la que muestra la figura 4.4.
x1 y1
x2 y2
h1 hL
x y
...
x1 y1
...
x2 y2
...
.. ..
. .
.. ..
. .
xm yn
...
Fig. 4.5: Esquema de una red neuronal profunda del tipo completamente conectada.
Notar ahora que los pesos W son una matriz de pesos entre las neuronas de la capa anterior con
la capa actual y W T es su matriz traspuesta. Así mismo, los sesgos son ahora un vector. Respecto
a la dimensionalidad de las capas, sea Ul la dimensión de la capa l, hay algunas observaciones:
• Salidas: La dimensión de las salidas, dependerá de la cantidad de clases que sean definidas
en el problema, es decir: U L+1 = n, si n es el número de clases definidas del problema
(es decir: y ∈ Rn ).
• Los pesos en cada capa serán una matriz compuesta por los pesos que emergen desde cada
unidad de la capa l − 1 hacia cada unidad de la capa l, esto considerando la existencia
de Ul−1 unidades de la capa anterior, y Ul en la capa actual. Es decir, la dimensionalidad
de Wl será Ul−1 × Ul .
Teniendo preparada la matemática, queda la forma de encontrar los pesos y sesgos del
modelo, entendidos como los parámetros de la red. El modo de obtenerlos será mediante el
entrenamiento supervisado detallado a continuación.
∂ L (θi )
θi+1 = θi − η (4.9)
∂θ
∂ L (θi )
De este modo, el gradiente indica la dirección del máximo descenso de la función de
∂θ
costo, y η, también llamado tasa de aprendizaje, modula el cambio que tendrán las actualiza-
ciones de los parámetros de la red.
Como las redes neuronales profundas poseen a lo menos tres capas ocultas, cada conexión entre
capas contienen sus propios pesos y sesgos, que en el conjunto de todas las capas forman los
parámetros de la red. Es decir, es necesario actualizar los parámetros de todas las capas. Esto
se puede realizar con el método de retropropagación del error. Como esto implica obtener
gradientes, las funciones de activación deben ser derivadas, con la implicancia de altos costos
computacionales. De ahí que las funciones de activación escogidas (ver ecuaciones 4.3, 4.4 y
4.5) no son casuales. Las ecuaciones 4.10, 4.11 y 4.12 muestran las derivadas de las funciones
de activación utilizadas en este proyecto. Tal elección de las funciones de activación permite
disminuir los costos computacionales de calcular derivadas en todas las capas.
¨
∂ ReLU(x) 1; x >0
= (4.10)
∂x 0; x <0
∂ σ(x)
= σ(x)(1 − σ(x)) (4.11)
∂x
¨
∂ s(x i ) s(x i )(1 − s(x i )); j=i
= (4.12)
∂ xj −s(x i )s(x j ); j 6= i
La derivación de la función de costo, dada la existencia de capas ocultas implica que habrá
regla de la cadena con multiplicaciones de derivadas igual al número de las capas. Como los
gradientes son generalmente números pequeños, el que hayan muchas capas puede llevar a
un desvanecimiento del gradiente, lo que quiere decir que el aprendizaje en las capas más
cercanas a la capa de entrada se hace bastante menos eficiente. Por tanto, no se recomienda
2. Batch GD. El modelo es actualizado después de procesar todos los ejemplos de la base
de datos (todo el conjunto de entrenamiento corresponde al batch, no hay por tanto
diferencia entre iteración y epoch).
4.2.4 Sobreajuste
Si la cantidad de parámetros de la red es muy grande en comparación a los datos que hay para
entrenar, el modelo es susceptible a sobreajuste. Esto significa que el modelo, pasado cierto
punto del entrenamiento, deja de generalizar el problema, resultando en peores desempeños
para datos no observados en el entrenamiento, a pesar que el error de entrenamiento siga
disminuyendo. Es como si el modelo estuviese memorizando la base de datos en vez de aprender
la tarea pedida. Esto es un problema que si bien es imposible de evitar, es posible de tratar hasta
cierto punto.
Para detectar la presencia de sobreajuste del modelo, es recomendable reservar un por-
centaje de la base de datos de entrenamiento, en un nuevo conjunto de validación, de tal
modo que por cada época de entrenamiento, con los parámetros de la red actualizados, se ver-
ifique el desempeño del modelo sobre este conjunto y evaluar el comportamiento del error de
entrenamiento junto al error de validación. Tales curvas normalmente se comportan como
muestra la figura 4.6
L Error de entrenamiento
Error de validación
épocas
Entre las técnicas para lidiar con el sobreajuste, se tienen las siguientes:
...
x1 y1
...
x2 y2
...
.. ..
. .
.. ..
. .
xm yn
...
2. Aumentación de datos: Consiste en aplicar transformaciones a los datos tal que sirvan
como nuevas entradas para el entrenamiento de la red, de modo que aumentar la diversi-
dad del dataset mejora la generalización. En el caso del audio [Salamon and Bello, 2016]
hay algunos criterios aplicables, como por ejemplo, subir y bajar en un semitono las
señales. En este trabajo eso se torna complejo, pues eso implica que las clases cambian y
la base aumentada debe ser re-etiquetada.
En este capítulo se detallarán los trabajos realizados en el presente proyecto. Primero que todo,
se describirá la arquitectura general del sistema de reconocimiento automático de acordes, para
luego dar paso a la formulación de los experimentos y finalmente se presentan y analizan los
resultados.
29
30
SQT
x1 C:maj
Train
maj/min
Base Base x2 C:min
de de Valid ..
Datos Datos Proporción .
(.wav) (SQT ) de acordes
Test xn N
Actual.
Parám. DNN
No
Final batch?
Sí
Etapa de
Validación
Fig. 5.1: Diagrama del sistema de reconocimiento automático de acordes musicales utilizada
en este proyecto.
El sistema completo del presente proyecto pasa por distintas etapas, nombradas a contin-
uación.
2. Entrenamiento de las redes neuronales. Por cada época, se realiza el proceso de en-
trenamiento y validación. Almacenamiento de los parámetros del modelo cuando se
encuentra un mínimo error de validación.
3. Etapa de prueba de las redes neuronales. Se evalúa el desempeño de los modelos de DNN
con métricas dados por las librerías sklearn (sólo para la base de prueba) y mir_eval
(para la base de datos completa).
La base de datos Isophonics incluye el etiquetado de los discos de la tabla 5.1. Las etiquetas
contienen información canción por canción, indicando: a) Tiempo de inicio; b) Tiempo de
término y c) Acorde con el formato propuesto por [Harte et al., 2005], tal como muestra la
figura 5.2. Esta información debe ser también preprocesada en el código para indicarle al
sistema el frame de cada canción y la posición de la clase de acorde que corresponda.
1
Etiquetas disponibles en http://isophonics.net/content/reference-annotations
0.000000 1.129709 N
1.129709 3.044470 N
3.044470 5.208150 D
5.208150 7.158117 D
Fig. 5.2: Ejemplo del etiquetado de la base de datos: Primeros acordes de Drive my Car.
Es importante obtener la edición específica de los álbumes, que indica la tabla 5.1, ya que
otras ediciones pueden tener discrepancias con los tiempos indicados en las etiquetas, lo cual
supondría un mal entrenamiento del modelo. El etiquetado de la base de datos se puede visu-
alizar mediante el software Sonic Visualiser, como muestra la figura 5.3.
Fig. 5.3: Extracto del etiquetado de Drive My Car, mostrado en Sonic Visualiser.
El etiquetado de la base de datos se puede entender como la salida deseada ŷ, con la
cual se puede entrenar a las redes neuronales. Para esto, se asigna a cada clase de acorde una
posición en el espacio de clases, las que se indican en la tabla 5.2. Recordar que los índices de
Python comienzan en cero.
Clase de Acorde C:maj C:min C]:maj C]:min D:maj D:min D]:maj D]:min E:maj
Índice de Clase 0 1 2 3 4 5 6 7 8
Clase de Acorde E:min F:maj F:min F]:maj F]:min G:maj G:min G]:maj G]:min
Índice de Clase 9 10 11 12 13 14 15 16 17
del acorde y, el problema de acordes mayores y menores maj/min, la cual de por sí ya integra
el problema de root. Un ejemplo de acierto y fallo en esta tarea se puede ver en la tabla 5.3.
El caso de los acordes disminuidos, aumentados y suspendidos no son considerados para la
evaluación.
Tarea Etiquetado Predicción Resultado
root C C:maj Correcto
C:min Correcto
D:maj Incorrecto
D:min Incorrecto
maj/min C:maj C:maj Correcto
C:min Incorrecto
D:maj Incorrecto
D:min Incorrecto
Tabla 5.3: Ejemplo de acierto y fallo en las tareas de reconocimiento de acorde para lso casos
root y maj/min.
• R es el salto de frame.
Cada uno de los vectores temporales de la STFT, también llamados frames, son calculados a
partir de ventanas temporales de 8192 muestras de las señales originales, con traslape de 50%
entre frames, equivalentes a 92,93 ms. La dimensión espectral de la STFT es lineal y se puede
transformar a musical en cuartos de tono mediante la ponderación con filtros triangulares cen-
trados en cada cuarto de tono, los cuales están dados por la función matemática 5.2. Se uti-
lizaron en total 147 filtros triangulares centrados en cada cuarto de tono comenzando por el
cuarto de tono inferior a B1 ≈ 61.74 Hz hasta el cuarto de tono superior a B7 ≈ 3951.07 Hz.
1 F∆
f − finicial
, finicial ≤ f ≤ f c
f c − finicial
f
F∆ = ffinal − f
f c ≤ f ≤ ffinal (5.2)
finicial fc ffinal f − f inicial
c
0 Otro caso
Fig. 5.5: Espectrograma de cuarto de tono para la canción Drive My Car. En amarillo se mues-
tran los valores más intensos y en violeta los más silenciosos.
• Distribución aleatoria de los frames seleccionados para las bases de entrenamiento, vali-
dación y prueba, proporcionados según clase de acordes. Por ejemplo, de todos los frames
en que se encuentre el acorde de D#:min, el 70% va a entrenamiento, el 20% a validación
y 10% a prueba.
La salida de la red y está dado por la ecuación 5.5 que describe la conexión entre la capa de
salida y con la última capa oculta hl−1 .
Las redes neuronales fueron implementadas con la librería torch, la cual permite diseñar la
red y realizar el cálculo de los gradientes, la retropropagación del error y la actualización de
los parámetros de forma sencilla y eficiente.
5.5.1 Entrenamiento
La fase de entrenamiento se divide en dos subprocesos: entrenamiento propiamente tal y vali-
dación. Un epoch será entendido en este proyecto como el proceso en que ocurre una secuencia
de entrenamiento seguido de validación. El proceso del epoch se puede descomponer en los
siguientes subprocesos.
• Entrenamiento.
• Validación.
5.8), lo cual contiene dentro de sí mismo elementos que están presentes en los conjuntos de
entrenamiento, validación y prueba.
5.6 Experimentos
Por cada caso se realizan cinco experimentos para obtener estadísticos de desempeño de los
modelos.
• Arquitectura de la red: FCN de tres capas ocultas, junto a las capas de entrada y salida.
• Ventanas de contexto: 1, 3, 5, 7 y 9.
Aunque se intentó correr los experimentos de modo tal que sólo cambiasen las condiciones
recién indicadas, en algunos casos fue necesario hacer modificaciones menores, enumeradas a
continuación.
1. Para los casos de 128 neuronas en las capas ocultas, se inicializó el entrenamiento con
una tasa de aprendizaje de 0.001, desde los casos de 1 a 5 ventanas de contexto. Desde
los casos de 7 ventanas en adelante, fue necesario disminuirla a 0.0005, ya que la curva
de validación no resultaba ser tan suave en la zona del error mínimo. En todos los demás
casos, por la misma razón se determinó inicializar con 0.0005 la razón de aprendizaje.
2. Para el caso de 512 neuronas en las capas ocultas, se utilizó el dropout, con probabilidad
de 0.8 de activación de las neuronas, con el fin de evitar el sobreajuste. En las demás
situaciones esto no fue posible ya que las curvas de entrenamiento y validación no con-
vergían.
Ventanas de contexto 1 3 5 7 9
Minutos por epoch 0.36 0.53 0.74 0.93 1.19
5.7 Resultados
Los resultados del modelo, es decir el reconocimiento de acordes, corresponden a las salidas de
la red ŷ para cada frame de entrada. Los resultados del sistema son los archivos de etiquetas
realizadas por el modelo entrenado (ver figura 5.8), las que serán ingresadas a los sistemas
de evaluación. Los porcentajes de acierto luego de la evaluación de los resultados de todas
las canciones por cada caso evaluado, corresponderán a los resultados de los experimentos.
Finalmente, las comparaciones entre los resultados de los experimentos conforman los resul-
tados del proyecto.
La figura 5.8(b) muestra un resultado del sistema para la canción Drive My Car. Los resul-
tados sobre todas las canciones en todos los casos de evaluación del modelo son almacenados
para su evaluación.
Fig. 5.8: Etiquetado (a) y resultados del modelo (b) para los primeros acordes de Drive my Car.
Los promedios de los resultados de los experimentos realizados para la Evaluación de la Base
de Prueba y Evaluación MIR, en todas las ventanas de contexto utilizadas y considerando 128,
256 y 512 neuronas por capa oculta se muestran en las tablas 5.5, 5.6 y 5.7, respectivamente.
Ventanas de contexto
Métrica
1 3 5 7 9
sklearn f1-score 0.816182 0.865368 0.887445 0.895839 0.908433
mir_eval root 0.836672 0.893691 0.904318 0.910657 0.919879
mir_eval maj/min 0.832866 0.897369 0.910419 0.918874 0.929890
Tabla 5.5: Promedios de precisión para la Evaluación de Prueba y Evaluación MIR en el caso
de 128 neuronas por capa oculta.
Ventanas de contexto
Métrica
1 3 5 7 9
sklearn f1-score 0.841177 0.892583 0.912692 0.920082 0.922999
mir_eval root 0.857998 0.91709 0.926822 0.930866 0.926563
mir_eval maj/min 0.859062 0.925636 0.936208 0.941160 0.937031
Tabla 5.6: Promedios de precisión para la Evaluación de Prueba y Evaluación MIR en el caso
de 256 neuronas por capa oculta.
Ventanas de contexto
Métrica
1 3 5 7 9
sklearn f1-score 0.897206 0.929928 0.940367 0.954684 0.956298
mir_eval root 0.899990 0.940214 0.941040 0.949364 0.949222
mir_eval maj/min 0.909198 0.951590 0.952898 0.962681 0.962569
Tabla 5.7: Promedios de precisión para la Evaluación de Prueba y Evaluación MIR en el caso
de 512 neuronas por capa oculta.
Las tablas anteriores se representan gráficamente en las figuras 5.9, 5.10 y 5.11, para los
casos de f1-score, root y maj/min respectivamente. Se destacan además los casos de mejor
desempeño.
Fig. 5.9: Resultados de f1-score de la Evaluación de Prueba para los casos de 128, 256 y 512
neuronas por capa oculta con 1, 3, 5, 7 y 9 ventanas de contexto.
Fig. 5.10: Resultados de la Evaluación MIR root para los casos de 128, 256 y 512 neuronas
por capa oculta con 1, 3, 5, 7 y 9 ventanas de contexto.
Fig. 5.11: Resultados de la Evaluación MIR maj/min para los casps de 128, 256 y 512 neuronas
por capa oculta con 1, 3, 5, 7 y 9 ventanas de contexto.
En las tablas y figuras recientes queda a la vista que los resultados mejoran al aumentar
el número de neuronas en las capas ocultas y al añadir ventanas de contexto. El aumento es
más notorio al pasar de 1 a 3 ventanas de contexto y utilizar 512 neuronas por capa oculta.
Mayores detalles de los resultados de los experimentos se pueden encontrar en el anexo A.
Fig. 5.12: Matriz de confusión para el caso de 512 neuronas por capa oculta y 9 ventanas de
contexto.
en negrita.
Tabla 5.8: Variaciones porcentuales en el reconocimiento de las clases de acorde respecto del
mejor caso.
• Las mejoras más notables se dan en los casos de los acordes que tienen poca participación
en la base de datos, tales como D#:min, A#:min y G:min.
• El aumento del contexto mejora los resultados de reconocimiento en todos los acordes,
aunque se observa una disminución del desempeño en el caso de la clase N.
La matriz de confusión de la figura 5.12 muestra una matriz casi diagonal, que corresponde
al escenario ideal para una matriz de este tipo. Es importante notar que los acordes tienen por
componentes a las notas musicales y por ende, algunas clases de acordes comparten hasta dos
de las tres notas que las conforman. Adicionalmente, dependiendo de la escala musical en que
las canciones estén compuestas, los acordes musicales toman una función determinada y suelen
acompañarse de ciertos acordes para generar la progresión armónica de la frase musical. Es
decir, que el sistema reconocedor de acordes se confunda y equivoque la clase objetivo, puede
ser consecuencia de este fenómeno de la teoría musical y no un mero error del modelo. Por esto,
se propone en este trabajo la creación de una matriz de confusión para acordes musicales,
que se muestra en la figura 5.13. En esta matriz de confusión para acordes musicales, se toma en
consideración la relación armónica del acorde objetivo con el acorde predicho por el modelo.
En primer lugar, se ordena de mayor a menor por fila (desde el punto de vista de la clase
objetivo) y se colorea la celda según la relación armónica existente entre los acordes. En el
caso del presente trabajo se determinaron los siguientes colores con sus significados.
• Naranjo a la confusión con la V menor (sólo para acordes objetivos menores). Ej: y =
C:min; ŷ = G:min.
• Verde a la confusión con su relativa menor (para acordes mayores) o relativa mayor para
acordes mayores. Ej: y = C:maj; ŷ = A:min y viceversa.
• Gris a la confusión con su forma mayor o menor. Ej: y = C:maj; ŷ = C:min y viceversa.
• Negro a la confusión con la clase N. Para la clase objetivo N, todas las clases de confusión
serán negras, puesto que no hay relación armónica con algún acorde (a excepción de la
misma clase N).
Fig. 5.13: Matriz de confusión para acordes musicales para el caso de 512 neuronas por capa
oculta y 9 ventanas de contexto.
La matriz de confusión para acordes musicales mostrado en la figura 5.13 muestra que tal
como había sido hipotetizado, los reconocimientos primarios corresponden a la clase objetivo
y que en general, las salidas predichas incorrectas están inclinadas a reconocer acordes que
tienen una relación importante con la clase objetivo, frente a otro tipo de acordes.
Dado que mir_eval requiere que se entreguen las anotaciones y las predicciones completas
de las canciones individuales, es posible analizar qué canciones y álbumes el modelo reconoce
mejor o peor. La tabla 5.9 muestra los resultados de precisión para las tareas de root y maj/min.
Se observa que todos los resultados se encuentran entre 93% y 98%. Las figuras 5.14 y 5.15
muestran el detalle del desempeño del modelo para todos los casos. Cabe destacar que, de
forma consistente, todos los resultados con 512 neuronas son superiores a los demás casos
y que el de 7 ventanas de contexto supera ligeramente al de 9 ventanas, siendo la primera
entonces el mejor resultado para la Evaluación MIR. Adicionalmente, los mejores y peores cinco
reconocimientos de las canciones de la base de datos por caso se pueden revisar en el anexo A.
Tabla 5.9: Porcentaje de aciertos en la Evaluación MIR para el caso de 512 neuronas por capa
oculta y 7 ventanas de contexto. En negrita se destacan los mejores y peores porcentajes.
Fig. 5.14: Resultados MIR root por álbum. En negro están los promedios de precisión y en
rojo la desviación estándar.
La figura 5.14 muestra que para la tarea root, en todos los álbumes mejora el reconocimiento
de acordes al aumentar el número de neuronas y de contextos. También se observa que en gen-
eral los resultados son más estables al aumentar la complejidad de la red, disminuyendo la
desviación estándar en todos los álbumes.
Fig. 5.15: Resultados MIR maj/min por álbum. En negro están los promedios de precisión y en
rojo la desviación estándar.
La figura 5.15 muestra que en maj/min ocurre una situación equivalente al caso root, es
decir que en todos los álbumes mejora el reconocimiento de acordes al aumentar el número
de neuronas y de contextos, siendo tales resultados igualmente más estables al aumentar la
complejidad de la red.
Canción Duración
Coldplay - Don’t Panic 2:17
Los Prisioneros - Tren Al Sur 5:35
Nirvana - About A Girl 2:49
Soda Stereo - Té Para Tres (MTV plugged) 2:27
(b) Resultado del modelo con 512 neuronas y 7 ventana de contexto (mejor caso).
Fig. 5.16: Resultados de reconocimiento de acordes para los primeros 15 segundos de la can-
ción de Soda Stereo - Té Para Tres en el mejor caso (b), en comparación con el etiquetado
humano (a).
Fig. 5.17: Porcentaje de precisión en la Evaluación MIR mir_eval root para el conjunto de
datos externos.
Fig. 5.18: Porcentaje de precisión en la Evaluación MIR maj/min para el conjunto de datos
externos.
de acordes, incluso en canciones que no pertenecen a la base de datos utilizada para entrenarlo.
Los resultados de la figura 5.16 dan cuenta de esto. Sin embargo al analizar los desempeños
del modelo en todos los casos, como muestran las figuras 5.17 y 5.18, los resultados no mues-
tran una tendencia clara, aumentar la complejidad de la red no incide en un mejoramiento del
desempeño y por tanto, si bien los resultados son bastante decentes (sobre el 50% en casi todas
las canciones), no es posible determinar un mejor caso en esta situación.
6.1 Conclusiones
Se realizó un trabajo de formulación e implementación de redes neuronales profundas para
reconocimiento automático de acordes musicales, en lenguaje Python, siendo esta red una del
tipo prealimentada y completamente conectada (FCN) de tres capas ocultas. La entrada cor-
responde a un espectrograma de cuarto de tono de 147 elementos. La salida corresponde al
índice de acorde, conteniendo las formas mayores y menores e incluyendo la clase N que repre-
senta la ausencia de acorde. La red fue evaluada en distintos casos que involucraron cambios
de número de neuronas por capa oculta (128, 256 y 512) y la incorporación de ventanas de
contexto. Por otro lado, la base de datos utilizada corresponde a un subconjunto importante
de Isophonics, una base de datos estándar para la investigación MIR en estimación de acordes.
Finalmente se evaluó el desempeño del modelo mediante dos métricas distintas, en la primera
se evalúa únicamente el conjunto de prueba y en la segunda, llamada Evaluación MIR se evalúa
la base de datos completa, pues este sistema tiene como requisito ingresar las canciones com-
pletas.
• En ambas evaluaciones del desempeño del modelo entrenado (ver figuras 5.9, 5.10 y
5.11) se observa una mejoría en los resultados tanto al aumentar el número de neuronas
ocultas como al añadir ventanas de contexto.
52
6.1. CONCLUSIONES 53
• En el caso del aumento de neuronas ocultas, las mejoras son más notorias al llegar a las
512 neuronas.
• Se observa una estabilización del desempeño del modelo cuando se aumenta de las 3
ventanas de contexto. Al realizar un análisis más detallado se observa la presencia de un
trade-off de reconocimiento, que se indican a continuación.
– Se observa que al aumentar las ventanas de contexto, la red demora más en recono-
cer los cambios de acorde, generando peores resultados sobre todo con la clase N
(ver tabla 5.8). Si bien no hay un análisis suficientemente profundo para afirmar
esto, queda en consideración para futuras investigaciones.
• En general, tal como muestra la matriz de confusión de la figura 5.12, los porcentajes de
reconocimiento son bastante altos (sobre el 92,7% en cada clase de acorde), sin embargo
al involucrar relaciones armónicas y de progresión musicales entre las clases por medio de
la matriz de confusión para acordes musicales (ver figura 5.13) propuesta en este trabajo,
se revela que los errores del modelo tienen una explicación musical. Es decir que, si bien
la red comete errores, estos presentan una preferencia por algún acorde que tenga una
relación armónica con el acorde objetivo.
• Al probar el modelo con canciones externas a la base de datos utilizada para entre-
namiento, en las figuras 5.16, 5.17 y 5.18 muestran que el modelo sí es capaz de gen-
eralizar el problema de reconocimiento de acordes con canciones externas, alcanzando
porcentajes de precisión superariores al 50% en las canciones evaluadas. Sin embargo,
los resultados no muestran grandes variaciones o una preferencia sobre algún caso eval-
uado en particular. Aumentar la complejidad del modelo en estas canciones evaluadas,
no resultó en mejores desempeños.
6.2 Discusión
A continuación se presentan algunas discusiones que surgen del trabajo realizado en el presente
proyecto y sus resultados.
• Al definir las condiciones de acierto y error para las tareas root y maj/min (ver tabla 5.3),
se da a entender que la tarea root es más fácil de acertar que en maj/min. Uno esperaría
que root presente entonces mejores resultados, sin embargo esto tal como muestra la
tabla 5.9, no sucede. La razón de esto se puede explicar por varias razones:
[Abu-Mostafa et al., 2012] Abu-Mostafa, Y. S., Magdon-Ismail, M., and Lin, H.-T. (2012).
Learning From Data. A short course. AMLBook.
[Berenson, 1994] Berenson, F. (1994). Representation And Music. British Journal of Aesthetics,
Vol. 34. No 1.
[Burgoyne et al., 2016] Burgoyne, J. A., Fujinaga, I., and Downie, J. S. (2016). Music Infor-
mation Retrieval. In A New Companion to Digital Humanities, First Edition. John Wiley &
Sons, Ltd., Estados Unidos.
[Chafe et al., 1985] Chafe, C., Jaffe, D. A., Kashima, K., Mont-Reynaud, B., and Smith, J. O.
(1985). Techniques for note identification in polyphonic music. In Proceddings of the 1985
International Computer Music Conference, Burnaby, B.C., Canada. International Computer
Music Association, International Computer Music Association.
[Choi et al., 2016] Choi, K., Fazekas, G., and Sandler, M. (2016). Automatic Tagging Using
Deep Convolutional Neural Networks. In Proceedings of the 17th ISMIR Conference, Nueva
York, Estados Unidos. ISMIR.
[Futrelle and Downie, 2003] Futrelle, J. and Downie, J. S. (2003). Interdisciplinary Research
Issues in MusicInformation Retrieval: ISMIR 20002002. Interdisciplinary Research Issues
inMusic Information Retrieval: ISMIR 20002002, Journal of New Music Research.
[Han et al., 2017] Han, Y., Kim, J., and Lee, K. (2017). Deep Convolutional Neural Networks
for Predominant Instrument Recognition in Polyphonic Musics. IEEE/ACM Transactions on
Audio, Speech, and Language Processing, 25(1):208–221.
[Hankinson et al., 2012] Hankinson, A., Burgoyne, J. A., Vigliensoni, G., and Fujinaga, I.
(2012). Creating a Large-Scale Searchable Digital Collection from Printed Music Materi-
als. In Proceedings of the 21th International Conference Companion on World Wide Web -
WWW’ ’12, Nueva York, Estados Unidos. WWW 2012.
[Harte et al., 2005] Harte, C., Sandler, M., and Abdallah, S. (2005). Symbolic Representation
of Musical Chords: A Proposed Syntax for Text Annotations. In 6th International Conference
on Music Information Retrieval ISMIR 2005, Londres, Reino Unido. ISMIR.
56
REFERENCIAS 57
[He et al., 2015] He, K., Zhang, X., Ren, S., and Sun, J. (2015). Delving Deep into Rectifiers:
Surpassing Human-Level Performance on ImageNet Classification. arXiv:1502.01852.
[Hinton et al., 2012] Hinton, G., Deng, L., Yu, D., Dahl, G. E., Mohamed, A.-R., Jaitly, N.,
Senior, A., Vanhoucke, V., Sainath, T. N., and Kingsbury, B. (2012). Deep Neural Networks
for Acoustic Modeling in Speech Recognition. IEEE Signal Processing Magazine, pages 82–97.
[Kageyama et al., 1993] Kageyama, T., Mochizuki, K., and Takashima, Y. (1993). Melody re-
trieval with humming. In ICMC.
[Kingma and Ba, 2014] Kingma, D. P. and Ba, J. L. (2014). Adam: A Method For Stochastic Op-
timization. In 3rd International Conference for Learning Representations, San Diego, Estados
Unidos. ICLR.
[Korzeniowski and Widmer, 2016] Korzeniowski, F. and Widmer, G. (2016). Feature Learn-
ing for Chord Recognition: The Deep Chroma Extractor. In Proceedings of the 17th ISMIR
Conference, Nueva York, Estados Unidos. ISMIR.
[Lincoln, 1972] Lincoln, H. (1972). Uses of the Computer in Music Composition and Research.
Advances in Computers, 12:73–114.
[McAdams, 1999] McAdams, S. (1999). Perspectives con the Contribution of Timbre to Musi-
cal Structure. Computer Music Journal.
[Myers, 1907] Myers, C. (1907). The Ethnological Study of Music. Clarendon Press.
[Prechelt, 2012] Prechelt, L. (2012). Early Stopping — But When?, pages 53–67. Springer
Berlin Heidelberg, Berlin, Heidelberg.
[Raffel et al., 2014] Raffel, C., McFee, B., Humphrey, E. J., Salamon, J., Nieto, O., Liang, D.,
and Ellis, D. P. W. (2014). mir_eval: A Transparent Implementation of Common MIR Met-
rics. In Proceedings of the 15th International Conference on Music Information Retrieval (IS-
MIR), Taipei, Taiwan.
[Risset and Mathews, 1969] Risset, J.-C. and Mathews, M. (1969). Analysis of Musical Instru-
ment Tones. Physics Today, 22(2):23 – 30.
[Russell and Norvig, 2010] Russell, S. and Norvig, P. (2010). Artificial Intelligence: A Modern
Approach. Prentice Hall Series in Artificial Intelligence. Prentice Hall, 3rd edition.
[Salamon and Bello, 2016] Salamon, J. and Bello, J. P. (2016). Deep convolutional neu-
ral networks and data augmentation for environmental sound classification. CoRR,
abs/1608.04363.
[Schedl et al., 2014] Schedl, M., Gómez, E., and Urbano, J. (2014). Music Information Re-
trieval: Recent Developments and Applications. Foundations in Trends in Information Retrieval,
volume 8 of 127-261. now Publishers.
[Schedl et al., 2011] Schedl, M., Knees, P., and Böck, S. (2011). Investigating the Similarity
Space of Music Artists in the Micro-Blogosphere. In 12th International Society for Music
Information Retrieval Conference (ISMIR 2011). ISMIR.
[Slawson, 1968] Slawson, A. (1968). Vowel Quality and Musical Timbre as Functions of Spec-
trum Envelope and Fundamental Frequency. Journal of the Acoustical Society of America,
43(1):87 – 101.
[Srivastava et al., 2014] Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., and Salakhut-
dinov, R. (2014). Dropout: A Simple Way to Prevent Neural Networks from Overfitting.
Journal of Machine Learning, 15:1929 – 1958.
[Whitman, 2005] Whitman, B. A. (2005). Learning the Meaning of Music. PhD thesis, Mas-
sachusetts Institute of Technology.
[Òscar Celma, 2010] Òscar Celma (2010). Music Recommendation and Discovery: In The Long
Road. Springer.
59
60
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.817826 0.820046 0.813920 0.815458 0.813661 0.816182 0.002434
mir_eval root 0.838493 0.839884 0.836023 0.834504 0.834459 0.836672 0.008297
mir_eval maj/min 0.834897 0.836759 0.832120 0.829812 0.830743 0.832866 0.010085
Tabla A.1: Resultados de precisión (weighted average) del sistema para el caso de 128 neuronas
ocultas per capa oculta con 1 ventana de contexto.
Tabla A.2: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
128 neuronas ocultas per capa oculta con 1 ventana de contexto para la tarea root.
Tabla A.3: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
128 neuronas ocultas per capa oculta con 1 ventana de contexto para la tarea maj/min.
Fig. A.1: Matriz de confusión del sistema con la métrica sklearn para el caso de 128 neuronas
ocultas per capa oculta con 1 ventana de contexto.
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.841481 0.841201 0.838404 0.841325 0.843476 0.841177 0.001618
mir_eval root 0.85789 0.85987 0.853905 0.856594 0.861731 0.857998 0.008169
mir_eval maj/min 0.859142 0.860024 0.854277 0.856948 0.864921 0.859062 0.009483
Tabla A.4: Resultados de precisión (weighted average) del sistema para el caso de 256 neuronas
ocultas per capa oculta con 1 ventana de contexto.
Tabla A.5: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
256 neuronas ocultas per capa oculta con 1 ventana de contexto para la tarea root.
Tabla A.6: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
256 neuronas ocultas per capa oculta con 1 ventana de contexto para la tarea maj/min.
Fig. A.2: Matriz de confusión del sistema con la métrica sklearn para el caso de 256 neuronas
ocultas per capa oculta con 1 ventana de contexto.
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.897103 0.895914 0.899964 0.893954 0.899094 0.897206 0.002164
mir_eval root 0.899682 0.898624 0.901595 0.898493 0.901555 0.899990 0.004465
mir_eval maj/min 0.909072 0.907304 0.911232 0.907030 0.911351 0.909198 0.004473
Tabla A.7: Resultados de precisión (weighted average) del sistema para el caso de 512 neuronas
ocultas per capa oculta con 1 ventana de contexto.
Tabla A.8: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
512 neuronas ocultas per capa oculta con 1 ventana de contexto para la tarea root.
Tabla A.9: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
512 neuronas ocultas per capa oculta con 1 ventana de contexto para la tarea maj/min.
Fig. A.3: Matriz de confusión del sistema con la métrica sklearn para el caso de 512 neuronas
ocultas per capa oculta con 1 ventana de contexto.
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.863742 0.865169 0.864267 0.864665 0.868999 0.865368 0.001875
mir_eval root 0.893984 0.892544 0.888864 0.892547 0.900519 0.893691 0.008450
mir_eval maj/min 0.897466 0.896296 0.891552 0.895971 0.905560 0.897369 0.009829
Tabla A.10: Resultados de precisión (weighted average) del sistema para el caso de 128 neu-
ronas ocultas per capa oculta con 3 ventanas de contexto.
Tabla A.11: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
128 neuronas ocultas per capa oculta con 3 ventanas de contexto para la tarea root.
Tabla A.12: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
128 neuronas ocultas per capa oculta con 3 ventanas de contexto para la tarea maj/min.
Fig. A.4: Matriz de confusión del sistema con la métrica sklearn para el caso de 128 neuronas
ocultas per capa oculta con 3 ventanas de contexto.
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.898289 0.887334 0.893415 0.890938 0.892941 0.892583 0.003567
mir_eval root 0.925591 0.909028 0.916995 0.915434 0.918430 0.917095 0.009523
mir_eval maj/min 0.935456 0.917479 0.925521 0.923019 0.926709 0.925636 0.010182
Tabla A.13: Resultados de precisión (weighted average) del sistema para el caso de 256 neu-
ronas ocultas per capa oculta con 3 ventanas de contexto.
Tabla A.14: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
256 neuronas ocultas per capa oculta con 3 ventanas de contexto para la tarea root.
Tabla A.15: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
256 neuronas ocultas per capa oculta con 3 ventanas de contexto para la tarea maj/min.
Fig. A.5: Matriz de confusión del sistema con la métrica sklearn para el caso de 256 neuronas
ocultas per capa oculta con 3 ventanas de contexto.
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.929407 0.926364 0.935942 0.932210 0.925717 0.929928 0.003797
mir_eval root 0.939562 0.935736 0.945301 0.943173 0.937301 0.940214 0.005705
mir_eval maj/min 0.950792 0.946158 0.957494 0.955164 0.948342 0.951590 0.006062
Tabla A.16: Resultados de precisión (weighted average) del sistema para el caso de 512 neu-
ronas ocultas per capa oculta con 3 ventanas de contexto.
Tabla A.17: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
512 neuronas ocultas per capa oculta con 3 ventanas de contexto para la tarea root.
Tabla A.18: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
512 neuronas ocultas per capa oculta con 3 ventanas de contexto para la tarea maj/min.
Fig. A.6: Matriz de confusión del sistema con la métrica sklearn para el caso de 512 neuronas
ocultas per capa oculta con 3 ventanas de contexto.
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.892929 0.887560 0.886808 0.883416 0.886511 0.887445 0.003085
mir_eval root 0.910023 0.903728 0.900563 0.903092 0.904186 0.904318 0.009252
mir_eval maj/min 0.917077 0.909660 0.906158 0.908944 0.910255 0.910419 0.010067
Tabla A.19: Resultados de precisión (weighted average) del sistema para el caso de 128 neu-
ronas ocultas per capa oculta con 5 ventanas de contexto.
Tabla A.20: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
128 neuronas ocultas per capa oculta con 5 ventanas de contexto para la tarea root.
Tabla A.21: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
128 neuronas ocultas per capa oculta con 5 ventanas de contexto para la tarea maj/min.
Fig. A.7: Matriz de confusión del sistema con la métrica sklearn para el caso de 128 neuronas
ocultas per capa oculta con 5 ventanas de contexto.
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.916324 0.907607 0.914425 0.916680 0.912930 0.913593 0.003285
mir_eval root 0.930956 0.919049 0.928040 0.927997 0.928067 0.926822 0.008572
mir_eval maj/min 0.940963 0.926689 0.937886 0.937761 0.937741 0.936208 0.009540
Tabla A.22: Resultados de precisión (weighted average) del sistema para el caso de 256 neu-
ronas ocultas per capa oculta con 5 ventanas de contexto.
Tabla A.23: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
256 neuronas ocultas per capa oculta con 5 ventanas de contexto para la tarea root.
Tabla A.24: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
256 neuronas ocultas per capa oculta con 5 ventanas de contexto para la tarea maj/min.
Fig. A.8: Matriz de confusión del sistema con la métrica sklearn para el caso de 256 neuronas
ocultas per capa oculta con 5 ventanas de contexto.
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.940004 0.942753 0.938774 0.937041 0.943264 0.940367 0.002359
mir_eval root 0.940290 0.944025 0.939751 0.938494 0.942639 0.941040 0.004711
mir_eval maj/min 0.952391 0.956365 0.951426 0.949795 0.954513 0.952898 0.004947
Tabla A.25: Resultados de precisión (weighted average) del sistema para el caso de 512 neu-
ronas ocultas per capa oculta con 5 ventanas de contexto.
Tabla A.26: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
512 neuronas ocultas per capa oculta con 5 ventanas de contexto para la tarea root.
Tabla A.27: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
512 neuronas ocultas per capa oculta con 5 ventanas de contexto para la tarea maj/min.
Fig. A.9: Matriz de confusión del sistema con la métrica sklearn para el caso de 512 neuronas
ocultas per capa oculta con 5 ventanas de contexto.
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.902629 0.904624 0.889068 0.905198 0.891357 0.898575 0.006919
mir_eval root 0.915131 0.917217 0.903739 0.915153 0.907357 0.911719 0.010654
mir_eval maj/min 0.924367 0.926651 0.912413 0.924393 0.915638 0.920692 0.011103
Tabla A.28: Resultados de precisión (weighted average) del sistema para el caso de 128 neu-
ronas ocultas per capa oculta con 7 ventanas de contexto.
Tabla A.29: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
128 neuronas ocultas per capa oculta con 7 ventanas de contexto para la tarea root.
Tabla A.30: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
128 neuronas ocultas per capa oculta con 7 ventanas de contexto para la tarea maj/min.
Fig. A.10: Matriz de confusión del sistema con la métrica sklearn para el caso de 128 neuronas
ocultas per capa oculta con 7 ventanas de contexto.
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.917881 0.920496 0.924987 0.916922 0.919719 0.920001 0.002798
mir_eval root 0.929653 0.927472 0.934854 0.930492 0.931858 0.930866 0.008250
mir_eval maj/min 0.939670 0.937444 0.945771 0.940372 0.942544 0.941160 0.009451
Tabla A.31: Resultados de precisión (weighted average) del sistema para el caso de 256 neu-
ronas ocultas per capa oculta con 7 ventanas de contexto.
Tabla A.32: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
256 neuronas ocultas per capa oculta con 7 ventanas de contexto para la tarea root.
Tabla A.33: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
256 neuronas ocultas per capa oculta con 7 ventanas de contexto para la tarea maj/min.
Fig. A.11: Matriz de confusión del sistema con la métrica sklearn para el caso de 256 neuronas
ocultas per capa oculta con 7 ventanas de contexto.
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.957920 0.957262 0.957909 0.942651 0.957677 0.954684 0.006021
mir_eval root 0.951918 0.951005 0.953336 0.937914 0.952646 0.949364 0.007704
mir_eval maj/min 0.965542 0.964265 0.966862 0.950746 0.965990 0.962681 0.007761
Tabla A.34: Resultados de precisión (weighted average) del sistema para el caso de 512 neu-
ronas ocultas per capa oculta con 7 ventanas de contexto.
Tabla A.35: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
512 neuronas ocultas per capa oculta con 7 ventanas de contexto para la tarea root.
Tabla A.36: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
512 neuronas ocultas per capa oculta con 7 ventanas de contexto para la tarea maj/min.
Fig. A.12: Matriz de confusión del sistema con la métrica sklearn para el caso de 512 neuronas
ocultas per capa oculta con 7 ventanas de contexto.
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.912262 0.912880 0.911139 0.909766 0.896120 0.908433 0.006247
mir_eval root 0.921540 0.923788 0.920893 0.923334 0.909841 0.919879 0.010164
mir_eval maj/min 0.932539 0.933940 0.930765 0.933327 0.918881 0.929890 0.010597
Tabla A.37: Resultados de precisión (weighted average) del sistema para el caso de 128 neu-
ronas ocultas per capa oculta con 9 ventanas de contexto.
Tabla A.38: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
128 neuronas ocultas per capa oculta con 9 ventanas de contexto para la tarea root.
Tabla A.39: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
128 neuronas ocultas per capa oculta con 9 ventanas de contexto para la tarea maj/min.
Fig. A.13: Matriz de confusión del sistema con la métrica sklearn para el caso de 128 neuronas
ocultas per capa oculta con 9 ventanas de contexto.
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.924571 0.913830 0.923883 0.926911 0.925802 0.922999 0.004701
mir_eval root 0.926803 0.917383 0.931240 0.931492 0.925895 0.926563 0.011527
mir_eval maj/min 0.937500 0.928105 0.940781 0.941552 0.937216 0.937031 0.012122
Tabla A.40: Resultados de precisión (weighted average) del sistema para el caso de 256 neu-
ronas ocultas per capa oculta con 9 ventanas de contexto.
Tabla A.41: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
256 neuronas ocultas per capa oculta con 9 ventanas de contexto para la tarea root.
Tabla A.42: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
256 neuronas ocultas per capa oculta con 9 ventanas de contexto para la tarea maj/min.
Fig. A.14: Matriz de confusión del sistema con la métrica sklearn para el caso de 256 neuronas
ocultas per capa oculta con 9 ventanas de contexto.
Resultados
Métrica
E1 E2 E3 E4 E5 Media Desviación estándar
sklearn 0.959650 0.947671 0.957277 0.960592 0.956298 0.956298 0.004584
mir_eval root 0.951326 0.939939 0.950853 0.952810 0.951183 0.949222 0.006929
mir_eval maj/min 0.965006 0.952798 0.964222 0.966598 0.964220 0.962569 0.006898
Tabla A.43: Resultados de precisión (weighted average) del sistema para el caso de 512 neu-
ronas ocultas per capa oculta con 9 ventanas de contexto.
Tabla A.44: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
512 neuronas ocultas per capa oculta con 9 ventanas de contexto para la tarea root.
Tabla A.45: Mejores y peores 5 reconocimientos de acorde para la base de datos en el caso de
512 neuronas ocultas per capa oculta con 9 ventanas de contexto para la tarea maj/min.
Fig. A.15: Matriz de confusión del sistema con la métrica sklearn para el caso de 512 neuronas
ocultas per capa oculta con 9 ventanas de contexto.