Musik machen: Wenn einfache Lösungen das tiefe Lernen übertreffen

Ich präsentiere Ihnen die Übersetzung des Artikels „Wir schaffen Musik: Wenn einfache Lösungen das tiefe Lernen in der Effektivität übertreffen“ darüber, wie künstliche Intelligenz zum Erstellen von Musik verwendet wird. Der Autor verwendet keine neuronalen Netze, um Musik zu erzeugen, sondern nähert sich der Aufgabe auf der Grundlage der Kenntnis der Musiktheorie auf der Grundlage von Melodie und Harmonie. Ein weiteres Merkmal des Artikels ist die Methode zum Vergleichen von Musikwerken auf der Basis von Selbstähnlichkeitsmatrizen. Dieser Ansatz ist natürlich nicht erschöpfend, aber er ist als Zwischenschritt zum Erzeugen hochwertiger Musik unter Verwendung maschineller Lernmethoden nützlich.


Der Einsatz künstlicher Intelligenz in der Kreativität ist heutzutage für Unterhaltungs- und kommerzielle Zwecke immer häufiger geworden und hat die Öffentlichkeit bereits nicht mehr in Erstaunen versetzt. Einerseits sind dies Werkzeuge, um den Stil eines Bildes wie Prizma zu ändern. Auf der anderen Seite ein neuronales Netzwerk, dessen Produkt bei Christies Auktion für 432,5 Tausend Dollar als Bild verkauft wurde. Wir können uns nur an unseren inländischen Spezialisten für die Erzeugung von Musik durch maschinelles Lernen erinnern, Ivan Yamshchikov, der vor einigen Jahren das Projekt Neural Defense eingeführt hat (weitere Details finden Sie hier , und dies ist ein Interview mit Ivan über Habré ). Ein weiteres gutes Beispiel für die Verwendung neuronaler Netze zur Erzeugung von Musik ist der Artikel „Träumen Androiden von elektrischem Punk?“. Wie ich dem neuronalen Netzwerk das Schreiben von Musik beigebracht habe “von Artezio .

Neben dem Verständnis der Theorie des maschinellen Lernens erfordert der Einsatz künstlicher Intelligenz zur Lösung kreativer Probleme auch Fachkenntnisse auf dem Gebiet der Kunst. Dies macht das Projekt an der Schnittstelle der beiden Bereiche besonders vielfältig und interessant, aber auch anfällig für Kritik von zwei Seiten, da das Projekt in das Kreuzfeuer von Kommentaren von Kunstkritikern und Datenwissenschaftlern geraten kann.

Ich erweiterte meinen Horizont als Teil des Themas der Verwendung künstlicher Intelligenz in der Musik und stieß auf einen Artikel „Wir schaffen Musik: Wenn einfache Lösungen das Tiefenlernen in der Effizienz übertreffen“ , dessen Übersetzung ich der Habr-Community vorstellen möchte. Einer der Vorteile dieses Artikels war für mich, dass der Autor neuronale Netze nicht als Black Box verwendet, sondern sich der Aufgabe nähert, Musik auf der Grundlage musiktheoretischer Kenntnisse, basierend auf Melodie und Harmonie, zu erzeugen. In diesem Artikel werden weder wiederkehrende neuronale Netze (RNN, LSTM) noch generative kontradiktorische Netze (GANs) verwendet. Alle diese Methoden liefern erstaunliche Ergebnisse (z. B. im Artikel „Träumen Androiden von elektrischer Pank? Wie ich dem neuronalen Netz das Schreiben von Musik beigebracht habe“). ) und wir nutzen sie aktiv bei der Lösung unserer Probleme bei CleverData . Der Autor betonte Modelle, die auf Markov-Ketten basieren und es ermöglichen, mit den Wahrscheinlichkeiten des Übergangs vom aktuellen Zustand eines Musikwerks zum nächsten zu arbeiten. Die vom Autor verwendeten Methoden haben einen zusätzlichen Vorteil: Der Autor musste die Interpretierbarkeit des Ergebnisses nicht opfern, um einen modischen und beliebten Algorithmus zu verwenden.

Ein weiteres Merkmal des Artikels, das meine Aufmerksamkeit auf sich zog, war eine interessante Methode zum Vergleichen von Musikwerken, die auf Selbstähnlichkeitsmatrizen basieren. Wenn die Struktur eines Songs als Matrix der Selbstähnlichkeit dargestellt werden kann, erscheint ein weiteres quantitatives Maß für den Vergleich von Songs.


* * *


Zusammenfassung : Wie ich auf ein Problem gestoßen bin, indem ich tiefes Lernen verwendet habe, um Musik zu erstellen, und wie ich es gelöst habe, indem ich meine eigene Lösung gefunden habe.

Planen


Herausforderung : Wie ich auf Probleme stieß, wenn ich Deep-Learning-Techniken verwendete, um Popmusik zu erstellen.
Lösung : Wie ich meine eigene Musikmaschine geschaffen habe, die mit tiefem Lernen konkurrieren kann, aber auf einfacheren Lösungen basiert.
Evaluation : Wie ich eine Evaluierungsmetrik erstellt habe, die mathematisch beweisen kann, dass meine Musik „eher wie Pop“ ist als die, die durch tiefes Lernen erstellt wurde.
Verallgemeinerung : Wie ich einen Weg gefunden habe, meine Lösung auf Probleme anzuwenden, die nicht mit dem Musizieren zusammenhängen.


Kirsche auf dem Kuchen


Ich habe ein einfaches Wahrscheinlichkeitsmodell erstellt, das Popmusik erzeugt. Anhand objektiver Metriken kann ich mit Sicherheit sagen, dass die von meinem Modell erstellte Musik eher Popmusik ähnelt als die, die mit Deep-Learning-Techniken erstellt wurde. Wie habe ich das gemacht? Zum Teil habe ich dies erreicht, indem ich mich auf das Wesentliche der Popmusik konzentriert habe: auf die statistische Beziehung zwischen Harmonie und Melodie.

Eine Melodie ist eine Stimme, ein Motiv. Harmonie ist Akkorde, eine Folge von Akkorden. Auf dem Klavier wird die Melodie mit der rechten Hand und die Harmonie mit der linken Hand gespielt.

Herausforderung


Bevor ich mich mit ihrer Beziehung befasse, möchte ich zunächst das Problem skizzieren. Das Projekt begann mit meinem Wunsch, Musik durch tiefes Lernen zu schaffen - KI, wie es Laien nennen. Sehr schnell kam ich zu LSTM (Long Short Term Memory), einer der Versionen des wiederkehrenden neuronalen Netzwerks (RNN), das beim Generieren von Texten und Musizieren sehr beliebt ist.

Aber je mehr ich das Thema las, desto mehr begann ich an der Logik der Verwendung von RNN und ihren Variationen zur Erstellung von Popmusik zu zweifeln. Diese Logik schien auf mehreren Annahmen über die interne Struktur der (Pop-) Musik zu beruhen, denen ich nicht vollständig zustimmen konnte.

Eine spezifische Annahme ist eine unabhängige Beziehung zwischen Harmonie und Melodie (für eine Definition der beiden siehe oben).

Betrachten Sie zum Beispiel die Veröffentlichung Song from Pi: Ein musikalisch plausibles Netzwerk für die Erzeugung von Popmusik (Han Chu et al.) Der Universität von Toronto 2017. In diesem Artikel schlagen die Autoren eindeutig vor, "dass die Akkorde nicht von der Melodie abhängen " (meine kursiv). Basierend auf dieser Annahme konstruierten die Autoren ein komplexes mehrschichtiges RNN-Modell. Für die Melodie wird eine separate Ebene ausgewählt, in der Noten erstellt werden (Tastenebene, Druckebene), unabhängig von der Akkordebene (Akkordebene). Neben der Unabhängigkeit geht dieses Modell davon aus, dass Harmonie auf Melodie basiert. Mit anderen Worten, die Harmonie hängt von der Melodie ab, wenn Noten erzeugt werden.

Von Han Chu vorgeschlagenes RNN-Modell. Jede Ebene ist für einen eigenen Aspekt der Musik verantwortlich.

Diese Art des Modellierens erscheint mir sehr seltsam, weil sie sich völlig von der Art und Weise unterscheidet, wie Menschen Popmusik schreiben. Als Pianist einer klassischen Schule habe ich nie daran gedacht, eine Melodie zu komponieren, ohne vorher auf Harmonie hinzuweisen. Harmonie definiert und schneidet eine Melodie. Axis of Awesome hat in seinem einst viralen Video lange die Richtigkeit dieser Idee bewiesen.


Dieses Video zeigt das Hauptmerkmal der westlichen Popmusik: Diese Harmonie, diese vier Akkorde beeinflussen stark die Melodie am Ende. In der Sprache von Data Science steuert und bestimmt die bedingte Wahrscheinlichkeit die statistische Beziehung zwischen Harmonie und Melodie. Dies geschieht, weil die Noten der Melodie natürlich von den Noten der Harmonie abhängen. Es kann daher argumentiert werden, dass Harmonie-Noten von Natur aus angeben, welche melodischen Noten in einem bestimmten Song ausgewählt werden können.

Lösung


Ich mag es, originelle Lösungen für komplexe Probleme zu finden. Aus diesem Grund habe ich beschlossen, ein eigenes Modell zu bauen, das auf seine Weise die reichhaltige Struktur der Musikdaten widerspiegeln kann. Ich begann damit, mich auf eine vorbestimmte probabilistische Kraft zu konzentrieren, die die Beziehung zwischen verschiedenen Arten von Noten regelt. Zum Beispiel habe ich oben die „vertikale“ Beziehung zwischen Harmonie und Melodie erwähnt.

(Verarbeitungs-) Daten


Als Daten habe ich 20 verschiedene Western-Pop-Songs im Midi-Format verwendet (eine vollständige Liste der Songs finden Sie hier ).

Mit der Python-Bibliothek music21 habe ich die Midi-Dateien mithilfe der Markov-Kette analysiert. Dadurch konnte ich die statistischen Beziehungen zwischen den verschiedenen Arten von Notizen in meiner Eingabe hervorheben. Insbesondere habe ich die Übergangswahrscheinlichkeiten meiner Noten berechnet. Im Wesentlichen bedeutet dies, dass wir durch Beobachtung des Übergangs von Noten von einer zur anderen die Wahrscheinlichkeit berechnen können, dass dieser Übergang auftreten wird. (Detaillierte Erklärung unten)

Midi: digitale Version des Songs

Zuerst habe ich die „vertikalen“ Wahrscheinlichkeiten des Übergangs zwischen Noten der Harmonie und Noten der Melodie extrahiert. Ich habe auch alle „horizontalen“ Übergangswahrscheinlichkeiten zwischen den Noten der Melodie gemäß dem Datensatz berechnet. Ich habe dieses Verfahren für Noten der Harmonie durchgeführt. Die folgende Tabelle zeigt ein Beispiel für drei verschiedene Übergangsmatrizen zwischen verschiedenen Arten von Noten in Musikdaten.

Übergangsoptionen, Optionen. Oben - zwischen den Noten von Harmonie und Melodie. Mitte - zwischen den Noten der Melodie. Niedriger - zwischen den Noten der Harmonie.

Modell


Basierend auf diesen drei Wahrscheinlichkeitsmodellen wird mein Modell wie folgt funktionieren:

  1. Wählt eine beliebige Harmonie-Note aus;
  2. Wählt eine Melodienote basierend auf einer Harmoniernote unter Verwendung der ersten Wahrscheinlichkeitsmatrix aus.
  3. Wählt die Melodienote basierend auf der vorherigen Melodienote gemäß der zweiten Wahrscheinlichkeitsmatrix aus.
  4. Wiederholt Schritt 3, bis ein bestimmtes Ende erreicht ist.
  5. Wählt unter Verwendung der dritten Wahrscheinlichkeitsmatrix eine neue Harmonie-Note aus, die sich auf die vorherige Harmonie-Note stützt.
  6. Wiederholt die Schritte 1 bis 4, bis der Vorgang abgeschlossen ist.



Ein konkretes Beispiel für die Anwendung des Algorithmus:

  1. Das Programm wählte eine harmonische Note (F).
  2. Diese Note enthält 4 Variationen von Melodienoten. Unter Verwendung der ersten Übergangsmatrix wählt das System die Note (C) aufgrund der hohen Wahrscheinlichkeit ihrer Verwendung (24,5%) aus.
  3. Diese Note (C) geht zur zweiten Übergangsmatrix und stoppt die Auswahl der Melodienote (A) basierend auf ihrer Frequenz (88%).
  4. Schritt 3 wird wiederholt, bis der Prozess einen vordefinierten Endpunkt erreicht.
  5. Eine Note der Harmonie (F), die sich auf die dritte Wahrscheinlichkeitsmatrix bezieht, wählt die nächste harmonische Note aus. Aufgrund ihrer Ähnlichkeit wird es entweder (F) oder (C) sein.
  6. Die Schritte 1 bis 4 werden wiederholt, bis der Vorgang abgeschlossen ist.

Hier können Sie sich ein Beispiel für Popmusik anhören, die auf diese Weise erstellt wurde:



Bewertung


Hier beginnt der schwierige Teil - wie man verschiedene Modelle bewertet. Am Ende schlägt mein Artikel vor, dass einfache Wahrscheinlichkeiten nützlicher sein können als neuronale Netze. Aber wie bewerten wir den Unterschied zwischen meinem Modell und dem von einem neuronalen Netzwerk erstellten Modell? Wie können wir objektiv sagen, dass meine Musik eher Pop als Musik ist, die von AI geschrieben wurde?

Um diese Frage zu beantworten, müssen wir zuerst feststellen, was Popmusik ist. Ich habe bereits meine erste Definition geäußert: die statistische Beziehung zwischen Harmonie und Melodie. Aber es gibt noch einen anderen bestimmenden Faktor in der Popmusik - sie ist deutlich als Anfang, Mitte, Ende des Songs (Intro, Couplet, Bridge, Chorus, Vervollständigung usw.) gekennzeichnet und wird im gesamten Song wiederholt.

Zum Beispiel ist die Zeile "Lass es los, lass es los, kann es nicht mehr zurückhalten ..." eher im mittleren Teil als am Ende oder am Anfang zu finden. Und es wird dreimal während des Songs wiederholt.

In diesem Sinne können wir auf die sogenannte Selbstähnlichkeitsmatrix zurückgreifen. Einfach ausgedrückt, drückt die Selbstähnlichkeitsmatrix mathematisch den Anfang, die Mitte und das Ende eines Songs aus. Unten ist die Matrix für das Lied Falling Slowly aus dem Film Once.


Jedes kleine Segment repräsentiert eine Note. Jeder große Block bei 45 Grad repräsentiert einen Teil des Songs.

Der erste dunkle Cluster repräsentiert den Anfang des Songs, der nächste gelbe repräsentiert das nächste Segment des Songs. Der erste und der dritte Cluster haben eine ähnliche Farbe, da sie einander ähnlich sind, ebenso wie der zweite und der vierte.

Ich habe auf diese Weise zwanzig Popsongs überprüft und dann eine Maschinenkopie (soweit möglich) ihrer Strukturen erstellt.

Ergebnisse


Die Ergebnisse sprechen für sich. Bevor ich die Selbstähnlichkeitsmatrix verwendete, erzeugte mein Programm Klänge ohne sich wiederholende interne Struktur. Nachdem ich jedoch die Struktur der Quelldaten kopiert hatte, sah meine Musik folgendermaßen aus:

Vor und nach dem Anwenden der Selbstähnlichkeitsmatrix

Vergleichen Sie mit der Selbstähnlichkeitsmatrix von Musik, die von einem neuronalen Netzwerk an der Universität von Toronto erstellt wurde:


So können verschiedene Modelle verglichen und bewertet werden - basierend auf ihren Selbstähnlichkeitsmatrizen!


Verallgemeinerung


Der letzte Teil der Aufgabe, die ich mir gestellt habe, war eine Verallgemeinerung. Mit diesem Wort meine ich: Wie können wir mein Modell basierend auf Eingabedaten universell machen, damit es auf andere Situationen angewendet werden kann, die nicht mit der Erzeugung von Popmusik zusammenhängen? Mit anderen Worten, gibt es noch etwas, das meinem Popgenerator strukturell ähnlich ist?

Nach langem Überlegen wurde mir klar, dass es eine andere Erfindung der Menschheit gibt, die in ihrer Struktur ähnlich ist - die Texte von Popsongs!

Hier ist zum Beispiel ein Auszug aus Ich werde Edward McCain sein:

Ich werde deine weinende Schulter sein
Ich werde Selbstmord lieben
Ich werde besser sein, wenn ich älter bin
Ich werde der größte Fan deines Lebens sein

Wir werden die Knochen mit denselben Techniken des maschinellen Lernens analysieren. Wir können "Ich werde sein" als erstes Quellwort im Sprachmodell zählen. Es wird verwendet, um "Ihr" zu erzeugen, aus dem "Weinen" hervorgeht, von wo aus "Schulter" bereits erscheint.


Dann stellt sich eine sehr wichtige Frage: Hängt das erste Wort des nächsten Satzes vom letzten Wort des vorherigen ab? Mit anderen Worten, gibt es eine Beziehung zwischen dem letzten Wort eines Satzes und dem ersten des nächsten?

Ich glaube die Antwort ist nein. Der Satz endet mit 'Schulter', der nächste beginnt mit der Wiederholung des ersten - 'Ich werde sein'. Dies liegt an der Tatsache, dass die ersten Wörter jedes Satzes absichtlich wiederholt werden, was bedeutet, dass zwischen den ersten Wörtern jedes Satzes eine ähnliche bedingte Beziehung besteht. Diese ersten Wörter werden zum Triggerpunkt für die Folge der folgenden Wörter.



Ich denke, das ist eine erstaunliche Entdeckung. Es scheint, dass sowohl Popmusik als auch Texte eine interne Struktur haben, die vom Inhalt abhängt. Wirklich toll?

Sehen Sie sich das Projekt auf Github an

* * *


Natürlich kann der im Artikel vorgeschlagene Ansatz nicht als erschöpfend angesehen werden. Unabhängig davon ist anzumerken, dass sich die Methoden zur Arbeit mit Texten derzeit im Aufschwung befinden und sich aktiv weiterentwickeln, sodass der Blick des Autors auf die Texte die NLP-Spezialisten (Natural Language Processing) nicht überraschen wird. Trotzdem scheint der Originalartikel des Autors ein nützlicher Zwischenschritt für die Erzeugung hochwertiger Musik mit maschinellen Lernmethoden zu sein.

In letzter Zeit wurde der Öffentlichkeit eine Reihe von Anwendungen angeboten, die auf Musik erzeugenden neuronalen Netzen basieren. Zum Beispiel ist es möglich, Technomusik auf der Site zu generieren: ewig-fluss.ru . Der Autor der Lösung bietet auch eine mobile Anwendung zum Generieren von Musik an. Es gibt eine andere Anwendung zum Generieren von Musik auf Mobilgeräten: mubert.com . Eine interessante Lösung ist einem dynamischeren Death Metal-Genre gewidmet. Die Entwickler von DadaBots streamen auf YouTube einen kontinuierlichen Musikstrom, der von einem neuronalen Netzwerk generiert wird . Gleichzeitig hören DadaBots hier nicht auf und öffnen sich der öffentlichen künstlichen Musik im Stil von Punk und Progressive Rock . Und natürlich kann man die Ergebnisse von OpenAI nicht ignorieren, das jedem bietet, der mit Musik in einem breiten Genre-Framework von Mozart bis The Beatles experimentieren möchte. Auf openai.com können Sie hören, wie die Entwicklung des Harry-Potter-Themas im Stil von Frank Sinatra oder Pjotr ​​Iljitsch Tschaikowski aussehen würde.

Der Erfolg moderner neuronaler Netze bei der Erzeugung von Musik lässt hoffen, dass künstliche Intelligenz in naher Zukunft in einem anderen Bereich als Go und Dota2 gleichberechtigt mit Menschen konkurrieren kann. Vielleicht haben wir das Glück, dem Moment gerecht zu werden, in dem ein Kandidat aus neuronalen Netzen bei Eurovision sprechen und mit Lederteilnehmern um den Sieg konkurrieren kann.

Jobs der LANIT Group of Companies finden Sie hier.

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


All Articles