¿Puede un red neuronal imitar a Luis Alberto Spinetta ? ¿Es capaz la inteligencia artificial de emular la poesía del Flaco? ¿Es apta la tecnología del aprendizaje automático (Machine Learning) para componer? Estas preguntas se hizo el argentino Alex Ingberg, ingeniero en sistemas y científico de datos, antes de poner a una red neuronal a aprender de Spinetta.
Es que el aprendizaje automático le permite a una computadora aprender sobre la información que ya tiene y va analizando, sin que un humano deba marcarle el camino a cada paso. Más bien hace un análisis estadístico de una gran base de datos para encontrar patrones, elementos comunes, características singulares que le enseñen a identificar, por ejemplo, un perro en una foto. Pero el concepto se aplica, por supuesto, a muchas otras cosas.
Va queriendo
Para el experimento spinetteano, Ingberg se centró en Tensorflow, un framework de Python que trabaja con redes neuronales, que fue desarrollado por Google y que es de uso abierto. En un detallado artículo (que luego recogió el sitio sobre música Silencio) Ingberg comparte paso a paso cómo fue perfeccionando el sistema hasta crear versos que quizás podrían haber sido escritos por el Flaco.
Los fanáticos se tomarán la cabeza porque, es cierto, los resultados generados por la computadora no se equiparan con la genialidad de Spinetta y siguen siendo más parecidos a un cálculo matemático en base a las palabras típicas presentes en su discografía que otra cosa. Pero igual da piel de gallina.
La base de datos que alimentó al software se generó con todas las letras escritas exclusivamente por Spinetta, desde el primer disco de Almendra hasta el último Los amigo.
Palabras encadenadas
Las técnicas utilizadas fueron Cadenas de Markov y RNN (Recurrent Neural Networks), le explicó Ingberg a LA NACION. En el primer caso, son procesos que tienen como principal característica buscar la probabilidad de un evento que depende de uno anterior: "cada palabra tiene una probabilidad de aparecer según cuál fue la palabra anterior. De esta manera, "predecir textos" se vuelve algo posible", indica Ingberg. Gmail, por ejemplo, incorporó hace poco una herramienta que va sugiriendo cómo completar una frase que estamos escribiendo, en base a frases anteriores en las que incluimos esas palabras: si ponemos buenas, es probable que luego agreguemos tardes o noches.
Para trabajar con este sistema Ingberg creó un diccionario de tuplas -un tipo de lista ordenada- de palabras consecutivas con bigramas y no palabras únicas: "la siguiente palabra en una oración se predice con las dos palabras anteriores en vez de la única palabra anterior", indica. El resultado arrojó estas duplas que bien podría haber escrito Spinetta o un mal imitador. Son como un copy paste de fragmentos aleatorios:
"sí, mientras la luna se oculta / No quiere decir que no hablaron jamás / Pues habla en mí, late en mi alma no está, no, no . Al fin / Yo no tengo un solo rastro tuyo en mi vida"
Neuronas del cerebro artificial
Para mejorar el resultado, Ingberg acudió a la segunda técnica mencionada, las redes neuronales recurrentes (RNN). Estas, a diferencias de las cadenas de Markov, tienen memoria. Si bien simulan un funcionamiento que se parece parcialmente a las neuronas del cerebro -por eso se llaman así-, las RNN pueden diferenciar algún patrón o secuencia de datos que analizaron previamente en el tiempo. Para probar cómo funciona con una canción conocida por todos -todos los fanáticos, al menos- se le entregó la frase Canción para los días de la… Los humanos, y más los que conocen la obra de Spinetta, saben que la palabra que la completa es vida. La máquina, no.
Ingberg aclara: "Lo interesante de esto no es solo ver el resultado final, sino el proceso de aprendizaje que el algoritmo fue teniendo en cada iteración. Como de un mejunje de caracteres pasa a versos formados en unos cuantos ciclos".
Finalmente, tras varias repeticiones, el modelo aprendió cuales son los caracteres indicados y qué forma tiene una canción de Spinetta. Por ejemplo, el largo de los versos y las reglas de puntuación básicas. como mayúsculas al arrancar las oraciones, algunas comas y puntos suspensivos. Esto último puede parecer una obviedad, pero no lo es: el robot tiene que aprender todo de las letras para que la generación sea lo más parecida al original posible.
Según indica Ingberg a LA NACION, realizó más de 250.000 iteraciones (repeticiones de cálculos sobre el último resultado) para perfeccionar al algoritmo, que pasó de decir frases incoherentes como:
Duende un círculo / Por eso tu freno / Supersamente un bañan / O en la equiera están
a párrafos más comprensibles, como:
Por tus ojos, / que me perdí / Sin tu amor... / Que dulce bien un jardín del likiti / Esta es mi feroz canción sin saber porque vi / Si mi tierra mamá / Mirá el eco de esta luz
Lo impactante de este experimento es que el sistema no sabía que estaba trabajando ni con el idioma español ni con una canción. Sin embargo, pudo comprender de qué se trataba y componer como el Flaco Spinetta, porque identificó los patrones que esconden sus letras: recurrencias, palabras más usadas, estructuras repetidas, etcétera.
De Jorge Drexler al Capitán Beto
Hace dos años que Alex Ingberg vive en Israel. Primero por un plan de estudio y luego por un trabajo relacionado con la ciencia de datos en Tel Aviv, para seguir aprendiendo de algo "que recién empieza", como el mismo aclara. "Elegí Spinetta porque quería hacer algo con las letras de canciones en castellano y no dudé pensar en el Flaco, porque es hermoso lo que escribe y llega al alma. Quería replicar un estilo y no tuve dudas en la elección por esa razón".
Ingberg ya había experimentado con la música y las letras. Su proyecto anterior fue con la lírica de Jorge Drexler, aunque tecnológicamente hablando no tuvo nada que ver con el experimento de esta nota, sino con patrones de análisis de datos. Aquí se puede leer el resultado del trabajo.
"Había leído de experiencias similares con las obras de Shakespeare o el corpus de Wikipedia a partir de maching learning y big data, y sabía que quería ir por ese lado". ¿Puede un robot crear arte? se pregunta Ingberg y seguramente el mundo entero. Si bien el interrogante no tiene respuesta por ahora, es cierto es que la inteligencia artificial puede ser una gran herramienta para los artistas.
Hace unas semanas, la empresa Huawei dio cuenta de ello al proponer un final para la Sinfonía Nro 8 de Schubert, compuesta en 1822 e inconclusa por la muerte del músico. Como dicha sinfonía es diferente a la obra del autor, la información con la que se informó al algoritmo sólo consistió en los dos movimientos previos de la sinfonía misma. El resultado fue fascinante, pero contó con la ayuda de un ser humano, el compositor Lucas Cantor, que no sólo supervisó la escritura sino que también la interpretó.
Ahora falta probar ponerle música a los versos inventados de Spinetta para ver la foto completa: el poder de la inteligencia artificial y el poder seguir viviendo sin su genialidad.