Les presento la traducción del artículo
"Creamos música: cuando las soluciones simples superan el aprendizaje profundo en efectividad" sobre cómo se usa la inteligencia artificial para crear música. El autor no utiliza redes neuronales para generar música, sino que aborda la tarea basándose en el conocimiento de la teoría de la música, sobre la base de la melodía y la armonía. Otra característica del artículo es el método de comparar obras musicales basadas en matrices de auto-similitud. Este enfoque, por supuesto, no es exhaustivo, pero es útil como un paso intermedio para generar música de alta calidad utilizando métodos de aprendizaje automático.

El uso de la inteligencia artificial en la creatividad actual se ha vuelto cada vez más común para fines de entretenimiento y comerciales, y ya ha dejado de sorprender al público. Por un lado, estas son herramientas para cambiar el estilo de una imagen como Prizma. Por otro lado, una red neuronal, cuyo producto se vendió como una imagen en la subasta de Christie por 432,5 mil dólares. No podemos dejar de recordar a nuestro especialista doméstico en la generación de música a través del aprendizaje automático, Ivan Yamshchikov, quien hace varios años presentó el proyecto Neural Defense (se pueden encontrar más detalles
aquí , y esta es
una entrevista con Ivan sobre Khabr ). Otro buen ejemplo del uso de redes neuronales para generar música es el artículo
"¿Sueñan los androides con el punk eléctrico?" Cómo enseñé a la red neuronal a escribir música ”de Artezio .
Además de comprender la teoría del aprendizaje automático, el uso de la inteligencia artificial para resolver problemas creativos también requiere experiencia en el dominio del arte. Esto hace que el proyecto en la unión de las dos áreas sea particularmente multifacético e interesante, pero también vulnerable a las críticas de ambos lados, porque el proyecto puede verse atrapado en el fuego cruzado de comentarios tanto de historiadores del arte como de científicos de datos.
Ampliando mis horizontes como parte del tema del uso de la inteligencia artificial en la música, me encontré con un artículo
"Creamos música: cuando las soluciones simples superan el aprendizaje profundo en eficiencia" , una traducción que me gustaría presentar a la comunidad Habr. Una de las ventajas de este artículo para mí fue que el autor no usa las redes neuronales como una caja negra, sino que aborda la tarea de generar música basada en el conocimiento de la teoría musical, basada en la melodía y la armonía. En este artículo, no se utilizan redes neuronales recurrentes (RNN, LSTM) ni redes adversas generativas (GAN): todos estos métodos dan resultados sorprendentes (por ejemplo, en el artículo
"¿Sueñan los androides con Pank eléctrico? ¿Cómo enseñé a la red neuronal a escribir música"? ), y los usamos activamente para resolver nuestros problemas en
CleverData . El autor enfatizó modelos basados en cadenas de Markov que hacen posible trabajar con las probabilidades de transición del estado actual de una obra musical a la siguiente. Los métodos utilizados por el autor tienen una ventaja adicional: el autor no tuvo que sacrificar la interpretabilidad del resultado en aras de utilizar un algoritmo popular y de moda.
Otra característica del artículo que me llamó la atención fue un método interesante para comparar obras musicales basadas en matrices de auto-similitud. Si la estructura de una canción puede representarse como una matriz de auto-similitud, entonces aparece otra medida cuantitativa de comparar canciones.
* * *
Resumen : cómo encontré un problema, usando el aprendizaje profundo para crear música, y cómo lo resolví con mi propia solución.
Plan
Desafío : cómo me encontré con problemas al usar técnicas de aprendizaje profundo para crear música pop.
Solución : cómo creé mi propia máquina de hacer música que podría competir con el aprendizaje profundo, pero basada en soluciones más simples.
Evaluación : cómo creé una métrica de evaluación que podría demostrar matemáticamente que mi música es "más parecida al pop" que la creada a través del aprendizaje profundo.
Generalización : cómo encontré una manera de aplicar mi solución a problemas no relacionados con la creación de música.
Cereza en el pastel
Creé un modelo probabilístico simple que genera música pop. Además, utilizando métricas objetivas, puedo decir con confianza que la música creada por mi modelo se parece más a la música pop que a la creada con técnicas de aprendizaje profundo. ¿Cómo hice esto? En parte, lo logré enfocándome en lo que es la esencia de la música pop para mí: en la relación estadística entre armonía y melodía.
Una melodía es una voz, un motivo. La armonía son acordes, una secuencia de acordes. En el piano, la melodía se toca con la mano derecha y la armonía con la izquierda.Desafío
Antes de profundizar en su relación, permítanme primero describir el problema. El proyecto comenzó con mi deseo de intentar crear música a través del aprendizaje profundo: IA, como lo llaman los laicos. Rápidamente llegué a LSTM (memoria a largo plazo), una de las versiones de la red neuronal recurrente (RNN), que es muy popular para generar textos y hacer música.
Pero cuanto más leía el tema, más comenzaba a dudar de la lógica del uso de RNN y sus variaciones para crear música pop. Esta lógica parecía estar basada en varios supuestos sobre la estructura interna de la música (pop), con la que no podía estar completamente de acuerdo.
Una suposición específica es una relación independiente entre armonía y melodía (para una definición de los dos, ver arriba).
Por ejemplo, considere la publicación de la Universidad de Toronto de 2017,
Song from Pi: A Musically Plausible Network for Pop Music Generation (Han Chu et al.). En este artículo, los autores claramente "sugieren ... los acordes
no dependen de la melodía" (la cursiva es mía). Sobre la base de esta suposición, los autores construyeron un modelo complejo RNN multicapa. Se selecciona una capa separada para la melodía, donde se crean notas (capa clave, capa de prensa), independiente de la capa de acordes (Capa de acordes). Además de la independencia, este modelo particular supone que la armonía se basa en la melodía. En otras palabras, la armonía depende de la melodía al generar notas.
Modelo RNN propuesto por Han Chu. Cada capa es responsable de un aspecto separado de la música.Esta forma de modelar me parece muy extraña, porque es completamente diferente de la forma en que las personas se acercan a escribir música pop. Como pianista de una escuela clásica, nunca consideré componer una melodía sin antes indicar armonía. La armonía define y corta una melodía. Axis of Awesome en su video una vez viral ha demostrado durante mucho tiempo la veracidad de esta idea.
Este video demuestra la característica principal de la música pop occidental: esta armonía, estos cuatro acordes afectan fuertemente la melodía que será al final. En el lenguaje de la ciencia de datos, la probabilidad condicional controla y determina la relación estadística entre armonía y melodía. Esto sucede porque las notas de la melodía dependen naturalmente de las notas de armonía. Por lo tanto, se puede argumentar que las notas de armonía indican inherentemente qué notas melódicas se pueden seleccionar en una canción en particular.
Solución
Me gusta encontrar soluciones originales a problemas complejos. Por lo tanto, decidí construir mi propio modelo, que podría reflejar a su manera la rica estructura de los datos musicales. Comencé centrándome en una fuerza probabilística predeterminada que gobierna la relación entre los diferentes tipos de notas musicales. Por ejemplo, mencioné anteriormente la relación "vertical" entre armonía y melodía.
(Procesando) datos
Como datos utilicé 20 canciones pop occidentales diferentes en formato midi (una lista completa de canciones se puede encontrar
aquí ).
Usando la biblioteca music21 python, analicé los archivos midi usando la cadena Markov. Esto me permitió resaltar las relaciones estadísticas entre los diferentes tipos de notas en mi entrada. En particular, calculé las probabilidades de transición de mis notas musicales. En esencia, esto significa que al observar la transición de las notas de una a otra, podemos calcular la probabilidad de que ocurra esta transición. (Una explicación más detallada a continuación)
Midi: versión digital de la canción.Primero, extraje las probabilidades "verticales" de la transición entre notas de armonía y notas de melodía. También calculé todas las probabilidades de transición "horizontal" entre las notas de la melodía de acuerdo con el conjunto de datos. Realicé este procedimiento para notas de armonía. La siguiente tabla muestra un ejemplo de tres matrices de transición diferentes entre diferentes tipos de notas en los datos musicales.
Opciones de transición, opciones. Superior - entre las notas de armonía y melodía. Medio: entre las notas de la melodía. Inferior: entre las notas de armonía.Modelo
Basado en estos tres modelos de probabilidad, mi modelo actuará de la siguiente manera:
- Selecciona una nota de armonía arbitraria disponible;
- Selecciona una nota de melodía basada en una nota de armonía usando la primera matriz probabilística;
- Selecciona la nota de melodía basada en la nota de melodía anterior, de acuerdo con la segunda matriz de probabilidad;
- Repite el paso 3 hasta que llegue a un cierto final;
- Selecciona una nueva nota de armonía, basándose en la nota de armonía anterior, utilizando la tercera matriz de probabilidad;
- Repite los pasos 1-4 hasta que se complete.
Un ejemplo específico de la aplicación del algoritmo:
- El programa seleccionó una nota armónica (F).
- Esta nota tiene 4 variaciones de notas de melodía. Usando la primera matriz de transición, el sistema selecciona la nota (C), dada la alta probabilidad de su uso (24.5%).
- Esta nota (C) va a la segunda matriz de transición, deteniendo la selección en la nota de melodía (A), en función de su frecuencia (88%).
- El paso 3 se repetirá hasta que el proceso alcance un punto final predefinido;
- Una nota de armonía (F), que se refiere a la tercera matriz probabilística, selecciona la siguiente nota armónica. Será (F) o (C), dada su similitud.
- Los pasos 1-4 se repetirán hasta que se complete el proceso.
Aquí puedes escuchar un ejemplo de música pop creada de esta manera:
Calificación
Aquí es donde comienza la parte difícil: cómo evaluar diferentes modelos. Al final, mi artículo sugiere que las probabilidades simples pueden ser más útiles que las redes neuronales. Pero, ¿cómo evaluamos la diferencia entre mi modelo y el modelo construido por una red neuronal? ¿Cómo podemos decir objetivamente que mi música se parece más al pop que a la música escrita por AI?
Para responder a esta pregunta, primero debemos determinar qué es la música pop. Ya expresé mi primera definición: la relación estadística entre armonía y melodía. Pero hay otro factor determinante en la música pop: está claramente marcado el comienzo, el medio y el final de la canción (introducción, pareado, puente, coro, finalización, etc.), que se repite a lo largo de la canción.
Por ejemplo, la línea "Déjalo ir, déjalo ir, no puede contenerlo más ..." es más probable que se encuentre en la parte media que al final o al principio. Y se repetirá tres veces durante la canción.
Con esto en mente, podemos recurrir a la llamada matriz de auto-similitud. En pocas palabras, la matriz de auto-similitud expresa matemáticamente el principio, el medio y el final de una canción. A continuación se muestra la matriz de la canción Falling Slowly de la película Once.
Cada segmento pequeño representa una nota. Cada bloque grande a 45 grados representa una parte de la canción.
El primer grupo oscuro representa el comienzo de la canción, el siguiente amarillo representa el siguiente segmento de la canción. Los grupos primero y tercero son de color similar, ya que son similares entre sí, así como el segundo y el cuarto.
Revisé veinte canciones pop de esta manera y luego creé una copia de la máquina (en la medida de lo posible) de sus estructuras.
Resultados
Los resultados hablan por sí mismos. Antes de usar la matriz de auto-similitud, mi programa produjo sonidos sin una estructura interna repetitiva. Sin embargo, después de copiar la estructura de los datos de origen, mi música comenzó a verse así:
Antes y después de aplicar la matriz de auto-similitudCompare con la matriz de auto-similitud de la música creada por una red neuronal en la Universidad de Toronto:
¡Así es como se pueden comparar y evaluar diferentes modelos, en función de sus matrices de auto-similitud!
Generalización
La última parte de la tarea que me propuse fue una generalización. Con esta palabra quiero decir: ¿cómo podemos hacer que mi modelo sea universal, basado en datos de entrada, para que pueda aplicarse a otras situaciones no relacionadas con la generación de música pop? En otras palabras, ¿hay algo más estructuralmente similar a mi generador de pop?
Después de pensarlo mucho, me di cuenta de que existe otro invento de la humanidad, similar en estructura: ¡la letra de las canciones pop!
Por ejemplo, aquí hay un extracto de I'll Be Edward McCain:
Seré tu hombro llorón
Seré amor suicida
Estaré mejor cuando sea mayor
Seré el mayor admirador de tu vidaAnalizaremos los huesos usando las mismas técnicas de aprendizaje automático. Podemos contar 'I'll be' como la primera palabra fuente en el modelo de lenguaje. Se usará para generar 'tu', del cual sale 'llorando', desde donde ya aparece 'hombro'.
Entonces surge una pregunta muy importante: ¿la primera palabra de la siguiente oración depende de la última palabra de la anterior? En otras palabras, ¿hay una relación entre la última palabra de una oración y la primera de la siguiente?
Creo que la respuesta es no. La oración termina con 'hombro', la siguiente comienza con la repetición de la primera: 'Estaré'. Esto se debe al hecho de que las primeras palabras de cada oración se repiten intencionalmente, lo que significa que entre las primeras palabras de cada oración hay una relación condicional similar. Estas primeras palabras se convierten en el punto de activación de la secuencia de las siguientes palabras.
Creo que este es un descubrimiento sorprendente. Parece que tanto la música pop como las letras tienen una estructura interna que depende del contenido. ¿Realmente genial?
Mira el proyecto en github* * *
Por supuesto, el enfoque propuesto en el artículo no puede considerarse exhaustivo. Por separado, vale la pena señalar que los métodos de trabajo con textos ahora están experimentando un aumento y se están desarrollando activamente, por lo que la mirada del autor a la letra no sorprenderá a los especialistas en PNL (procesamiento del lenguaje natural). Sin embargo, el artículo original del autor parece un paso intermedio útil para generar música de alta calidad utilizando métodos de aprendizaje automático.
Recientemente, se han ofrecido al público en general una serie de aplicaciones basadas en redes neuronales que generan música. Por ejemplo, es posible generar música techno en el sitio:
eternal-flow.ru . El autor de la solución también ofrece una aplicación móvil para generar música. Hay otra aplicación para generar música en dispositivos móviles:
mubert.com . Una solución interesante está dedicada a un género de death metal más dinámico. Sus creadores DadaBots transmiten en YouTube una
transmisión continua de música generada por una red neuronal . Al mismo tiempo, los DadaBots no se detienen allí y abren al público
música artificial al estilo del punk y el rock progresivo . Y, por supuesto, uno no puede ignorar los resultados de OpenAI, que ofrece a todos los que quieran experimentar con la música en un amplio marco de género, desde Mozart hasta The Beatles. En
openai.com puedes escuchar cómo se vería el desarrollo del tema de Harry Potter al estilo de Frank Sinatra o Pyotr Ilyich Tchaikovsky.
El éxito de las redes neuronales modernas en la generación de música da la esperanza de que en el futuro cercano, la inteligencia artificial podrá competir en igualdad de condiciones con los humanos en otra área además de Go y Dota2. Quizás tengamos la suerte de estar a la altura del momento en que un candidato de las redes neuronales puede hablar en Eurovisión y competir con los participantes de cuero por la victoria.
Los trabajos de LANIT Group of Companies se pueden encontrar aquí.