[PYTHON] Generierung von Zeitreihen durch wiederkehrende neuronale Netze (Magenta-Übersetzung, bei der künstliche Intelligenz Kunst und Musik macht)

Einführung

Dieser Artikel ist die Dokumentation für das Magenta-Projekt von Google. Eine Übersetzung von "Generieren von Sequenzen mit wiederkehrenden neuronalen Netzen" (David Ha). Dieses Dokument ist eine Rezension von Ein gleichnamiges Papier von Alex Graves. Dies ist ein Ergebnis, das unter Apache License, Version 2.0 vertrieben wird.

Google Brain hat Magenta gestartet, ein Projekt zur Erzeugung von Kunst und Musik durch tiefes Lernen. Eines der Ziele von Magenta ist es, die Forschung des Projekts vorzustellen und Übersichtsartikel für mehrere Artikel zu veröffentlichen.

Das wiederkehrende neuronale Netzwerk (RNN) ist ein neuronales Netzwerk, das mit Zeitreihendaten kompatibel ist und auch als Kompositionsmodell in Googles Projekt Magenta verwendet wird. .. In diesem Artikel werde ich die Grundidee der Zeitreihengenerierung durch RNN erläutern.

Erzeugung von Zeitreihen durch wiederkehrende neuronale Netze

Generieren von Sequenzen mit wiederkehrenden neuronalen Netzen, geschrieben von Alex Graves im Jahr 2013, war eine der wichtigsten Veröffentlichungen zur Erzeugung von Zeitreihen mit wiederkehrenden neuronalen Netzen. Ich bin. Hier diskutieren wir die Modellierung der Wahrscheinlichkeitsverteilung von Zeitreihendaten. Mit diesem Ansatz erhalten wir, anstatt genau vorherzusagen, was als nächstes passieren wird, eine RNN, die die zukünftige Wahrscheinlichkeitsverteilung aus allen Informationen vorhersagt, die wir aus der Vergangenheit kennen.

Selbst Menschen können leichter vorhersagen, was passieren wird und wie viel es in Zukunft wahrscheinlich passieren wird, als die Zukunft genau vorherzusagen. Dies ist jedoch ein schwieriges Problem für Maschinen, insbesondere für Markov Es ist schwierig für Zeitreihen ohne 83% 95% E6% 80% A7). Eine solche Vorhersage kann als Berechnung der Wahrscheinlichkeitsverteilung definiert werden, die im nächsten Schritt angesichts der gesamten vergangenen Zeitreihen auftreten wird.

  P( Y[n+1]=y[n+1]\ |\ Y[n]=y[n], Y[n-1]=y[n-1], Y[n-2]=y[n-2], \ldots) \ \ \ \ (1)

Eine einfache Methode wie das N-Gramm-Modell gibt die vorherigen N Zeichen an und sagt das nächste Zeichen voraus. Dort werden diejenigen vor dem t-N-Schritt abgeschnitten und angenähert. Wenn dann N groß wird, wird es nicht gut eingestellt.

In diesem Artikel erklärt Graves, wie RNN verwendet wird, um die Wahrscheinlichkeitsverteilungsfunktion (PDF) in Gleichung (1) zu approximieren. Da RNN rekursiv ist, kann es umfangreiche Darstellungen vergangener Ereignisse speichern. In diesem Artikel wird vorgeschlagen, die Zelle LSTM für RNN zu verwenden, um Informationen aus der fernen Vergangenheit aufzuzeichnen. Mit dieser Änderung kann die Wahrscheinlichkeitsverteilungsfunktion für den nächsten Wert in der Zeitreihe als Funktion des verborgenen Zustands des RNN mit dem Wert in der aktuellen Zeitreihe angenähert werden.

  P( Y[n+1]=y[n+1]\ |\ Y[n]=y[n], H[n]=h[n]) \ \ \ \ (2)

Graves beschreibt, wie RNNs trainiert und an viele Zeitreihendatensätze angepasst werden, einschließlich Shakespeares Arbeit, aller Wikipedia-Artikel und einer handschriftlichen Online-Datenbank. In diesem Training wird die Rückausbreitung durch die Zeit (BPTT) verwendet, bei der der Kreuzentropiefehler zwischen den vom RNN generierten Zeitreihen und dem tatsächlichen Datensatz verwendet wird. Darüber hinaus verhindert die Verwendung des Verlaufsausschnitts, dass die Farbverläufe und Gewichte voneinander abweichen.

Nach dem Training passiert etwas Interessantes. Wenn die von RNN erzeugte Wahrscheinlichkeitsverteilung nahe genug an der empirischen Wahrscheinlichkeitsverteilungsfunktion der tatsächlichen Daten liegt, erzeugt RNN eine plausible Zeitreihe, wenn auch eine Nachahmung, indem eine Stichprobe aus dieser Verteilung entnommen wird. Diese Technik ist in den letzten Jahren bekannt geworden. Dies ist politische Ironie (Obama-RNN, [@deepdrumpf](https: // Es wird auch verwendet, um twitter.com/deepdrumpf)) und Asciiart zu generieren.

[Konzeptionelles Diagramm zur Abtastung der Zeitreihen aus RNN](https://camo.githubusercontent.com/0312d4a679bc4bc3ba12152b3cb71071e80980a1/687474703a2f2f626c6f672e6f746f726f2e6276276f376f376f6

Die Dokumentenerstellung war in den letzten Jahren die am weitesten verbreitete Anwendung dieser Technik. Diese Daten sind leicht verfügbar und die Wahrscheinlichkeitsverteilung wird in der Softmax-Schicht modelliert. Andererseits ist der Ansatz der Erzeugung tatsächlicher "Zahlen" -Zeitreihen, einschließlich Schallwellenformen, handgeschriebener Zeichen und Vektorbilder, weniger untersucht.

In diesem Artikel experimentieren wir mit dem Training von RNNs in einer handschriftlichen Online-Zeichendatenbank. Diese Daten sind die tatsächlichen handgeschriebenen Zeichen, die vom Tablet aufgezeichnet wurden, und werden einzeln im Vektorformat ausgedrückt. [Das Beispiel des handgeschriebenen IAM-Zeichendatensatzes sieht folgendermaßen aus. ](Https://camo.githubusercontent.com/0d1c202e1330d9f2a23e4e1e28ffb92db7908549/687474703a2f2f626c6f672e6f746f726f2e6e65742f77702d636f6e74656e742f75706c6f6164732f73697465732d636f6e74656e742f75706c6f6164732f736974657

Diese handgeschriebenen Proben werden vom Tablet als Darstellung einer Sammlung kleiner Vektoren der Koordinatenbewegung aufgezeichnet. Jeder Vektor hat einen vom Vektor getrennten Binärzustand, der angibt, dass der Strich endet (dh der Stift verlässt den Bildschirm). Der nächste Vektor nach einem Strich zeigt die Koordinaten zum Starten eines neuen Strichs.

[Trainingsdaten sehen so aus, indem jeder Vektor mit zufälligen Farben visualisiert wird. ])

[Außerdem kann jeder Strich auch in zufälligen Farben dargestellt werden, was attraktiver aussieht als die Darstellung jedes kleinen Vektors. ].

Es sollte erwähnt werden, dass das Modell für jeden Vektor trainiert, nicht für jeden Strich. (Ein Strich ist eine Sammlung von Vektoren, bis der Stift nach oben geht.)

RNN modelliert die bedingte Wahrscheinlichkeitsverteilung für die nächste Koordinatenbewegung (eine Kombination von reellen Zahlen, die die Größe der Bewegung angeben) und die bedingte Wahrscheinlichkeitsverteilung, für die ein Strich endet (angezeigt durch zwei Werte, dies ist S). Das ist.

  P( X[n+1]=x_{n+1}, Y[n+1]=y[n+1], S[n+1]=s[n+1]\ |\ \\X[n]=x[n], Y[n]=y[n], S[n]=s[n], H[n]=h[n] ) \ \ \ \ (3)

Bei dem in der Arbeit beschriebenen Verfahren wird die bedingte Wahrscheinlichkeitsverteilung von X und Y durch eine gemischte Gaußsche Verteilung approximiert, die die Summe vieler kleiner Gaußscher Verteilungen ist, und S wird durch Bernoullis Zufallsvariable approximiert. Die Technik zur Verwendung neuronaler Netze zur Erzeugung gemischter Verteilungsparameter wurde ursprünglich von Bishop (https://www.researchgate.net/publication/40497979_Mixture_density_networks) für Feedforward-Netze entwickelt. Erweitern Sie diesen Ansatz auf RNN. Bei jedem Schritt transformiert RNN (x [n], y [n], s [n], h [n]) in Parameter für die gemischte Gaußsche Verteilungsfunktion. Dies ändert sich im Laufe der Zeit, wenn x und y neu geschrieben werden. [Stellen Sie sich zum Beispiel vor, RNN betrachtet einige vorherige Punkte (graue Punkte), und RNN sollte die Wahrscheinlichkeitsverteilung für den Ort des nächsten Punkts (im rosa Bereich) vorhersagen. .. ](Https://camo.githubusercontent.com/0c33f16ff35dcaefc97cdae674bcbffff2626665/687474703a2f2f626c6f672e6f746f726f2e6e65742f77702d636f7

Der Stift kann mit dem aktuellen Strich fortfahren oder ihn beenden und nach rechts bewegen, um neue Buchstaben zu schreiben. RNN modelliert diese Unsicherheit. Nach dem Anpassen des Modells an alle IAM-Datenbanken kann [RNN gefälschte handgeschriebene Zeichen wie oben beschrieben abtasten. ](Https://camo.githubusercontent.com/5d9bcc37d297f4cd4adc83721b3592e138cb259d/687474703a2f2f626c6f672e6f746f726f2e6e65742f77702d636f6f376f76

Sie können auch die von RNN während des Stichprobenprozesses ausgegebene Wahrscheinlichkeitsverteilung im Detail untersuchen. , wo, um die Idee der RNN, zusätzlich zu einer Probe von RNN, die Wahrscheinlichkeitsverteilung von Koordinatenbewegung (rote Punkte) und Schlaganfall endet Wahrscheinlichkeit (grau zu verstehen Die Probe (Liniendichte) wird visualisiert.

Das ist sehr mächtig. Und in Zukunft können wir jede Politik untersuchen, indem wir die Art und Weise, wie wir diese Zeitreihen abtasten, erweitern. Zum Beispiel (https://camo.githubusercontent.com/929d47a514b23049c7999deb3972fea97b1afa99/687474703a2f2f626c6f672e6f746f726f2e6e65742f77702d636f6e74656e742f75706c6f6164732f73697465732f322f323031362f30312f72616e646f6d5f7261646963616c732e706e67) ist die Ausbildung für die Chinese Kanji-Daten [RNN, die eine kleine Änderung vorgenommen wurden] Kann [fiktives chinesisches Kanji] erzeugen (http://otoro.net/kanji/).

Der Rest von Graves 'Artikel beschreibt auch verschiedene Möglichkeiten, bedingte Stichproben zu machen. Wenn Sie ein Modell verwenden, das die Informationen eines Zeichens, das Sie schreiben möchten, und die Zeichen davor und danach verwendet, können Sie die subtilen Unterschiede in der Verbindung von Zeichen verstehen.

  P( X[n+1]=x[n+1], Y[n+1]=y[n+1], S[n+1]=s[n+1]\ |\ X[n]=x[n], Y[n]=y[n],\\ S[n]=s[n], C[n+1]=c[n+1], C[n]=c[n], C[n-1]=c[n-1], H[n]=h[n] ) \ \ \ \ (4)

Wie alle Modelle ist das generierte RNN-Modell nicht ohne Einschränkungen. Beispielsweise wäre es schwierig, das generierte RNN-Modell auf komplexeren Datensätzen wie Vektorzeichnungen von Tieren zu trainieren. Dies liegt daran, dass die Natur jedes Bildes komplex und vielfältig ist. Bei der Darstellung eines Tieres muss das Modell beispielsweise Konzepte höherer Ordnung wie Augen, Ohren, Nase, Körper, Beine und Schwanz lernen. Wenn Menschen schreiben und zeichnen, haben sie fast immer Ideen darüber, was sie im Voraus schreiben möchten. Ein Nachteil dieses Modells besteht darin, dass die Zufälligkeit nur in der Ausgabeschicht konzentriert ist und es möglicherweise nicht möglich ist, solche Konzepte auf hoher Ebene zu erfassen und zu generieren.

Eine vielversprechende Erweiterung dieser RNN-Technik besteht darin, die RNN in eine Variations-RNN (VRNN) umzuwandeln, um die bedingte Wahrscheinlichkeitsverteilung zu lernen. Mit dieser neuen Methode können Sie Inhaltstypen und Ausgabestile mit latenten Variablen (https://en.wikipedia.org/wiki/Latent_variable) und Gedankenvektor (http: //: //) verwalten www.iamwire.com/2015/09/google-thought-vectors-inceptionism-artificial-intelligence-artificial-neural-networks-ai-dreams-122293/122293) kann in das Modell eingebettet werden. In Graves 'Artikel ergab die Anwendung von VRNN auf dasselbe handgeschriebene Textexperiment wie zuvor einige zuverlässige Ergebnisse. Die von VRNN generierten handschriftlichen Zeichenbeispiele behalten denselben handgeschriebenen Stil bei, der von einem Stil zum anderen unverändert bleibt.

Zusammenfassend wird in diesem Artikel eine Methodik vorgestellt, mit der RNNs als Generierungsmodelle fungieren können, und die interessante Richtungen in dem Bereich eröffnet, in dem Computer Inhalte generieren.

Recommended Posts

Generierung von Zeitreihen durch wiederkehrende neuronale Netze (Magenta-Übersetzung, bei der künstliche Intelligenz Kunst und Musik macht)
Neuronaler Netzwerkalgorithmus im Malstil (Magenta-Übersetzung, bei der künstliche Intelligenz Kunst und Musik schafft)
Die Geschichte eines neuronalen Netzwerks der Musikgeneration
Untersuchung des wiederkehrenden neuronalen Netzes (RNN) durch Chainer ~ Überprüfung der Genauigkeit von Zufallszahlen in Excel und R ~