Was sind die Vorteile des Stapelns mehrerer LSTMs?

25

Was sind die Vorteile, warum sollte man mehrere nebeneinander gestapelte LSTMs in einem tiefen Netzwerk verwenden? Ich verwende einen LSTM, um eine Folge von Eingaben als eine einzige Eingabe darzustellen. Also, wenn ich diese einzige Darstellung habe - warum sollte ich sie noch einmal durchgehen?

Ich frage dies, weil ich dies in einem Programm zur Erzeugung natürlicher Sprachen gesehen habe.

wordSmith
quelle
1
Meinten Sie wirklich nebeneinander gestapelte LSTMs wie horizontal (in Zeitschritten) oder vertikal gestapelt (mehrere LSTM-Zellen für jeden Zeitschritt)?
Wabbit

Antworten:

18

Ich denke, dass Sie sich auf vertikal gestapelte LSTM-Schichten beziehen (vorausgesetzt, die horizontalen Achsen sind die Zeitachse).

In diesem Fall besteht der Hauptgrund für das Stapeln von LSTM darin, eine größere Modellkomplexität zu ermöglichen. Im Falle eines einfachen Feedforward-Netzes stapeln wir Schichten, um eine hierarchische Merkmalsdarstellung der Eingabedaten zu erstellen, die dann für einige maschinelle Lernaufgaben verwendet werden. Gleiches gilt für gestapelte LSTMs.

Zu jedem Zeitschritt ein LSTM, neben der wiederkehrenden Eingabe. Wenn die Eingabe bereits das Ergebnis einer LSTM-Schicht (oder einer Feedforward-Schicht) ist, kann die aktuelle LSTM eine komplexere Feature-Darstellung der aktuellen Eingabe erstellen.

Der Unterschied zwischen einer Vorwärtskopplungsschicht zwischen der Merkmalseingabe und der LSTM-Schicht und einer anderen LSTM-Schicht besteht darin, dass eine Vorwärtskopplungsschicht (z. B. eine vollständig verbundene Schicht) keine Rückmeldung von ihrem vorherigen Zeitschritt erhält und daher nicht sicher berücksichtigt werden kann Muster. Anstelle eines LSTM (z. B. unter Verwendung einer gestapelten LSTM-Darstellung) können komplexere Eingabemuster auf jeder Schicht beschrieben werden

Sjoerd
quelle
4
LSTM-Zellen innerhalb einer Schicht sind bereits vollständig und wiederholt miteinander verbunden (die Ausgänge einer Schicht haben Verbindungen zu allen Eingängen derselben Schicht). Daher können einzelne Zellen Features bereits über den Ausgängen anderer Zellen kombinieren, und zwar alle innerhalb einer Ebene. Könnten Sie bitte erläutern, warum mehrere Ebenen zu komplexeren Mustern führen?
Danijar
6

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.

Zu Ihrer Information:


Verweise:

Franck Dernoncourt
quelle
2

Das Herumspielen mit LSTM für die Sequenzklassifizierung hatte den gleichen Effekt wie das Erhöhen der Modellkapazität in CNNs (wenn Sie mit diesen vertraut sind). Sie erhalten also auf jeden Fall Gewinne, insbesondere wenn Sie Ihre Daten nicht ausreichen.

Natürlich zweischneidig, da man auch überanstrengen und schlechter abschneiden kann. In meinem Fall bin ich von 1 LSTM auf einen Stapel von 2 übergegangen und habe so ziemlich sofort eine Verbesserung erzielt.

InKodeWeTrust
quelle