logo

Was ist LSTM – Long Short Term Memory?

LSTM zeichnet sich durch Sequenzvorhersageaufgaben aus und erfasst langfristige Abhängigkeiten. Aufgrund der Reihenfolgeabhängigkeit ideal für Zeitreihen, maschinelle Übersetzung und Spracherkennung. Der Artikel bietet eine ausführliche Einführung in LSTM und behandelt das LSTM-Modell, die Architektur, die Arbeitsprinzipien und die entscheidende Rolle, die sie in verschiedenen Anwendungen spielen.

Was ist LSTM?

Langes Kurzzeitgedächtnis ist eine verbesserte Version des von Hochreiter & Schmidhuber entwickelten rekurrenten neuronalen Netzwerks.



Ein traditionelles RNN hat einen einzelnen verborgenen Zustand, der über die Zeit hinweg weitergegeben wird, was es für das Netzwerk schwierig machen kann, langfristige Abhängigkeiten zu lernen. LSTMs-Modell Beheben Sie dieses Problem durch die Einführung einer Speicherzelle, bei der es sich um einen Behälter handelt, der Informationen über einen längeren Zeitraum speichern kann.

LSTM-Architekturen sind in der Lage, langfristige Abhängigkeiten in sequentiellen Daten zu lernen, wodurch sie sich gut für Aufgaben wie z Sprachübersetzung , Spracherkennung und Zeitreihenvorhersage .

LSTMs können auch in Kombination mit anderen neuronalen Netzwerkarchitekturen verwendet werden, wie z Faltungs-Neuronale Netze (CNNs) zur Bild- und Videoanalyse.



LSTM-Architektur

Die LSTM-Architekturen umfassen die Speicherzelle, die von drei Gattern gesteuert wird: dem Eingangsgatter, dem Vergessensgatter und dem Ausgangsgatter. Diese Gatter entscheiden, welche Informationen zur Speicherzelle hinzugefügt, aus ihr entfernt und aus ihr ausgegeben werden.

  • Das Eingangsgatter steuert, welche Informationen der Speicherzelle hinzugefügt werden.
  • Das Vergessenstor steuert, welche Informationen aus der Speicherzelle entfernt werden.
  • Das Ausgangsgatter steuert, welche Informationen von der Speicherzelle ausgegeben werden.

Dadurch können LSTM-Netzwerke Informationen während ihres Flusses durch das Netzwerk selektiv behalten oder verwerfen, wodurch sie langfristige Abhängigkeiten lernen können.

Java-Tutorials

Das LSTM behält einen verborgenen Zustand bei, der als Kurzzeitgedächtnis des Netzwerks fungiert. Der verborgene Zustand wird basierend auf der Eingabe, dem vorherigen verborgenen Zustand und dem aktuellen Zustand der Speicherzelle aktualisiert.



Bidirektionales LSTM-Modell

Bidirektionales LSTM (Bi LSTM/ BLSTM) ist ein rekurrentes neuronales Netzwerk (RNN), das in der Lage ist, sequentielle Daten sowohl in Vorwärts- als auch in Rückwärtsrichtung zu verarbeiten. Dadurch kann Bi LSTM längerfristige Abhängigkeiten in sequentiellen Daten lernen als herkömmliche LSTMs, die sequentielle Daten nur in eine Richtung verarbeiten können.

  • Bi-LSTMs bestehen aus zwei LSTM-Netzwerken, eines, das die Eingabesequenz in Vorwärtsrichtung verarbeitet, und eines, das die Eingabesequenz in Rückwärtsrichtung verarbeitet.
  • Die Ausgaben der beiden LSTM-Netzwerke werden dann kombiniert, um die endgültige Ausgabe zu erzeugen.

LSTM-Modelle, einschließlich Bi-LSTMs, haben bei verschiedenen Aufgaben wie maschineller Übersetzung, Spracherkennung und Textzusammenfassung eine hochmoderne Leistung gezeigt.

Netzwerke in LSTM-Architekturen können gestapelt werden, um tiefe Architekturen zu erstellen, was das Erlernen noch komplexerer Muster und Hierarchien in sequentiellen Daten ermöglicht. Jede LSTM-Schicht in einer gestapelten Konfiguration erfasst unterschiedliche Abstraktionsebenen und zeitliche Abhängigkeiten innerhalb der Eingabedaten.

LSTM funktioniert

Die LSTM-Architektur hat eine Kettenstruktur, die vier neuronale Netze und verschiedene sogenannte Speicherblöcke enthält Zellen .

Informationen werden von den Zellen gespeichert und die Speichermanipulationen werden von den Zellen durchgeführt Tore. Es gibt drei Tore –

Vergiss das Tor

Die Informationen, die im Zellzustand nicht mehr nützlich sind, werden mit dem Vergessenstor entfernt. Zwei Eingänge X T (Eingabe zum jeweiligen Zeitpunkt) und H t-1 (vorherige Zellausgabe) werden dem Gate zugeführt und mit Gewichtsmatrizen multipliziert, gefolgt von der Hinzufügung einer Vorspannung. Das Ergebnis wird durch eine Aktivierungsfunktion geleitet, die eine binäre Ausgabe liefert. Wenn für einen bestimmten Zellzustand die Ausgabe 0 ist, wird die Information vergessen und für Ausgabe 1 werden die Informationen für die zukünftige Verwendung aufbewahrt. Die Gleichung für das Vergessenstor lautet:

f_t = σ(W_f · [h_{t-1}, x_t] + b_f)
Wo:

  • W_f stellt die Gewichtsmatrix dar, die dem Vergessenstor zugeordnet ist.
  • [h_t-1, x_t] bezeichnet die Verkettung der aktuellen Eingabe und des vorherigen verborgenen Zustands.
  • b_f ist die Voreingenommenheit mit dem Vergessenstor.
  • σ ist die Sigmoid-Aktivierungsfunktion.

Architektur von LSTM

Eingangstor

Das Hinzufügen nützlicher Informationen zum Zellzustand erfolgt durch das Eingangsgatter. Zunächst werden die Informationen mithilfe der Sigmoidfunktion reguliert und die zu merkenden Werte ähnlich wie beim Forget-Gate mithilfe von Eingaben gefiltert H t-1 Und X T .. Dann wird ein Vektor erstellt mit fischig Funktion, die eine Ausgabe von -1 bis +1 liefert, die alle möglichen Werte von h enthältt-1Und X T . Abschließend werden die Werte des Vektors und die regulierten Werte multipliziert, um die nützliche Information zu erhalten. Die Gleichung für das Eingangstor lautet:

i_t = σ(W_i · [h_{t-1}, x_t] + b_i)

Ĉ_t = tanh(W_c · [h_{t-1}, x_t] + b_c)

Wir multiplizieren den vorherigen Zustand mit fT, ohne Rücksicht auf die Informationen, die wir zuvor ignoriert hatten. Als nächstes schließen wir i einT∗CT. Dies stellt die aktualisierten Kandidatenwerte dar, angepasst an den Betrag, den wir zum Aktualisieren jedes Statuswerts ausgewählt haben.

C_t = f_t ⊙ C_{t-1} + i_t ⊙ Ĉ_t

Wo

switch-Anweisung Java
  • ⊙ bezeichnet die elementweise Multiplikation
  • tanh ist die Tanh-Aktivierungsfunktion

Ausgangstor

Die Aufgabe, nützliche Informationen aus dem aktuellen Zellzustand zu extrahieren, um sie als Ausgabe darzustellen, wird vom Ausgangsgatter übernommen. Zunächst wird ein Vektor generiert, indem die Tanh-Funktion auf die Zelle angewendet wird. Anschließend werden die Informationen mithilfe der Sigmoidfunktion reguliert und nach den zu merkenden Werten mithilfe von Eingaben gefiltert h_{t-1} Undx_t. Zuletzt werden die Werte des Vektors und die regulierten Werte multipliziert, um sie als Ausgabe und Eingabe an die nächste Zelle zu senden. Die Gleichung für das Ausgangsgatter lautet:

o_t = σ(W_o · [h_{t-1}, x_t] + b_o)

Anwendungen von LSTM

Zu den bekanntesten Anwendungen von LSTM gehören:

  • Sprachmodellierung: LSTMs wurden für Aufgaben der Verarbeitung natürlicher Sprache wie Sprachmodellierung, maschinelle Übersetzung und Textzusammenfassung verwendet. Sie können trainiert werden, kohärente und grammatikalisch korrekte Sätze zu bilden, indem sie die Abhängigkeiten zwischen Wörtern in einem Satz lernen.
  • Spracherkennung: LSTMs wurden für Spracherkennungsaufgaben wie das Transkribieren von Sprache in Text und das Erkennen gesprochener Befehle verwendet. Sie können darauf trainiert werden, Muster in der Sprache zu erkennen und sie dem entsprechenden Text zuzuordnen.
  • Zeitreihenprognose: LSTMs wurden für Zeitreihenprognoseaufgaben wie die Vorhersage von Aktienkursen, Wetter und Energieverbrauch verwendet. Sie können Muster in Zeitreihendaten lernen und diese nutzen, um Vorhersagen über zukünftige Ereignisse zu treffen.
  • Anomalieerkennung: LSTMs wurden für Anomalieerkennungsaufgaben wie die Erkennung von Betrug und Netzwerkeinbrüchen verwendet. Sie können darin geschult werden, Muster in Daten zu erkennen, die von der Norm abweichen, und diese als potenzielle Anomalien zu kennzeichnen.
  • Empfehlungssysteme: LSTMs wurden für Empfehlungsaufgaben wie die Empfehlung von Filmen, Musik und Büchern verwendet. Sie können Muster im Nutzerverhalten lernen und daraus personalisierte Empfehlungen abgeben.
  • Videoanalyse: LSTMs wurden für Videoanalyseaufgaben wie Objekterkennung, Aktivitätserkennung und Aktionsklassifizierung verwendet. Sie können in Kombination mit anderen neuronalen Netzwerkarchitekturen wie Convolutional Neural Networks (CNNs) verwendet werden, um Videodaten zu analysieren und nützliche Informationen zu extrahieren.

LTSM vs. RNN

Besonderheit

LSTM (Langes Kurzzeitgedächtnis)

RNN (Recurrent Neural Network)

Erinnerung

Verfügt über eine spezielle Speichereinheit, die es ihm ermöglicht, langfristige Abhängigkeiten in sequentiellen Daten zu lernen

Verfügt über keine Speichereinheit

Direktionalität

Kann trainiert werden, sequentielle Daten sowohl in Vorwärts- als auch in Rückwärtsrichtung zu verarbeiten

Kann nur darauf trainiert werden, sequentielle Daten in eine Richtung zu verarbeiten

Ausbildung

Aufgrund der Komplexität der Gatter und der Speichereinheit schwieriger zu trainieren als RNN

Einfacher zu trainieren als LSTM

Langfristiges Abhängigkeitslernen

Ja

Begrenzt

Fähigkeit, sequentielle Daten zu lernen

Ja

Ja

Anwendungen

Maschinelle Übersetzung, Spracherkennung, Textzusammenfassung, Verarbeitung natürlicher Sprache, Zeitreihenvorhersage

Verarbeitung natürlicher Sprache, maschinelle Übersetzung, Spracherkennung, Bildverarbeitung, Videoverarbeitung

Problem mit langfristigen Abhängigkeiten in RNN

Wiederkehrende neuronale Netze (RNNs) sind darauf ausgelegt, sequentielle Daten zu verarbeiten, indem sie einen verborgenen Zustand aufrechterhalten, der Informationen aus früheren Zeitschritten erfasst. Allerdings stehen sie oft vor der Herausforderung, langfristige Abhängigkeiten zu lernen, bei denen Informationen aus entfernten Zeitschritten entscheidend für genaue Vorhersagen sind. Dieses Problem ist als Problem des verschwindenden Gradienten oder des explodierenden Gradienten bekannt.

Nachfolgend sind einige häufige Probleme aufgeführt:

Melden Sie Ihr Google-Konto auf Android ab

Verschwindender Farbverlauf

Während der zeitlichen Rückausbreitung können Gradienten extrem klein werden, da sie durch die Kette wiederkehrender Verbindungen multipliziert werden, was dazu führt, dass das Modell Schwierigkeiten hat, Abhängigkeiten zu lernen, die durch viele Zeitschritte voneinander getrennt sind.

Explodierender Farbverlauf

Umgekehrt können Gradienten während der Backpropagation explodieren, was zu numerischer Instabilität führt und die Konvergenz des Modells erschwert.

Verschiedene Varianten des langen Kurzzeitgedächtnisses

Im Laufe der Zeit wurden mehrere Varianten und Verbesserungen der ursprünglichen LSTM-Architektur vorgeschlagen.

Vanille LSTM

Dies ist die ursprüngliche LSTM-Architektur, die von Hochreiter und Schmidhuber vorgeschlagen wurde. Es enthält Speicherzellen mit Eingabe-, Vergessens- und Ausgabe-Gattern zur Steuerung des Informationsflusses. Die Schlüsselidee besteht darin, dem Netzwerk zu ermöglichen, Informationen aus der Speicherzelle selektiv zu aktualisieren und zu vergessen.

Gucklochverbindungen

Im Guckloch-LSTM können die Tore zusätzlich zum verborgenen Zustand auch den Zellzustand betrachten. Dies ermöglicht es den Gates, bei Entscheidungen den Zellzustand zu berücksichtigen und so mehr Kontextinformationen bereitzustellen.

Gated Recurrent Unit (GRU)

GRU ist eine Alternative zu LSTM, die einfacher und rechnerisch effizienter ist. Es kombiniert die Input- und Forget-Gates in einem einzigen Update-Gate und führt den Zellenzustand und den verborgenen Zustand zusammen. Obwohl GRUs über weniger Parameter als LSTMs verfügen, haben sie in der Praxis nachweislich eine ähnliche Leistung erbracht.

Abschluss

Long Short-Term Memory (LSTM) ist ein leistungsstarker Typ eines wiederkehrenden neuronalen Netzwerks (RNN), das sich gut für den Umgang mit sequentiellen Daten mit langfristigen Abhängigkeiten eignet. Es behebt das Problem des verschwindenden Gradienten, eine häufige Einschränkung von RNNs, indem es einen Gating-Mechanismus einführt, der den Informationsfluss durch das Netzwerk steuert. Dadurch können LSTMs Informationen aus der Vergangenheit lernen und behalten, was sie für Aufgaben wie maschinelle Übersetzung, Spracherkennung und Verarbeitung natürlicher Sprache effektiv macht.

Überprüfen Sie auch:

Häufig gestellte Fragen (FAQs)

1. Was ist LSTM und warum wird es verwendet?

LSTM (Long Short-Term Memory) ist eine Art wiederkehrendes neuronales Netzwerk, das für Sequenzaufgaben entwickelt wurde und sich durch die Erfassung und Nutzung langfristiger Abhängigkeiten in Daten auszeichnet.

2. Wie funktioniert LSTM?

LSTMs verwenden einen Zellstatus, um Informationen über vergangene Eingaben zu speichern. Dieser Zellzustand wird bei jedem Schritt des Netzwerks aktualisiert und das Netzwerk verwendet ihn, um Vorhersagen über die aktuelle Eingabe zu treffen. Der Zellzustand wird mithilfe einer Reihe von Toren aktualisiert, die steuern, wie viele Informationen in die Zelle hinein und aus ihr heraus fließen dürfen.

3. Was sind LSTM-Beispiele?

Beispiele für LSTM (Long Short-Term Memory) sind Spracherkennung, maschinelle Übersetzung und Zeitreihenvorhersage, wobei die Fähigkeit genutzt wird, langfristige Abhängigkeiten in sequentiellen Daten zu erfassen.

4. Was ist der Unterschied zwischen LSTM und Gated Recurrent Unit (GRU)?

LSTM verfügt über einen Zellenstatus- und Gating-Mechanismus, der den Informationsfluss steuert, während GRU über einen einfacheren Single-Gate-Update-Mechanismus verfügt. LSTM ist leistungsfähiger, aber langsamer zu trainieren, während GRU einfacher und schneller ist.

5. Was ist der Unterschied zwischen LSTM und RNN?

  • RNNs haben eine einfache wiederkehrende Struktur mit unidirektionalem Informationsfluss.
  • LSTMs verfügen über einen Gating-Mechanismus, der den Informationsfluss und einen Zellzustand für das Langzeitgedächtnis steuert.
  • LSTMs Im Allgemeinen übertreffen sie RNNs bei Aufgaben, die das Erlernen langfristiger Abhängigkeiten erfordern.

6. Ist LSTM schneller als CNN?

Nein, LSTMs und CNNs dienen unterschiedlichen Zwecken. LSTMs sind für sequentielle Daten; CNNs sind für räumliche Daten gedacht.

7. Ist LSTM schneller als GRU?

Im Allgemeinen ja. GRUs haben weniger Parameter, was im Vergleich zu LSTMs zu einem schnelleren Training führen kann.