Recurrent Neural Network (RNN)

Eine neuronale Netzwerk-Architektur mit internem Gedächtnis, die sequenzielle Daten wie Text oder Zeitreihen verarbeiten kann – weitgehend durch Transformer ersetzt.

Fortgeschritten2 Min Lesezeit

Erklärung starten

Auf einen Blick

3 Punkte

  1. Verarbeitet Sequenzen Schritt für Schritt und behält einen internen Zustand (Gedächtnis)
  2. Historisch wichtig für NLP und Zeitreihen, heute weitgehend durch Transformer ersetzt
  3. Leidet unter dem Vanishing Gradient Problem bei langen Sequenzen

Sofortantwort

RNN einfach erklärt

Neuronales Netzwerk mit Gedächtnis für sequenzielle Datenverarbeitung.

Kurz gesagt
Verarbeitet Sequenzen Schritt für Schritt und behält einen internen Zustand (Gedächtnis)
Typischer Einsatz
Zeitreihenanalyse, Spracherkennung, Musikgenerierung
Wichtig zu wissen
Leidet unter dem Vanishing Gradient Problem bei langen Sequenzen

Recurrent Neural Network im Überblick

Ein RNN ist ein neuronales Netz mit Gedächtnis. Es verarbeitet Daten Schritt für Schritt und gibt dabei Informationen von einem Schritt zum nächsten weiter.

Das Prinzip:

Eingabe: "Die" → "Katze" → "sitzt" → "auf" → "dem" → "Dach"
                ↓          ↓         ↓        ↓        ↓
Zustand:  h₁    →    h₂    →   h₃   →  h₄   →  h₅   → h₆

Jeder Zustand h enthält Informationen über alle bisherigen Eingaben.

Warum wurden RNNs durch Transformer ersetzt? RNNs verarbeiten Sequenzen sequenziell (langsam) und haben Probleme mit langen Abhängigkeiten (Vanishing Gradient). Transformer sind parallel und erfassen Langzeitabhängigkeiten besser.

Technisch betrachtet

Architektur

h_t = tanh(W_hh · h_{t-1} + W_xh · x_t + b)
y_t = W_hy · h_t + b_y

Der Hidden State h_t wird bei jedem Zeitschritt aktualisiert und enthält das “Gedächtnis” des Netzes.

Das Vanishing Gradient Problem

Bei langen Sequenzen werden Gradienten bei der Backpropagation durch die Zeit (BPTT) exponentiell kleiner. Das Netz kann keine Langzeitabhängigkeiten lernen. Lösungen: LSTM, GRU oder Transformer.

Varianten

  • Bidirektional: Verarbeitet Sequenz vorwärts und rückwärts
  • Deep RNN: Mehrere RNN-Schichten gestapelt
  • Encoder-Decoder: Für Sequence-to-Sequence-Aufgaben (Übersetzung)

01Einsatzbereiche

Wann ist RNN sinnvoll?

Geeignet für

  • ZeitreihenanalyseVorhersage von Aktienkursen, Wetter oder Energieverbrauch
  • SpracherkennungHistorisch für Speech-to-Text genutzt (heute meist Transformer)
  • MusikgenerierungGenerierung von Melodien und Harmonien als Sequenzen

↑ Inhalt

02Werkzeuge

Womit RNN umgesetzt wird

↑ Inhalt

Merksatz

Ein RNN ist wie ein Leser, der sich beim Lesen eines Satzes an die vorherigen Wörter erinnert

jedes neue Wort wird im Kontext der bisherigen Wörter verstanden.

  1. Verarbeitet Sequenzen Schritt für Schritt und behält einen internen Zustand (Gedächtnis)
  2. Historisch wichtig für NLP und Zeitreihen, heute weitgehend durch Transformer ersetzt
  3. Leidet unter dem Vanishing Gradient Problem bei langen Sequenzen

04Redaktion

Herkunft und Stand

Redaktion und Aktualität

Ebenex RedaktionRedaktion

Veröffentlicht
Aktualisiert

Dieses Feld entwickelt sich schnell. Oben stehen Veröffentlichung und letzte Änderung; ein Prüfdatum kommt dazu, sobald die Erklärung nach ihrer letzten Änderung geprüft wurde.

↑ Inhalt

05FAQ

Häufige Fragen zu RNN

Warum wurden RNNs durch Transformer ersetzt?

RNNs verarbeiten Sequenzen Schritt für Schritt (sequenziell), was langsam ist und das Training auf GPUs schlecht parallelisierbar macht. Transformer verarbeiten alle Positionen parallel und erfassen Langzeitabhängigkeiten besser.

Werden RNNs noch irgendwo eingesetzt?

Ja, in Nischenanwendungen mit sehr langen Sequenzen und begrenzten Ressourcen, in Echtzeit-Systemen und in einigen Zeitreihen-Aufgaben. Neue Architekturen wie Mamba kombinieren RNN-Effizienz mit Transformer-Qualität.

Wann sollte ich RNNs anstelle von anderen Modellen verwenden?

RNNs sind besonders nützlich, wenn es um sequenzielle Daten geht, wie z.B. Zeitreihen oder Text. Sie sind ideal für Aufgaben wie Sprachverarbeitung oder Vorhersagen, bei denen der Kontext der vorherigen Datenpunkte wichtig ist. Allerdings solltest du auch moderne Alternativen wie Transformer in Betracht ziehen, die oft bessere Ergebnisse liefern.

Wie kann ich die Leistung meines RNNs verbessern?

Die Leistung eines RNNs kann durch Techniken wie Dropout, Batch-Normalisierung und die Verwendung von LSTM- oder GRU-Zellen verbessert werden. Außerdem ist es wichtig, die Hyperparameter sorgfältig zu optimieren und ausreichend Trainingsdaten bereitzustellen, um Overfitting zu vermeiden und die Generalisierungsfähigkeit zu erhöhen.

↑ Inhalt

06Weiterlernen

Was möchtest du als Nächstes verstehen?

  • Grundlage nachholen

    Long Short-Term Memory

    Eine RNN-Architektur, die Langzeitabhängigkeiten besser erfasst.

  • Technisch vertiefen

    Transformer

    Neuronale Netzwerk-Architektur, die moderne Sprachmodelle unterstützt.

↑ Inhalt