AI-United » Allgemein » Rekurrente Neuronennetze: Typen, das Lehren, Beispiele und der Anwendungen

Rekurrente Neuronennetze: Typen, das Lehren, Beispiele und der Anwendungen

Rekurrente (rückgekoppelte) neuronale Netze (Recurrent Neural Networks, RNNs) stellen populäre Modelle dar, die in der linguistischen Datenverarbeitung (NLP) eingesetzt werden. Sie bewerten Sätze. Diese Bewertungen hängen davon ab, wie oft sie in Texten auftreten. Dies ist die Maßeinheit der grammatischen und semantischen Richtigkeit. Solche Modelle werden im maschinellen Übersetzen angewandt. Die Sprachmodelle generieren den neuen Text.

Was sind rekurrente Neuronennetze?

Die Idee von RNN liegt in der folgerichtigen Verwendung der Information. In den traditionellen Neuronennetzen sind alle Inputs und Outputs unabhängig, was für viele Aufgaben nicht geeignet ist. Wenn man das nächste Wort im Satz vorhersagen will, sollte man vorangehende Wörter berücksichtigen. RNN erfüllen dieselbe Aufgabe für jedes Element der Reihenfolge. Der Output hängt von den vorherigen Berechnungen ab. Diese Netzwerke haben das Gedächtnis, das die vorhergehende Information berücksichtigt. Theoretisch können RNN die Information in den beliebig langen Reihenfolgen anwenden, doch im echten Leben sind sie durch einige Schritte beschränkt.

Das rückgekoppelte Neuronennetz und seine Entfaltung (unfolding)

Auf dem Diagramm sieht man, dass sich RNN ins volle Netzwerk entfaltet. Zum Beispiel, falls die Reihenfolge einen Satz aus 5 Wörtern darstellt, besteht die Entfaltung aus 5 Schichten (je eine Schichte für jedes Wort). Die Formeln der Berechnungen bei RNN sind wie folgt:

  • x_t — der Input auf dem zeitlichen Schritt t. Zum Beispiel, x_1 kann ein one-hot Vektor sein, der dem zweiten Wort des Satzes entspricht.
  • s_t — ist der latente Zustand auf dem Schritt t. Das ist das Gedächtnis des Netzwerks. s_t hängt von vorigen Zuständen und dem aktuellen Input x_t ab: s_t=f(Ux_t+Ws_{t-1}). Die Funktion f ist in der Regel nicht linear, zum Beispiel tanh oder ReLU. s_{-1}, das zur Berechnung des latenten Zustands benötigt wird, wird mit dem Nullvektor initialisiert.
  • o_t — der Output auf dem Schritt t. Zum Beispiel, wenn man das Wort im Satz vorhersagen will, kann der Output ein Vektor von Wahrscheinlichkeiten im Wörterbuch sein. o_t = softmax(Vs_t)

Einige Aufzeichnungen:

  • Man kann s_t als das Gedächtnis des Netzwerks interpretieren. s_t enthält die Information darüber, was auf vorherigen Schritten passierte. Der Output o_t wird aufgrund des Gedächtnisses s_t berechnet;
  • Im Unterschied zum traditionellen tiefen Neuronennetz, das verschiedene Parameter auf jeder Schichte verwendet, weist RNN gleiche (U, V, W) auf allen Stadien auf. Das liegt daran, dass man dieselbe Aufgabe auf jedem Schritt erfüllt, wobei nur verschiedene Inputs verwendet werden;
  • Das Diagramm hat Outputs auf jedem Schritt. Abhängig von der Aufgabe können sie unnötig sein. Zum Beispiel sollte man sich bei der Erkennung des Gefühlswerts nur um das Endresultat sorgen. Die Besonderheit von RNN liegt im latenten Zustand, der die Information über die Reihenfolge enthält.

Wo werden rekurrente Neuronennetze eingesetzt?

Rekurrente Neuronennetze sind sehr erfolgreichbei der Lösung von vielen Aufgaben von NLP. LSTM ist der am häufigsten verwendete Typ von RNN, der langfristige Abhängigkeiten besser aufbewahrt. Im Grunde genommen ist LSTM das gleiche wie RNN. Sie weisen eine andere Rechnungsart des latenten Zustands auf. Dies sind einige Beispiele von Applikationen von RNN bei NLP.

Die Sprachmodellierung und das Generieren von Texten

Mit Rücksicht auf die Reihenfolge von Wörtern will man die Wahrscheinlichkeit jedes Wortes (im Wörterbuch) vorhersagen. Sprachmodelle lassen die Wahrscheinlichkeit der Auswahl messen, was einen wichtigen Beitrag zur maschinellen Übersetzung geleistet hat (weil die Sätze mit großer Wahrscheinlichkeit richtig sind). Das Generieren von neuen Texten durch die Auswahl aus den Output-Wahrscheinlichkeiten ist der Nebeneffekt dieser Möglichkeit. In der Sprachmodellierung stellt der Input in der Regel die Reihenfolge von Wörtern, und der Output — die Reihenfolge von vorhergesagten Wörtern dar. Beim Lehren des Neuronennetzes liefert man zum Input der nächsten Schichte den vorigen Output o_t=x_{t+1}. Das Resultat auf dem Schritt t soll das nächste Wort darstellen.

Die maschinelle Übersetzung

Die maschinelle Übersetzung ist der Sprachmodellierung ähnlich, weil der Vektor von Eingabeparametern die Reihenfolge von Wörtern auf der Quellsprache (zum Beispiel, auf Deutsch) darstellt. Man möchte die Reihenfolge von Wörtern auf der Zielsprache (zum Beispiel, auf Englisch) erhalten. Der Unterschied liegt darin, dass man diese Reihenfolge erhält, nachdem man alle Eingabeparameter sieht. Das erste Wort des übersetzten Satzes kann die Information der ganzen Reihenfolge von eingegebenen Wörtern verlangen.

RNN für die maschinelle Übersetzung

Die Spracherkennung

Mit Hilfe der Eingangsfolge von akustischen Signalen der Schallwelle kann man die Reihenfolge von phonetischen Segmenten mit ihren Wahrscheinlichkeiten vorhersagen.

Das Generieren von Bildbeschreibungen

RNN wurden mit den faltenden neuronalen Netzwerken als ein Teil des Modells zum Generieren von unmarkierten Bildbeschreibungen verwendet. Dabei funktionieren sie sehr gut. Das kombinierte Modell vereinigt die generierten Wörter mit den Merkmalen, die auf den Bildern gefunden wurden.

Tiefe visuell-semantische Überlappungen zum Generieren von Bildbeschreibungen.

Das Lehren von RNN

Das Lehren von RNN ist analog zum Lehren des klassischen Neuronennetzes. Man verwendet den Algorithmus der Fehlerrückführung (backpropagation), der ein wenig verändert wird. Da gleiche Parameter auf allen Stadien angewendet werden, hängt der Gradient auf jedem Output von Berechnungen des aktuellen Schritts und den vorherigen zeitlichen Schritten ab. Zum Beispiel, um den Gradient bei t = 4 zu berechnen, soll man den Fehler um 3 Schritte zurückführen und die Gradienten addieren. Das ist der Algorithmus der Fehlerrückführung durch die Zeit (Backpropagation Through Time, BPTT). Die rekurrenten Neuronennetze, die mit BPTT gelehrt wurden, haben Schwierigkeiten mit dem Lernen von langfristigen Abhängigkeiten (zum Beispiel, die Abhängigkeit zwischen den Schritten, die sich weit voneinander befinden). Um diese Probleme zu lösen wurden spezielle Architekturen von RNN (zum Beispiel LSTM) entwickelt.

Die Modifizierungen von RNN

Jahrelang haben die Forscher die komplizierteren Typen von RNN entwickelt, um die Probleme des klassischen Modells zu lösen. Das ist das Resümee von Modellen.

Die Idee von bilateralen rekurrenten Neuronennetzen (Bidirectional RNNs) ist, dass der Output zum Zeitpunkt t nicht nur von den vorigen, sondern auch von den kommenden Elementen abhängt. Die bilateralen rekurrenten Neuronennetze sind ganz einfach. Das sind zwei RNN, die aufeinander liegen. Der Output wird aufgrund des latenten Zustands von beiden RNN berechnet.

Tiefe rekurrente Neuronennetze sind den bilateralen RNN ähnlich. Aber es gibt mehrere Stufen für jeden Schritt der Zeit. Sie weisen ein höheres Potenzial auf, wobei viele Daten zum Lehren benötigt werden.

Heutzutage sind die LSTM Netzwerke sehr populär. Die Architektur von LSTM unterscheidet sich von RNN nicht. Sie verwenden andere Funktion zur Berechnung des latenten Zustands. Das Gedächtnis von LSTM hat die Form einer Zelle. Die Zellen sind den Flugdatenschreibern ähnlich. Sie erhalten den vorigen Zustand h_ {t-1} und den aktuellen Eingabeparameter x_t als Eingabedaten. Diese Zellen beschließen, welches Gedächtnis aufbewahrt oder gelöscht wird. Sie kombinieren den vorigen Zustand, das aktuelle Gedächtnis und den Eingabeparameter. Diese Typen von Netzwerken sind beim Aufbewahren von langfristigen Abhängigkeiten sehr effektiv.

Quelle
AI-United-Redaktion

Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.