Instrumento Audiovisual Inteligente (Intelligent Grafikton) Carlos E. Rosales y Wilmer E. Pereira Universidad Católica Andrés Bello, Escuela de Ingenieria Informática Caracas, Venezuela, 1020
[email protected],
[email protected] Resumen La robótica, video juegos y procesamiento natural del lenguaje han sido campos donde tradicionalmente se ha aplicado la inteligencia artificial. No obstante hay otras áreas, como la música, donde también se han realizado trabajos de investigación usando Inteligencia Artificial. La mayoría de estos proyectos han tenido como foco principal la composición musical donde el ejecutante es el sistema desarrollado, dejando a un lado la posible intervención humana durante el proceso de ejecución. En este trabajo se explora el desarrollo de instrumentos musicales audiovisuales donde el proceso de ejecución es compartido entre la computadora y el usuario, ya que el software desarrollado reconoce las preferencias cognitivas musicales del usuario a través de algoritmos de inteligencia artificial. En específico se utilizan y comparan algoritmos de Aprendizaje por Reforzamiento como Iteración de Valores y de Aprendizaje Q. Dichas preferencias musicales se basan en la clasificación por tipos de sonoridad, a saber: cordófonos, aerófonos, membranófonos e idiófonos. Los resultados obtenidos muestran que los algoritmos de Aprendizaje por Reforzamiento utilizados son una técnica conveniente para el desarrollo de instrumentos musicales que aprendan de las preferencias del usuario. Más aún, según las necesidades del mismo, cada algoritmo tiene particularidades que lo hacen más atractivo o mejor adaptado a ciertas condiciones impuestas por el ejecutante. Palabras claves: Aprendizaje por Reforzamiento, Aprendizaje Q, Iteración de Valores, Música, Sonido. Abstract Robotics, video games and natural language processing are fields where artificial intelligence has been traditionally applied. Nonetheless, there are other areas, like music, where investigations have also been made using artificial intelligence. Most of these projects had music composition as the main goal where the executant is the developed system, leaving aside a possible human intervention during the execution process. In this work we explored the development of audiovisual music instruments where the execution process is shared between the computer and the user, since the software recognizes the user music preferences through artificial intelligence algorithms. Reinforcement Learning algorithms, such as Value Iteration and Q Learning, are used and compared. These preferences are based on the classification by sonority, that is to say: cordófonos, aerófonos, membranófonos and idiófonos. The results show that the Reinforcement Learning algorithms used are an advisable technique for the development of music instruments that learn the user preferences. Even further, according to the needs of the latter, each algorithm has special features that make it more attractive or better adapted to certain conditions imposed by the executant. Keywords: Reinforcement Learning, Q Learning, Value Iteration, Music, Sound.
1
1. Introducción Autores como Jean-Luque Lamarque y Nicolas Clauss se han enfocado en la síntesis de artes, medios, matemática y programación, desarrollando diversos proyectos de música multimedia. Lamarque fue el creador del instrumento audiovisual Pianographique [7], donde mezclando la música con efectos visuales de manera determinística, llega a relacionar las dos variables principales de la investigación: la informática y el arte. Dichas variables, y en particular la Inteligencia Artificial (IA) y la música, representan la esencia de este trabajo. Se puede constatar, según Sergi Jordá [5], que los primeros estudios reales de la informática en la composición musical, se generaron aproximadamente con el surgimiento de las computadoras. Uno de los primeros trabajos fue realizado por el químico y compositor Lejaren Hiller, quien en 1955 con algoritmos especiales y utilizando la computadora “Illiac”, logró componer una obra para cuarteto de cuerdas denominada “Illiac Suite” siendo esta una composición musical pionera. Así mismo Sergi Jordá explica que la “Suite Illiac” combinaba procesos markovianos deterministas y otros conceptos de la teoría informática. Bajo este enfoque, surgieron los primeros programas de composición con la capacidad de imitar un estilo musical. Dichos programas utilizaron la estadística y la probabilidad para generar notas musicales, intentando incluir de algún modo datos sobre la estructura general de una pieza musical. Posteriormente, hacia los años setenta, algunos investigadores han estudiado las teorías de música tonal desde otro enfoque, intentando obtener modelos de aprendizaje. Entre ellos se destaca Smoliar, que implementó en el lenguaje de programación LISP un sistema que generara cantos gregorianos y contrapunto “a la Bach”. Iannnis Xenakis, introdujo el concepto de música estocástica., utilizando para ello la probabilidad, la cual, es aleatoria a nivel microscópico pero determinística a nivel macroscópico (a las sensaciones auditivas). También hay estudios que relacionan la inteligencia artificial con la música enfocándose en temas como síntesis de sonido, estructuras musicales en grabaciones, y reconocimiento de patrones musicales entre otros. Dado el estado del arte de las investigaciones en música e IA, resulta interesante aportar ideas y resultados en el desarrollo de instrumentos musicales audiovisuales donde el sistema reconozca las preferencias musicales del ejecutante entre cuatro grupos: cordófonos, aerófonos, membranófonos e idiófonos. Esto gracias al uso del Aprendizaje por Reforzamiento (AR) de Iteración de Valores y el de Aprendizaje Q. El nombre de este instrumento musical es Intelligent Grafikton. A continuación se presentan esquemáticamente los ámbitos que toca el trabajo de investigación para una mejor comprensión:
Figura 1. Esquematización del planteamiento del problema. A través del desarrollo del Intelligent GrafikTon se aporta al campo de las artes y la informática una forma de generar música donde el usuario y el sistema trabajan conjuntamente para la ejecución de una pieza musical. El resto de este documento está organizado de la siguiente manera: en primer lugar se hace una descripción general del Aprendizaje por Reforzamiento; en la sección 3 se presentan los conceptos musicales que se utilizaron en la investigación; en la sección 4 se desarrolla el proceso de creación del Intelligent GrafikTon; justo después se muestran
2
las pruebas realizadas y sus resultados; para finalmente concluir en la sección 6 sobre los resultados y perspectivas a futuro de la presente investigación.
2. Aprendizaje por Reforzamiento El aprendizaje por reforzamiento representa una de las técnicas de IA utilizadas con frecuencia en situaciones en donde la cantidad de variables y sus interrelaciones, hacen dificil desarrollar un programa determinístico para solucionar el problema. Específicamente se aplica cuando no se dispone de un histórico que permita someter a la aplicación a una fase previa de aprendizaje. Esto implica que debe aprender en tiempo real, es decir mientras se encuentra en fase de ejecución. En este modelo de aprendizaje, la interacción del agente con su ambiente ocurre de la siguiente manera: el agente realiza acciones, modifica su entorno y gracias a su capacidad sensorial, percibe los cambios. Con el estado actual de su conocimiento, toma una decisión y actualiza su estado interno para futuras situaciones. Cada sistema de AR se basa en iteraciones de ensayo y error entre el agente y su ambiente. Estas iteraciones ayudan al agente a tomar la mejor decisión posible para ese instante, de acuerdo al estado donde él se encuentre. Para ello existe una estrategia o política de retroalimentación que provee la recompensa o el castigo que aplica por la acción tomada. Como consecuencia, el sistema de AR debe aprender una relación entre situaciones y acciones con su ambiente, gracias a la Función de Reforzamiento. El aprendizaje entre situaciones y acciones debe expresar cuan bien es encontrarse en un estado o cuan bien es realizar una acción en un estado específico. Este concepto se denomina la función Valor y se actualiza en función a las posibles recompensas y/o castigos futuros. El objetivo del AR es afinar correctamente la función valor hasta estabilizarse. En la actualidad existen diversas técnicas para encontrar la relación entre estados y valores y entre ellas se encuentran los algoritmos basados en la Programación Dinámica que tienen la enorme ventaja de que sistemáticamente convergen. Esta es una excelente propiedad que de hecho no es válida en todos los modelos de aprendizaje como las redes neurales o los algoritmos genéticos. Las variables y factores utilizados en el aprendizaje por reforzamiento son los siguientes: Notación
V ( xt ) V * ( xt )
γ
Concepto Es la aproximación de la función valor Es la función valor óptima donde
xt
es el vector de los estados (este es el
valor ideal al cual se intentará llegar iterando sobre V(xt)) Es el factor de descuento en el rango
[0,1] que causa que los reforzamientos
inmediatos tengan más importancia que los reforzamientos futuros
r ( xt , u )
Es el reforzamiento (recompensa o castigo) que recibe el sistema de AR al realizar la acción
u
en el estado
xt
Figura 2. Notaciones Aprendizaje por reforzamiento. 2.1. Iteración de Valores La idea fundamental consiste en representar la función valor V * ( x t ) con una tabla de sus valores aproximados, donde cada estado tiene un valor actual que refleja el conocimiento del agente sobre su entorno de acción. En la figura 3 se muestra una posible tabla de valores del algoritmo Iteración de Valores.
3
Figura 3. Matriz de valores de estados para el algoritmo Iteración de Valores
La función valor óptima puede ser encontrada realizando sucesivas iteraciones en la tabla de estados, actualizando el valor según la ecuación mostrada en la Figura 4. El proceso continúa hasta llegar a una iteración donde no hay más cambios en los valores. Esto implica la convergencia de los valores de los estados y por tanto se puede asegurar que el proceso de aprendizaje llego al menos a un subóptimo. En dicha ecuación causando una transición al estado
u es la acción realizada en el estado xt
xt +1 . V (x t ) = max (r (x t , u ) + γ V (x t +1 )) u
Figura 4. Ecuación de actualización de valores del algoritmo Iteración de Valores.
2.2. Aprendizaje Q El algoritmo de Iteración de valores resuelve el problema cuando el proceso de decisión sobre la mejor acción a tomar es determinístico. Es decir cuando estando en cierto estado, hay certeza de cual es la mejor acción a realizar para pasar al siguiente estado. Cuando el proceso de decisión no es determinístico, debe existir una función de distribución probabilística que define un conjunto de potenciales estados sucesores realizada una acción en un estado. En este caso se requiere encontrar una acción que retorne el máximo valor esperado, el cuál es la suma de los reforzamientos y la integral sobre todos los posibles estados sucesores realizada una acción en un estado. La razón de la integral se basa en que el agente, al realizar una acción en un estado, puede dirigirse a uno o más estados, según la probabilidad de terminar en un estado
xt +1 si se realiza la acción u
en el estado xt .
Aprendizaje Q utiliza una relación entre pares estado-acción y su valor, en vez de asignarle valores a los estados directamente. Estos valores son conocidos como Valores Q. En cada estado existe un Valor Q asociado por cada acción. La definición de un Valor Q se expresa como la suma de los reforzamientos recibidos al realizar la acción asociada, siguiendo una política determinada. Los valores Q pueden representarse como una matriz como se muestra en la figura 5:
Figura 5. Matriz de valores Q.
4
En el contexto del Aprendizaje Q, el valor en un estado dada la acción u, se define como el máximo Valor Q, hasta el momento, para esa acción. La ecuación para actualizar los valores Q se presenta en la figura 6.
Q(xt , ut )= r (xt , ut )+ γ maxQ(xt +1 , ut +1 ) ut +1
Figura 6. Ecuación de actualización de valores del algoritmo Aprendizaje Q.
3. Música Al desarrollar un sistema que involucra la música con la IA es necesario introducir ciertos conceptos para comprender el alcance del proyecto. La música es un concepto bastante subjetivo para delimitarlo con palabras, aunque se podría decir que es el lenguaje que el hombre utiliza para representar sentimientos y vivencias personales. Para hacer música es necesario la ejecución de uno o más instrumentos musicales, los cuales, según Koldo [6] se clasifican en cuatro grandes grupos: Idiófonos: cualquier instrumento musical capaz de producir sonido mediante la vibración de su propio material primario, es decir, sin las vibraciones de una cuerda, membrana o columna de aire. Por ejemplo: los instrumentos de percusión, los cuales producen sonido cuando un objeto sonoro es golpeado con un objeto no sonoro (campana, xilófono, entre otros) e instrumentos de fricción, cuando se hace sonar un objeto mediante frotación (copa de agua frotada por dedos). Membranófonos: cualquier instrumento musical capaz de producir sonido mediante la vibración de una membrana. Generalmente la membrana es una piel de animal tensa, aunque actualmente se elaboran con materiales sintéticos. La vibración de esta membrana se realiza por golpeo (manos, baqueta, palo) o por fricción. Cordófonos: cualquier instrumento musical capaz de producir sonido mediante la vibración de una cuerda. Pueden ponerse en movimiento por medio de la pulsación (laúd), la percusión (piano), o la frotación (violín). Aerófonos: cualquier instrumento musical en el que una columna de aire constituye el sistema vibratorio fundamental. El intérprete es, en la mayoría de los casos, quien pone el aire en movimiento mediante el soplido.
4. Creando el Intelligent GrafikTon Como se menciona en la sección 1 el enfoque del trabajo fue explorar el desarrollo de instrumentos musicales audiovisuales donde el proceso de ejecución fuese compartido entre computadora y usuario, y en la cual la herramienta aprenda las preferencias musicales del usuario. Para el desarrollo del instrumento musical Intelligent GrafikTon el mismo se dividió en 3 módulos: • • •
Generador de sonidos Inteligencia artificial Generador de gráficos.
4.1. Módulo generador de sonidos El objetivo fundamental era responder a eventos de teclado para reproducir sonidos que se encuentren en formato .wav. Es importante destacar que se seleccionaron como teclas válidas para reproducir sonidos las del alfabeto ya que no todos los teclados tienen en iguales posiciones teclas no estándares como lo son el acento, los dos puntos “:” y la letra “ñ” entre otros. Adicionalmente se incluyó la reproducción de sonidos indefinidos, también llamados loops, que son elementos de acompañamiento al usuario mientras este utiliza el sistema. Así se implementó en el teclado numérico, un controlador de loops con cuatro bancos de sonidos en donde cada banco tiene 6 sonidos distintos. Los bancos están
5
vinculado a una tecla: el banco 1 con la tecla “/”, el banco 2 con la tecla “*”, el banco 3 con la tecla “-” y el banco 4 con la tecla “+”. Finalmente este módulo tiene la capacidad de poder intercambiar el sonido de una tecla por otro sonido. Como fase preliminar al diseño de este módulo, se grabaron, clasificaron y almacenaron los sonidos en un árbol de directorios. Este módulo se realizó en Java usando, en particular, las clases del API JavaSound. 4.2. Módulo de inteligencia artificial En este módulo el objetivo principal era desarrollar un mecanismo que aprendiera de las preferencias musicales del usuario, y proveyera más sonidos acordes a dichas preferencias. Ya que no existía un conjunto de situaciones y acciones determinadas para entrenar al sistema (conjunto de entrenamiento), se optó por el Aprendizaje por Reforzamiento, por ser una técnica que aprende y se ejecuta simultáneamente. En específico se utilizaron los algoritmos de Iteración de Valores y Aprendizaje Q para comparar sus rendimientos ante factores cambiantes del usuario y tiempo de convergencia. Las primeras interrogantes que surgieron en esta fase fueron: ¿Cómo implementar dichos algoritmos en el sistema?, ¿Cuales serían los estados y acciones asociadas? ... La idea propuesta fue definir los estados como disposiciones del teclado en función al total de sonidos asignados al teclado en ese momento. En la siguiente figura se aprecia como se adaptó esta idea:
Figura 7. Estados del ambiente del sistema.
x cantidad de Cordófonos, y cantidad de Aerófonos, z cantidad de Idiófonos, y w cantidad de Membranófonos formando una cuatrupleta ( x, y , w, z ) . Las
La configuración de teclado está representada en el programa como:
acciones cambian el patrón musical de una tecla según como interactúa el usuario. Al ejecutar una acción se llega a un estado donde se aumenta o disminuye la cantidad de teclas que tienen el patrón relacionado con la acción realizada. Por ejemplo: si el agente se encuentra en el estado (6,6,6,8) y realiza la acción Membranófono, el sistema busca aleatoriamente una tecla que no posea este patrón; al localizarla identifica cual es su patrón musical para disminuir ese componente en la cuatrupleta. Supongamos que se decide disminuir Cordófono, entonces el agente llegaría al estado (5,6,6,9). Es importante destacar que la suma de las componentes x, y , z , w es 26 pues esta es la cantidad de las teclas válidas seleccionadas para reproducir sonidos. Esto dio como resultado un ambiente de 3654 estados, donde sólo existe un estado terminal. A este estado se llega bajo dos enfoques distintos. Un enfoque automático donde antes de iniciar la sesión de ejecución y aprendizaje, se le solicita al usuario cual será el estado terminal (uno de los cuatro patrones musicales). En el otro enfoque, que llamaremos automático, el estado terminal es definido por el patrón que el usuario ejecuta en mayor cantidad, en un intervalo de tiempo t . Por último se elaboró una política de recompensas y castigos, la cual se describe en la figura 8:
6
Acción realizada Condición
Acción realizada
incrementa la
Acción realizada llega
componente
al estado terminal
componente
relacionada con el
objetivo
relacionada con el
decrementa la
objetivo Recompensa
Acción realizada deja en cero la componente relacionada con el objetivo
objetivo
0.5
0.75
-0.5
-0.75
Figura 8. Política de recompensas. De acuerdo al aprendizaje Q se diseño la matriz de valores Q que se muestra a continuación: Estado/Acción (6,6,6,8) (7,5,6,8) (8,5,5,8) (9,5,4,8) (10,4,4,8) . . .
+1 Cordófono 1.8745 2.4 5.82 2.1 3.02 . . .
+1 Aerófono 0,21 1.2 0.12 0.3 1.1 . . .
+1 Membranófono 0.56 6.34 0.2 -1.2 -1.4 . . .
+1 Idiófono 1.2 -1.65 -0.4 -1.4 -2.5 . . .
Figura 9. Matriz de valores Q. Dicha matriz muestra el valor de realizar una acción en un estado determinado. Cada vez que el agente realiza una acción, este se desplaza a un estado, toma el valor de dicho estado y su recompensa y actualiza el valor del estado donde se ubicaba antes de realizar una acción. Estos pasos los realiza hasta llegar al estado terminal. En cuanto al agente bajo Iteración de Valores, se adoptaron los mismos estados y acciones pero la matriz de aprendizaje se diseño de manera distinta, como se muestra en la figura 10. Estado Valor
(6,6,6,8) 1,2
(7,5,6,8) 2,1
(8,5,5,8) 2,23
(9,5,4,8) 2,24
(10,4,4,8) 2,56
(11,3,4,8) 3,45
(12,2,4,8) 3,67
. . . . . . . . . . . . . .
Figura 10. Matriz de Valores de los Estados para el algoritmo Iteración de Valores La matriz refleja el valor de encontrarse en un estado determinado. Cada vez que el agente se encuentre en un estado, este simula realizar las cuatro acciones posibles (Cordófono, Aerófono, Membranófono o Idiófono). Toma la que da mayor resultado, realiza una acción y actualiza el valor del estado actual, realizando la transición a otro estado. Justo después de haber realizado el análisis del ambiente, el agente y las acciones, se diseñaron las clases que conformarían el módulo de inteligencia artificial bajo tecnología java. Así mismo, se implementó un procedimiento de configuración para indicar al programa que agente usar, el estado inicial, cantidad de iteraciones a realizar y valor de parámetros de aprendizaje entre otros. Adicionalmente se diseñó el sistema para que trabajase de dos modos: Automático: se le indica al agente el objetivo final entre los cuatro objetivos posibles: Cordófono, Aerófono, Membranófono e Idiófono. Interactivo: el sistema obtiene feedback del usuario con la finalidad de aprender el patrón musical de su preferencia. De esta manera se proporciona cierto tiempo (configurable) antes de comenzar a obtener feedback, una vez llegado el tiempo de partida se le proporciona otro intervalo de tiempo en el cual el usuario exprese sus preferencias tocando las teclas del patrón musical deseado. Este proceso se ejecuta indefinidamente durante el aprendizaje.
7
Es de notar que dentro de este módulo, se diseñaron métodos para permitir leer una matriz de aprendizaje generada por el sistema al finalizar una sesión. Esto con la finalidad de que el proceso de aprendizaje se realizara en varias sesiones y que el agente no perdiese la memoria entre una sesión y otra. 4.3. Módulo generador de gráficos Este módulo responde a eventos del teclado para mostrar gráficos cuando el usuario interactúa con Intelligent GrafikTon. Para el desarrollo de este módulo se utilizó una versión de prueba de JFlashPlayer (software desarrollado por JavaApis [4]) para poder integrar una película diseñada en la tecnología Macromedia Flash. Básicamente se integró una instancia del JFlashPlayer en un panel de la aplicación y en este panel se cargó la película desarrollada. En la elaboración de la película en Flash se utilizaron como insumos, fotos de la ciudad de Caracas extraídas del sitio http://www.imagebank.com. El tema principal de la película fue la visualización de la ciudad a través de vidrios quebrados, que refleja el deterioro de la misma con el pasar de los años. En la figura 11 se muestra una de las pantallas del Intelligent GrafikTon. Detiene el sistema, incluyendo cualquier sonido que se este reproduciendo Gráficos vectoriales que cambian cada vez que se toca alguna tecla
Inicia el sistema, una vez presionado el grafikTon comienza su proceso de aprendizaje
Indica el patrón musical que se está ejecutando en la tecla tocada recientemente
Figura 11: Intelligent GrafikTOn
5. Pruebas Una vez culminado el diseño de los módulos del sistema se procedió a la integración de los módulos e inmediatamente se realizó la fase de pruebas con la finalidad de identificar el algoritmo que mejor se adaptara a las preferencias del usuario. Es importante mencionar que el análisis de los resultados de las pruebas se efectuó a partir de la cantidad de iteraciones realizadas por el agente y el número de acciones mínimas y máximas ejecutadas en cada iteración. La cantidad de acciones mínimas (óptimas) dependerá del estado inicial donde se encuentra el agente. Por ejemplo si el agente se encuentra en el estado (10,10, 3, 3) y el objetivo es Cordófono (representado por la primera componente), la cantidad óptima de acciones será 16 para alcanzar el estado final (26, 0, 0 ,0).
8
Por otra parte, la cantidad de acciones máximas realizadas por el agente serán 1000, lo que se traduce en que si el agente ejecuta este número de acciones sin llegar al objetivo, comenzará una nueva iteración. Esta situación se puede presentar en las primeras iteraciones debido a la poca información que posee el agente del ambiente. Una iteración comienza con el agente ubicado en un estado inicial, el cual es establecido inicialmente, y culmina o bien cuando el agente llega al estado final (objetivo establecido por el usuario) o bien cuando realiza el número de acciones consideradas como máximas. A continuación se presentan las pruebas realizadas y sus resultados: 5.1. Prueba #1: Aprendizaje Q en ambiente estocástico en modo interactivo. En esta prueba se experimentó con Aprendizaje Q en modo interactivo iniciando con objetivo Cordófono y, en iteraciones posteriores, el usuario se inclinó por Membranófono, cambiando de esta manera el objetivo final. Aprendizaje Q modo interactivo en ambiente estocástico
Número de pasos
1200 1000 800 600 400 200 0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 Iteración
En esta figura se observa como el sistema aprendió las acciones para llegar al objetivo Cordófono, una vez cambiado el objetivo. Es de notar que en algunos estados seguía ejecutando acciones que anteriormente le traían beneficio, pero después obtuvo castigos. Además en la cantidad de iteraciones realizadas, el algoritmo no convergió en las acciones óptimas, sino que siempre realizó un número subóptimo de acciones para llegar al nuevo objetivo. Dicho número oscilaba entre 20 y 30 acciones.
Figura 12: Prueba #1 Aprendizaje Q en modo interactivo en ambiente estocástico.
5.2. Prueba #2: Aprendizaje Q en modo automático, leyendo una matriz de aprendizaje generada en sesiones anteriores.
Número de pasos
Aprendizaje Q modo automático, leyendo una matriz de aprendizaje generada en sesiones anteriores 1200 1000 800
Sesion 1 Objetivo Idiófono
600 400 200 0
Sesion2 Objetivo Cordofono
1
Aquí se muestra como en la primera sesión el sistema convergió a las acciones óptimas de manera muy rápida. La matriz generada en la sesión 1 fue conocimiento inicial para la sesión 2, y allí se puede observar como la convergencia en esta sesión se logró en aproximadamente 140 iteraciones.
17 33 49 65 81 97 113 129 145 Iteración
Figura 13: Prueba #2 Aprendizaje Q en modo automático leyendo una matriz de aprendizaje generada en sesiones anteriores.
9
5.3. Prueba #3: Iteración de Valores en modo interactivo. Iteración de valores modo interactivo
Aquí se puede observar como el agente se adapta fácilmente a los cambios de objetivos, mucho más rápido que Aprendizaje Q. Los cambios entre las iteraciones 5 y 7, y entre las 21 y 26 representan iteraciones donde se cambió el objetivo.
30 Número de pasos
25 20 15 10 5 0 1
3
5
7
9
11 13 15 17 19 21 23 25 27 29 31 Iteración
Figura 14: Prueba #3 Iteración de Valores modo interactivo. 5.4. Prueba #4: Iteración de Valores en modo automático. Iteración de valores modo automático
Número de pasos
30 25 20 15 10 5 0
En la figura 15 se pudo notar que el algoritmo Iteración de Valores converge mucho más rápido que Aprendizaje Q. Esto se debió a que se requiere que el agente conozca mucho del ambiente antes de realizar una acción y es por ello que siempre simula hacer la mejor acción antes de realizarla (sabiendo a priori la acción que le retorna beneficio inmediato). Adicionalmente el árbol de estados generados en cada iteración tiene una profundidad no mayor a 26 estados, lo que causó que la convergencia hacia el número de acciones óptimas se realizara de manera inmediata.
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 Iteración
Figura 15: Prueba #4 Iteración de Valores modo automático.
6. Conclusiones A pesar de que este no es el primer trabajo donde se relacionan la IA y la música, a través del desarrollo del Intelligent Grafikton, se aporta al campo de las artes y de la informática, una forma de generar música, en la cual el usuario y el sistema trabajan conjuntamente para la ejecución de una pieza musical. Esto se logra gracias a que este sistema aprende las preferencias musicales del usuario y le aporta una variedad amplia de sonidos. Además, este sistema posee la cualidad de ser estéticamente atractivo para el usuario, inspirado por el singular Pianographique de Lamarque [7]. Con las técnicas de Aprendizaje por Reforzamiento utilizadas, se concluye que según el comportamiento del usuario, cada algoritmo presenta ciertas ventajas y desventajas. Entre las observaciones a resaltar están: √
Si el usuario desea que el sistema le proporcione rápidamente sonidos de su preferencia debe usar Iteración de Valores, ya que en la mayoría de los casos, llegará al objetivo en la cantidad de acciones óptimas, proporcionándole rápidamente un teclado pleno de sonidos pertenecientes al patrón musical de su preferencia.
10
√
√ √
Por el contrario, si el usuario desea experimentar con varios patrones musicales antes de llegar a su patrón preferencial, debe usar Aprendizaje Q, ya que este algoritmo tiene la capacidad de explorar nuevas situaciones, retardando un poco la convergencia de los valores, y por ende aumentando la cantidad de acciones requeridas para llegar al objetivo. En caso de que el usuario no sea constante en sus preferencias, es muy probable que el sistema no converja a ninguno de los patrones musicales, sino que siempre le proporcionará al usuario una configuración de teclado heterogénea conteniendo sonidos de los cuatro patrones. En caso de que el usuario presente en una primera sesión una preferencia y en sesiones posteriores presente otra distinta, es recomendable utilizar iteración de valores ya que este algoritmo se adapta bastante bien al cambio de objetivo sin necesidad de “blanquear su memoria” o “cargarle conocimientos nuevos”. Si se utiliza Aprendizaje Q hay que destacar que el tiempo de convergencia es relativamente alto comparado con el de Iteración de Valores.
Como se mencionó anteriormente el Aprendizaje por Reforzamiento resultó ser una excelente opción para el desarrollo del sistema, ya que se asegura convergencia y brinda versatilidad al ejecutante. En trabajos futuros, se recomienda implementar el sistema con un contenido gráfico más rico, donde las preferencias gráficas del usuario también sean aprendidas por el sistema. Adicionalmente se sugiere implementar un módulo en Intelligent Grafikton para grabación de las sesiones y así poder reproducirlas posteriormente.
Referencias [1] Alten, Stanley. R. (1994) El manual del Audio en los medios de comunicación (Escuela de Cine y Video, Trad.). España: ITP (Trabajo original publicado en 1994) [2] Arbeitsgruppe Autonome Intelligente Systeme (s.f.). Value Iteration Example. http://ais.informatik.unifreiburg.de/lehre/ss03/ams/VI-Example.pdf [3] Harmon, Mance y Harmon, Stephanie (s.f.). Reinforcement Learning: A Tutorial. http://www.nbu.bg/cogs/events/2000/Readings/Petrov/rltutorial.pdf [4] Java Apis (2004), JFlash player. http://www.javaapis.com/jflashplayer [5] Jordá, Sergi (1990), Música e Inteligencia Artificial. http://www.iua.upf.es/~sergi/musicia.htm [6] Koldo Mitxelena Kulturunea (s.f.). Instrumentos del mundo. http//www.gipuzkoakultura.net/kmk/ganbara/musiver/obras.htm [7] Lamarque, Jean Luque (2001). Pianographique. http://www.pianographique.net/ [8] Masson, Thierry(2003). Artifitial Intelligence – The Q Learning Algorithm. Repository. http://thierry.masson.free.fr/index.html [9] Mecad Electronic Journal (2000). Entrevista a Eduardo Reck Miranda. http://www.transhumanismo.org/entrevistas/entrevista_eduardo_reck.htm [10] Russel, S. y Norvig, P (1996) Inteligencia Artificial Un enfoque moderno (R. Bautista, Trad.). Edo. De México, México: Prentice Hall (Trabajo original publicado en 1995) [11] Sutton, R. y Barto, A. (1998). Reinforcement Learning an Introduction. Massachussets, Estados Unidos: MIT Press.
11