Faire de la musique: quand des solutions simples surpassent le deep learning

Je vous présente la traduction de l'article «Nous créons de la musique: quand des solutions simples surpassent l'apprentissage profond en efficacité» sur la façon dont l'intelligence artificielle est utilisée pour créer de la musique. L'auteur n'utilise pas de réseaux de neurones pour générer de la musique, mais aborde la tâche basée sur la connaissance de la théorie de la musique, sur la base de la mélodie et de l'harmonie. Une autre caractéristique de l'article est la méthode de comparaison des œuvres musicales basée sur des matrices d'autosimilarité. Cette approche, bien sûr, n'est pas exhaustive, mais elle est utile comme étape intermédiaire pour générer de la musique de haute qualité en utilisant des méthodes d'apprentissage automatique.


L'utilisation de l'intelligence artificielle dans la créativité est devenue de plus en plus courante à des fins de divertissement et commerciales et a déjà cessé d'étonner le public. D'une part, ce sont des outils pour changer le style d'une image comme Prizma. D'autre part, un réseau de neurones, dont le produit a été vendu en tant qu'image aux enchères de Christie pour 432,5 milliers de dollars. Nous ne pouvons que rappeler notre spécialiste national de la génération de musique utilisant l'apprentissage automatique, Ivan Yamshchikov, qui a présenté le projet Neural Defense il y a plusieurs années (plus de détails peuvent être trouvés ici , et ceci est une interview d'Ivan sur Khabr ). Un autre bon exemple d'utilisation de réseaux de neurones pour générer de la musique est l'article "Les androïdes rêvent-ils de punk électrique?" Comment j'ai appris au réseau neuronal à écrire de la musique »par Artezio .

En plus de comprendre la théorie de l'apprentissage automatique, l'utilisation de l'intelligence artificielle pour résoudre des problèmes créatifs nécessite également une expertise dans le domaine de l'art. Cela rend le projet à la jonction des deux domaines particulièrement multiforme et intéressant, mais aussi vulnérable aux critiques des deux côtés, car le projet peut être pris entre deux feux des commentaires des critiques d'art et des scientifiques des données.

Élargissant mes horizons dans le cadre du thème de l'utilisation de l'intelligence artificielle en musique, je suis tombé sur un article «Nous créons de la musique: quand des solutions simples surpassent l'apprentissage profond en efficacité» , une traduction dont je voudrais présenter à la communauté Habr. L'un des avantages de cet article pour moi était que l'auteur n'utilise pas les réseaux de neurones comme une boîte noire, mais aborde la tâche de générer de la musique basée sur la connaissance de la théorie musicale, basée sur la mélodie et l'harmonie. Dans cet article, ni les réseaux de neurones récurrents (RNN, LSTM) ni les réseaux de confrontation générative (GAN) ne sont utilisés - toutes ces méthodes donnent des résultats étonnants (par exemple, dans l'article "Les androïdes rêvent-ils de Pank électrique? Comment j'ai appris au réseau de neurones à écrire de la musique") ), et nous les utilisons activement pour résoudre nos problèmes chez CleverData . L'auteur a mis l'accent sur des modèles basés sur des chaînes de Markov qui permettent de travailler avec les probabilités de transition de l'état actuel d'une œuvre musicale à l'autre. Les méthodes utilisées par l'auteur ont un avantage supplémentaire: l'auteur n'a pas eu à sacrifier l'interprétabilité du résultat pour utiliser un algorithme à la mode et populaire.

Une autre caractéristique de l'article qui a retenu mon attention était une méthode intéressante pour comparer des œuvres musicales basées sur des matrices d'autosimilarité. Si la structure d'une chanson peut être représentée comme une matrice d'autosimilarité, une autre mesure quantitative de comparaison des chansons apparaît.


* * *


Résumé : comment j'ai rencontré un problème, en utilisant l'apprentissage en profondeur pour créer de la musique, et comment je l'ai résolu en proposant ma propre solution.

Plan


Défi : comment j'ai rencontré des problèmes lors de l'utilisation de techniques d'apprentissage approfondi pour créer de la musique pop.
Solution : comment j'ai créé ma propre machine de création musicale qui pourrait rivaliser avec le deep learning, mais basée sur des solutions plus simples.
Évaluation : comment j'ai créé une métrique d'évaluation qui pourrait prouver mathématiquement que ma musique est «plus comme de la pop» que celle créée par l'apprentissage profond.
Généralisation : comment j'ai trouvé un moyen d'appliquer ma solution à des problèmes non liés à la musique.


Cerise sur le gâteau


J'ai créé un modèle probabiliste simple qui génère de la musique pop. De plus, en utilisant des mesures objectives, je peux dire avec confiance que la musique créée par mon modèle ressemble plus à de la musique pop qu'à celle créée à l'aide de techniques d'apprentissage approfondi. Comment ai-je fait ça? En partie, j'ai atteint cet objectif en me concentrant sur l'essence de la musique pop pour moi: la relation statistique entre l'harmonie et la mélodie.

Une mélodie est une voix, un motif. L'harmonie est des accords, une séquence d'accords. Au piano, la mélodie est jouée avec la main droite et l'harmonie est jouée avec la gauche.

Défi


Avant de me plonger dans leur relation, permettez-moi d'abord de décrire le problème. Le projet a commencé avec mon désir d'essayer de créer de la musique par l'apprentissage profond - l'IA, comme les laïcs l'appellent. Assez rapidement, je suis arrivé au LSTM (mémoire à long terme), l'une des versions du réseau neuronal récurrent (RNN), qui est très populaire pour générer des textes et faire de la musique.

Mais plus je lis le sujet, plus je commence à douter de la logique de l'utilisation de RNN et de leurs variations pour créer de la musique pop. Cette logique semblait être basée sur plusieurs hypothèses sur la structure interne de la musique (pop), avec lesquelles je ne pouvais pas être complètement d'accord.

Une hypothèse spécifique est une relation indépendante entre l'harmonie et la mélodie (pour une définition des deux, voir ci-dessus).

Par exemple, considérons la publication 2017 de l'Université de Toronto, Song from Pi: Un réseau musicalement plausible pour la génération de musique pop (Han Chu et al.). Dans cet article, les auteurs "suggèrent clairement ... que les accords ne dépendent pas de la mélodie" (le mien en italique). Sur la base de cette hypothèse, les auteurs ont construit un modèle RNN multicouche complexe. Un calque séparé est sélectionné pour la mélodie, où les notes sont créées (calque clé, calque de presse), indépendamment du calque d'accord (Calque d'accord). Outre l'indépendance, ce modèle particulier suppose que l'harmonie est basée sur la mélodie. En d'autres termes, l'harmonie dépend de la mélodie lors de la génération des notes.

Modèle RNN proposé par Han Chu. Chaque couche est responsable d'un aspect distinct de la musique.

Cette façon de modeler me semble très étrange, car elle est complètement différente de la façon dont les gens abordent l'écriture de la musique pop. En tant que pianiste d'une école classique, je n'ai jamais envisagé de composer une mélodie sans d'abord indiquer l'harmonie. Harmony définit et coupe une mélodie. Axis of Awesome dans sa vidéo autrefois virale a longtemps démontré la véracité de cette idée.


Cette vidéo démontre la caractéristique principale de la musique pop occidentale: cette harmonie, ces quatre accords affectent fortement ce que sera la mélodie au final. Dans le langage de la science des données, la probabilité conditionnelle contrôle et détermine la relation statistique entre l'harmonie et la mélodie. Cela se produit car les notes de la mélodie dépendent naturellement des notes d'harmonie. Ainsi, on peut affirmer que les notes d'harmonie indiquent intrinsèquement quelles notes mélodiques peuvent être sélectionnées dans une chanson particulière.

Solution


J'aime trouver des solutions originales à des problèmes complexes. J'ai donc décidé de construire mon propre modèle, qui pourrait à sa manière refléter la riche structure des données musicales. J'ai commencé par me concentrer sur une force probabiliste prédéterminée qui régit la relation entre différents types de notes musicales. Par exemple, j'ai mentionné ci-dessus la relation «verticale» entre l'harmonie et la mélodie.

(Traitement) des données


Comme données, j'ai utilisé 20 chansons pop occidentales différentes au format midi (une liste complète des chansons peut être trouvée ici ).

En utilisant la bibliothèque python music21, j'ai analysé les fichiers midi en utilisant la chaîne Markov. Cela m'a permis de mettre en évidence les relations statistiques entre les différents types de notes dans mon entrée. En particulier, j'ai calculé les probabilités de transition de mes notes de musique. Essentiellement, cela signifie qu'en observant la transition des notes de l'une à l'autre, nous pouvons calculer la probabilité que cette transition se produise. (Explication plus détaillée ci-dessous)

Midi: version numérique de la chanson

J'ai d'abord extrait les probabilités «verticales» de la transition entre notes d'harmonie et notes de mélodie. J'ai également calculé toutes les probabilités de transition «horizontale» entre les notes de la mélodie en fonction de l'ensemble de données. J'ai effectué cette procédure pour des notes d'harmonie. Le tableau ci-dessous montre un exemple de trois matrices de transition différentes entre différents types de notes dans les données musicales.

Options de transition, options. Upper - entre les notes d'harmonie et de mélodie. Milieu - entre les notes de la mélodie. Inférieur - entre les notes d'harmonie.

Modèle


Sur la base de ces trois modèles de probabilité, mon modèle agira comme suit:

  1. Sélectionne une note d'harmonie arbitraire disponible;
  2. Sélectionne une note de mélodie basée sur une note d'harmonie en utilisant la première matrice probabiliste;
  3. Sélectionne la note de mélodie sur la base de la note de mélodie précédente, selon la deuxième matrice de probabilité;
  4. Répète l'étape 3 jusqu'à ce qu'elle atteigne une certaine fin;
  5. Sélectionne une nouvelle note d'harmonie, en s'appuyant sur la note d'harmonie précédente, en utilisant la troisième matrice de probabilité;
  6. Répète les étapes 1 à 4 jusqu'à ce qu'il soit terminé.



Un exemple spécifique de l'application de l'algorithme:

  1. Le programme a sélectionné une note harmonique (F).
  2. Cette note a 4 variations de notes mélodiques. En utilisant la première matrice de transition, le système sélectionne la note (C), compte tenu de la forte probabilité de son utilisation (24,5%).
  3. Cette note (C) va à la deuxième matrice de transition, arrêtant la sélection sur la note de mélodie (A), en fonction de sa fréquence (88%).
  4. L'étape 3 sera répétée jusqu'à ce que le processus atteigne un point final prédéfini;
  5. Une note d'harmonie (F), se référant à la troisième matrice probabiliste, sélectionne la note harmonique suivante. Ce sera soit (F) soit (C), étant donné leur similitude.
  6. Les étapes 1 à 4 seront répétées jusqu'à la fin du processus.

Ici, vous pouvez écouter un exemple de musique pop créée de cette manière:



Évaluation


C'est là que la partie difficile commence - comment évaluer différents modèles. Au final, mon article suggère que les probabilités simples peuvent être plus utiles que les réseaux de neurones. Mais comment évaluer la différence entre mon modèle et le modèle construit par un réseau neuronal? Comment pouvons-nous objectivement dire que ma musique ressemble plus à de la pop qu'à de la musique écrite par l'IA?

Pour répondre à cette question, il faut d'abord déterminer ce qu'est la musique pop. J'ai déjà exprimé ma première définition: la relation statistique entre l'harmonie et la mélodie. Mais il y a un autre facteur déterminant dans la musique pop - il est clairement marqué le début, le milieu, la fin de la chanson (intro, couplet, bridge, chorus, achèvement, etc.), répété tout au long de la chanson.

Par exemple, la ligne "Lâchez prise, lâchez prise, ne peut plus la retenir ..." est plus susceptible d'être trouvée dans la partie centrale qu'à la fin ou au début. Et il sera répété trois fois pendant la chanson.

Dans cette optique, nous pouvons recourir à la matrice dite d'autosimilarité. Autrement dit, la matrice d'autosimilarité exprime mathématiquement le début, le milieu et la fin d'une chanson. Vous trouverez ci-dessous la matrice de la chanson Falling Slowly du film Once.


Chaque petit segment représente une note. Chaque gros bloc à 45 degrés représente une partie de la chanson.

Le premier groupe sombre représente le début de la chanson, le jaune suivant représente le segment suivant de la chanson. Les premier et troisième groupes sont de couleur similaire, car ils sont similaires les uns aux autres, ainsi que les deuxième et quatrième.

J'ai vérifié vingt chansons pop de cette façon, puis créé une copie machine (autant que possible) de leurs structures.

Résultats


Les résultats parlent d'eux-mêmes. Avant d'utiliser la matrice d'autosimilarité, mon programme produisait des sons sans structure interne répétitive. Cependant, après avoir copié la structure des données source, ma musique a commencé à ressembler à ceci:

Avant et après l'application de la matrice d'autosimilarité

Comparez avec la matrice d'auto-similitude de la musique créée par un réseau de neurones à l'Université de Toronto:


C'est ainsi que différents modèles peuvent être comparés et évalués - en fonction de leurs matrices d'autosimilarité!


Généralisation


La dernière partie de la tâche que je me suis fixée était une généralisation. Par ce mot, je veux dire: comment pouvons-nous rendre mon modèle universel, basé sur des données d'entrée, afin qu'il puisse être appliqué à d'autres situations non liées à la génération de musique pop? En d'autres termes, y a-t-il autre chose structurellement similaire à mon générateur de pop?

Après mûre réflexion, j'ai réalisé qu'il y avait une autre invention de l'humanité, de structure similaire - les paroles de chansons pop!

Par exemple, voici un extrait de Je serai Edward McCain:

Je serai ton épaule qui pleure
Je serai amour suicide
Je serai meilleur quand je serai plus vieux
Je serai le plus grand fan de ta vie

Nous analyserons les os en utilisant les mêmes techniques d'apprentissage automatique. Nous pouvons compter «je serai» comme premier mot source dans le modèle de langage. Il sera utilisé pour générer «votre», d'où sort «pleurer», d'où «épaule» apparaît déjà.


Une question très importante se pose alors: le premier mot de la phrase suivante dépend-il du dernier mot de la précédente? En d'autres termes, existe-t-il une relation entre le dernier mot d'une phrase et le premier de la suivante?

Je crois que la réponse est non. La phrase se termine par «épaule», la suivante commence par la répétition de la première - «je serai». Cela est dû au fait que les premiers mots de chaque phrase sont répétés intentionnellement, ce qui signifie qu'entre les premiers mots de chaque phrase, il existe une relation conditionnelle similaire. Ces premiers mots deviennent le point de déclenchement de la séquence des mots suivants.



Je pense que c'est une découverte incroyable. Il semble que la musique pop et les paroles aient une structure interne qui dépend du contenu. Vraiment super?

Regardez le projet sur github

* * *


Bien entendu, l'approche proposée dans l'article ne peut être considérée comme exhaustive. Par ailleurs, il convient de noter que les méthodes de travail avec les textes connaissent actuellement une reprise et se développent activement, de sorte que le regard de l'auteur sur les paroles ne surprendra pas les spécialistes de la PNL (Natural Language Processing). Néanmoins, l'article original de l'auteur ressemble à une étape intermédiaire utile pour générer de la musique de haute qualité à l'aide de méthodes d'apprentissage automatique.

Récemment, un certain nombre d'applications basées sur des réseaux de neurones générant de la musique ont été proposées au grand public. Par exemple, il est possible de générer de la musique techno sur le site: eternal-flow.ru . L'auteur de la solution propose également une application mobile pour générer de la musique. Il existe une autre application pour générer de la musique sur des appareils mobiles: mubert.com . Une solution intéressante est consacrée à un genre de death metal plus dynamique. Ses créateurs DadaBots diffusent sur YouTube un flux continu de musique généré par un réseau de neurones . Dans le même temps, les DadaBots ne s'arrêtent pas là et s'ouvrent au public de la musique artificielle dans le style du punk et du rock progressif . Et bien sûr, on ne peut ignorer les résultats d'OpenAI, qui offre à tous ceux qui veulent expérimenter avec de la musique dans un large cadre de genre de Mozart aux Beatles. Sur openai.com, vous pouvez écouter à quoi ressemblerait le développement du thème Harry Potter dans le style de Frank Sinatra ou Pyotr Ilyich Tchaikovsky.

Le succès des réseaux neuronaux modernes dans la génération de la musique donne l'espoir que dans un proche avenir l'intelligence artificielle sera en mesure de rivaliser sur un pied d'égalité avec les humains dans un autre domaine que Go et Dota2. Peut-être avons-nous la chance d'être à la hauteur d'un moment où un candidat des réseaux de neurones peut prendre la parole à l'Eurovision et rivaliser avec les participants en cuir pour la victoire.

Les offres d'emploi du groupe d'entreprises LANIT sont disponibles ici.

Source: https://habr.com/ru/post/fr455742/


All Articles