Vorteile des Stapelns von LSTMs?

Antworten:

6

Ab Was sind die Vorteile des Stapelns mehrerer LSTMs? (Ich werde nur die Antwort dort aktualisieren):

Von {1}:

Obwohl theoretisch nicht klar ist, welche zusätzliche Leistung die tiefere Architektur bringt, wurde empirisch beobachtet, dass tiefe RNNs bei einigen Aufgaben besser funktionieren als flachere. Insbesondere berichteten Sutskever et al. (2014), dass eine 4-Schichten-Tiefenarchitektur entscheidend für die Erzielung einer guten maschinellen Übersetzungsleistung in einem Encoder-Decoder-Framework war. Irsoy und Cardie (2014) berichten auch über verbesserte Ergebnisse beim Übergang von einem einschichtigen BI-RNN zu einer Architektur mit mehreren Schichten. Viele andere Arbeiten berichten über Ergebnisse, die RNN-Architekturen mit Ebenen verwenden, die jedoch nicht explizit mit RNNs mit einer Ebene verglichen werden.


Verweise:

Franck Dernoncourt
quelle
3

Eine Situation, in der es vorteilhaft ist, LSTMs zu stapeln, besteht darin, die hierarchische Darstellung unserer Zeitreihendaten zu lernen. In gestapelten LSTMs gibt jede LSTM-Schicht eine Folge von Vektoren aus, die als Eingabe für eine nachfolgende LSTM-Schicht verwendet werden. Diese Hierarchie von verborgenen Ebenen ermöglicht eine komplexere Darstellung unserer Zeitreihendaten und die Erfassung von Informationen in verschiedenen Maßstäben.

Beispielsweise können gestapelte LSTMs verwendet werden, um die Genauigkeit bei der Zeitreihenklassifizierung zu verbessern, z. B. bei der Aktivitätsvorhersage, bei der Herzfrequenz, Schrittzahl, GPS und andere Signale zur Vorhersage von Aktivitäten wie Gehen, Laufen, Radfahren verwendet werden können. Treppensteigen oder Ausruhen. Ein Beispiel für die Klassifizierung von Zeitreihen mit gestapelten LSTMs mithilfe von EEG-Daten finden Sie im folgenden ipython-Notizbuch .

Vadim Smolyakov
quelle
0

In Sequenz zu Sequenzmodell: Die Aufgabe des Encoder-Netzwerks besteht darin, die Eingangssequenz in unser Seq2Seq-Modell einzulesen und einen festdimensionalen Kontextvektor C für die Sequenz zu generieren. Zu diesem Zweck verwendet der Codierer eine wiederkehrende neuronale Netzwerkzelle - normalerweise ein LSTM -, um die Eingabetoken nacheinander zu lesen. Der endgültige verborgene Zustand der Zelle wird dann zu C. Da es jedoch so schwierig ist, eine Sequenz beliebiger Länge in einen einzigen Vektor fester Größe zu komprimieren (insbesondere für schwierige Aufgaben wie die Übersetzung), besteht der Codierer normalerweise aus gestapelten LSTMs : Eine Reihe von LSTM- "Layern", bei denen die Ausgänge jedes Layers die Eingangssequenz zum nächsten Layer sind. Der verborgene LSTM-Status der letzten Ebene wird als Kontextvektor verwendet.

Umer Rana
quelle