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

Your email address will not be published. Required fields are marked *

300-101   400-101   300-320   300-070   300-206   200-310   300-135   300-208   810-403   400-050   640-916   642-997   300-209   400-201   200-355   352-001   642-999   350-080   MB2-712   400-051   C2150-606   1Z0-434   1Z0-146   C2090-919   C9560-655   642-64   100-101   CQE   CSSLP   200-125   210-060   210-065   210-260   220-801   220-802   220-901   220-902   2V0-620   2V0-621   2V0-621D   300-075   300-115   AWS-SYSOPS   640-692   640-911   1Z0-144   1z0-434   1Z0-803   1Z0-804   000-089   000-105   70-246   70-270   70-346   70-347   70-410