LSTM (Long Short-Term Memory)
Eine erweiterte RNN-Architektur mit speziellen Gate-Mechanismen, die Langzeitabhängigkeiten in Sequenzen besser erfassen kann als einfache RNNs.
Eine neuronale Netzwerk-Architektur mit internem Gedächtnis, die sequenzielle Daten wie Text oder Zeitreihen verarbeiten kann – weitgehend durch Transformer ersetzt.
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.
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.
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.
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.
Verarbeitet Sequenzen Schritt für Schritt und behält einen internen Zustand (Gedächtnis)
Historisch wichtig für NLP und Zeitreihen, heute weitgehend durch Transformer ersetzt
Leidet unter dem Vanishing Gradient Problem bei langen Sequenzen
Zeitreihenanalyse
Vorhersage von Aktienkursen, Wetter oder Energieverbrauch
Spracherkennung
Historisch für Speech-to-Text genutzt (heute meist Transformer)
Musikgenerierung
Generierung von Melodien und Harmonien als Sequenzen
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.
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.
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 sollten Sie auch moderne Alternativen wie Transformer in Betracht ziehen, die oft bessere Ergebnisse liefern.
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.