Instituto Polit�cnico Nacional
Instituto Politécnico Nacional
"La Técnica al Servicio de la Patria"

Boletín No. 64
1o. de enero de 2018




CLASIFICACIÓN DE NOTAS MUSICALES CON REDES NEURONALES ARTIFICIALES EN NEUROPHSTUDIO

 

José Juan Torres Duarte,
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Juan Carlos Herrera Lozada,
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Mauricio Olguín Carbajal,
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Francisco Alejandro Chávez Estrada
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

IPN CIDETEC
Instituto Politécnico Nacional
Centro de Innovación y Desarrollo Tecnológico en Cómputo

 

Resumen

En este trabajo se presenta un análisis dirigido a la capacidad de resolver la clasificación de notas musicales de una guitarra eléctrica utilizando redes neuronales artificiales (RNA). Diseñando diferentes arquitecturas de RNA en el software NeurophStudio logrando los resultados con base en un dataset en formato .csv creado con guitarra eléctrica utilizando el lenguaje de alto nivel LabVIEW.

 

I. Introducción

Neuroph Studio es un marco orientado a objetos de redes neuronales escrito en Java. Puede utilizarse para crear y formar redes neuronales artificiales en programas Java. Neuroph proporciona la biblioteca de clases de Java, así como la herramienta de interfaz gráfica(GUI) easyNeurons para la creación y formación de redes neuronales. Es un proyecto de código abierto en SourceForge, y la última versión 2.4 ha sido publicada bajo la licencia Apache [1].

Las RNA feedforward (redes de propagación) fueron las seleccionadas para indagar en la investigación ya que presentan la propiedad que los grafos no tiene bucles, es decir sin memoria, en el sentido en que su respuesta a un input es independiente del estado previo de la red.   

Figura 1. Clasificación de los tipos de RNA.

Dentro de las RNA feedforward existe la arquitectura perceptron multicapa con el siguiente algoritmo de aprendizaje [2].

 

  • Tiene sus neuronas agrupadas en capas de diferentes niveles.
  • Cada una de las capas está formada por un conjunto de neuronas y se distinguen tres tipos de capas diferentes: la capa de entrada, las capas ocultas y la capa de salida.
      • Las neuronas de la capa de entrada no actúan como neuronas propiamente dichas, sino que se encargan únicamente de recibir las señales o patrones del exterior y propagar dichas señales a todas las neuronas de la siguiente capa.
      • La última capa actúa como salida de la red, proporcionando al exterior la respuesta de la red para cada uno de los patrones de entrada.
      • Las neuronas de las capas ocultas realizan un procesamiento no lineal de los patrones recibidos.

 

Figura 2. Estructura de arquitectura perceptron multicapa.

II. Desarrollo

Dado que Neuroph tiene la virtud de trabajar con un conjunto de datos en formato .csv se creó un programa realizado en LabVIEW con ayuda de la interfaz myDAQ [3] de la empresa national instruments, obteniendo un conjunto de datos y esté ser usado como dataset en la entrada de la red neuronal. El modo en el que se adquirieron y recopilaron los datos fue partiendo de tocar una nota musical en la guitarra eléctrica y está ser enviarla a la interfaz vía plug con la finalidad de que entregue a la salida la conversión analógica - digital. Una vez obtenida la conversión digital, todos los datos fueron almacenados en una hoja de Excel. A continuación, muestro la programación en LabVIEW y el ambiente visual del programa ejecutado.

 

Figura 3. Programación en LabVIEW.

 

 

Figura 4. Ambiente visual en LabVIEW.

Dicho dataset está compuesto por 7 mediciones distintas donde cada una de estas corresponden a una nota musical diferente desde Do hasta Si, y cada mediación contiene 15 muestras haciendo esté proceso durante 10 eventos. A continuación, se muestran la adquisición de los datos de una sola nota musical, la cuál será Do.

Figura 5. Tabla de Excel con la adquisición de datos de la nota musical Do.

Una vez obtenido todo el dataset, cada muestra se normalizo ya que deben tomar valores en el rango entre 0 y 1 con la siguiente formula y finamente el archivo de Excel se guardó en formato .scv.

Dónde:
X - Valor que debe normalizarse
Xn - Valor normalizado
Xmin - Valor mínimo de X
Xmax - Valor máximo de X

Con la normalización de los datos lograda se realizaron varios diseños de arquitectura de red neuronal artificial, todos con base en las redes feed-forward backpropagation.
Se utilizó en el software NeurophStudio el entrenamiento de la red neuronal artificial con diferentes arquitecturas con la finalidad de conocer en qué arquitectura el entrenamiento es más exacto destacando que todas las pruebas se realizaron con 15 neuronas en la primera capa ya que son el número de muestras por evento que se realizó en el dataset y 7 neuronas en la capa de salida debido a que son las notas musicales que se desean clasificar, las cuales son Do, Re, Mi, Fa, Sol, La y Si.

III. Experimentos

Presento el seguimiento de la realizacion de los experimentos así como los parametros con los que se hicieron las puebas de las diferentes arquitecturas en Neuroph.

 

Figura 6. Definición de RNA en Neuroph.

 

 

Figura 7. Asignación de número de neuronas ocultas, función de trasferencia y regla de aprendizaje

 

Figura 8. Parámetros de entrenamiento.

 

Figura 9. Gráfica error total de la red “entrenamiento”.

IV. Resultados

Los resultados de las pruebas del entrenamiento de la red neuronal con NeurophStudio se presentan en la tabla siguiente:

Tabla 1. Tabla de resultados del entrenamiento con diferentes números de neuronas ocultas en NeurophStudio.

El resultado con mayor precisión en el entrenamiento de la red neuronal fue la red con 15 neuronas ocultas ya que arrojo un error cuadrático medio de 0.010220329.

Concluyendo la arquitectura de la red neuronal como se presenta a continuación:

1. Capa de entrada: 15 neuronas.
2. Capa oculta: 15 neuronas.
3. Capa de salida: 7 neuronas.

Figura 10. Arquitectura de red neuronal en NeurophStudio.

Finalmente muestro como se activa la neurona que corresponde al conjunto de entrada de la nota Mi.

Figura 11. Ingreso de conjunto de datos.

 

Figura 12. Activación de neurona con exactitud del 100%.

V. Conclusión

Se logró obtener un entrenamiento de red neuronal artificial feedforward con ayuda del software NeurophStudio sin la necesidad de hacer todos los cálculos, análisis, realizar algoritmos de aprendizaje, etc. Es posible considerar en diferentes proyectos la implementación de Neuroph considerando que arrojo resultados excelentes en materia de soluciones rápidas y respetables.

Finalmente se logró la clasificación del 100% de las 7 notas musicales (Do, Re, Mi, Fa, Sol, La y Si)

 

Referencias

  1. NeurophStudio. http://neuroph.sourceforge.net/index.html, Consultado en línea el 12 de octubre de 2017.

  2. Emiliano Aldabas-Rubira, Introducción al reconocimiento de patrones mediante redes neuronales UPC-Campus Terrassa-DEE-EUETIT Colom, 1 08222 Terrassa Barcelona, Consultado en línea el 24 de septiembre de 2017.

  3. myDAQ - National Instruments, http://www.ni.com/es-es/shop/engineering-education/portable-student-devices/mydaq/what-is-mydaq.html Consultado en línea el 29 de julio de 2017.