Fragen zu LSTM-Zellen, -Einheiten und -Eingaben


9

Ich versuche zu lernen, wie LSTMNetzwerke funktionieren, und selbst wenn ich die Grundlagen verstehe, sind mir die Details der internen Struktur nicht klar.

Auf diesem Blog- Link habe ich dieses Schema einer LSTMArchitektur gefunden

LSTM

Wo anscheinend jeder Kreis einer einzelnen LSTMEinheit wie dieser entsprechen sollte

LSTM

  1. Ist das richtig?

  2. Ist jede Einheit in der Zelle unabhängig von den anderen? Oder teilen sie Informationen?

  3. Stellen Sie sich vor, ich habe die folgende Konfiguration: Anzahl der Proben = 1000 Anzahl der Zeitschritte = 10 Anzahl der Features = 5

In diesem Fall nimmt jede Einheit in einer Zelle einen Vektor der Größe 5 als Eingabe, oder?

Aber wie groß wird der Ausgang für eine Einheit sein? 1?

Vielen Dank


1
Lesen Sie dieses kleine Stück: colah.github.io/posts/2015-08-Understanding-LSTMs Immer und immer wieder, wenn Sie müssen .. Nach 3 Mal versichere ich Ihnen, dass Sie etwas lernen werden.
Eran Moshe

Antworten:


1

Ich denke, Ihr Bild ist falsch beschriftet. Ich denke, jede blaue Box ist eine LSTM-Schicht, die aus mehreren Zellen / Einheiten besteht, von denen jede eine Vektoreingabe x_t akzeptiert.

Damit sind die Antworten auf Ihre Fragen:

1) Ja

2) Ja, sie sind unabhängig (in einem einzigen Zeitschritt - sie tauschen Informationen zwischen Zeitschritten miteinander aus).

3) Ja, jede Einheitszelle nimmt eine Eingabe der Größe 5 entgegen. Ich denke, die Ausgabegröße ist immer 1, ähnlich wie bei neuronalen Netzwerkknoten (wie Sigmoid-Einheiten), die kombiniert und dann aktiviert werden.


Ich bestätige , dass die Ausgabegröße ist immer ein, weil jede LSTM Einheit esentially ähnlich wie gewöhnliches Neuron arbeitet. Es liegt an der folgenden Ebene, diesen einzelnen Wert auf seine mehreren Neuronen zu verteilen
Kari

Eine "LSTM-Schicht" wird auch als "LSTM-Zelle" AFAIK bezeichnet. Wenn Sie in den meisten Frameworks eine LSTM-Zelle hinzufügen, müssen Sie die Ebenengröße angeben. Die Kennzeichnung scheint also dieser Konvention zu folgen.
Neil Slater

1

Eigentlich dienen die Formen der Vereinfachung. Wenn Sie das richtige Verhalten wissen möchten, müssen Sie sich die Formeln jeder LSTMZelle ansehen . Um Ihre erste Frage zu beantworten, gibt es möglicherweise unterschiedliche Antworten. Was die Bilder darstellen, gehört zu Aufgaben, die viele zu viele sind, und für jede Eingabe benötigen Sie genau eine Ausgabe. Es gibt verschiedene Aufgaben für Sequenzen, die definiert werden können:

  • Eins zu eins
  • Eins zu viele
  • Viele zu einem
  • Viel zu viel

Sie können auf einen Blick hier .

Zur Veranschaulichung der Formeln jeder LSTMZelle habe ich das folgende Bild aus dem Kurs von Professor Andrew Ng über tiefes Lernen gegeben:

Geben Sie hier die Bildbeschreibung ein

Wie Sie sehen können, kann jeder Knoten in der LSTMZelle indirekt mit dem Ausgang der benachbarten Zellen des vorherigen Zeitschritts verbunden werden. Es ist indirekt, weil es Tore zwischen ihnen gibt. Beachten Sie auch, dass die LSTMZelle die Gewichte für alle Eingaben verschiedener Zeitschritte teilt. Folglich ist jedes Neuron in der LSTMZelle abhängig von der Eingabe des aktuellen Zeitschritts und der Ausgabe der benachbarten Knoten der vorherigen Zeitschritte.

Bei der dritten Frage entspricht die Eingabegröße der Anzahl der Merkmale der Eingabe für jeden Zeitschritt. Die Anzahl der Ausgänge hängt von Ihrer Aufgabe ab, auf die ich zuerst Bezug genommen habe. Schauen Sie sich den ersten Link an.


1
  1. Ist das richtig?

Ja, die Diagramme sehen für mich beide korrekt aus. Der Schlüssel zum Verständnis beider Diagramme ist, dass die Ein- und Ausgänge einer LSTM-Zelle Vektoren sind.

Die Kreise im ersten Diagramm stellen das Konzept dar, dass die Schicht mehrere einzelne künstliche Neuronen enthält, und das könnte Sie annehmen lassen, dass das zweite Diagramm ein Bild eines dieser Neuronen ist. Wahrscheinlich gibt es mehrere "Neuronen" oder Unterschichten mit unterschiedlichen Rollen innerhalb einer Zelle, da es mehrere Stellen gibt, an denen die Form berechnet wirdf(W.x+b)auftreten und leicht unterschiedliche Rollen spielen. Ich denke, der Begriff "Zelle" bezieht sich auf diese Architektur von Neuronen. Als Abkürzung, wenn ich "Neuron" sage, neige ich dazu, an die Ausgangsstufe der verborgenen Schicht zu denken.

Im zweiten Diagramm arbeiten jedoch alle gezeigten Operationen mit Vektoren. Am wichtigsten ist, dass die Pfeile von links nach rechts im zweiten Diagramm Vektoren des verborgenen Zustands von Zeitschritt zu Zeitschritt von der gesamten Ebene darstellen . Jedes Neuron in der Zelle ist also wiederholt mit jedem anderen Neuron in dieser Zelle verbunden - doppelt so wie in einem LSTM, da LSTMs sowohl einen internen Zellzustand als auch eine Schichtausgabe haben.

  1. Ist jede Einheit in der Zelle unabhängig von den anderen? Oder teilen sie Informationen?

Um Ihrer Beschreibung der Diagramme zu entsprechen, definieren wir eine "Einheit" als eine Sammlung von jedem Typ von Neuron / Gate, aus dem die Zelle besteht, die theoretisch miteinander verdrahtet werden könnten, um eine funktionierende LSTM-Zellschicht mit einer einzigen zu bilden Skalarzellenzustand und Ausgabewert.

Diese Einheiten sind insofern unabhängig, als jede ihre eigenen Gewichtsparameter hat. Es gibt keine gemeinsamen Parameter für die Verbindungen zwischen dem Eingang und den Einheiten oder für die rekursiven Verbindungen, die den Status von einem Zeitschritt zum nächsten weiterleiten. In diesem Sinne teilen die Einheiten keine Informationen.

Die Verbindungen bedeuten jedoch, dass bei jedem Zeitschritt Eingabedaten und versteckter Zustand plus Ausgabe der letzten Ausgabe aller anderen Einheiten in der Zelle in Berechnungen verwendet werden. Jede Zelleneinheit kann ihren neuen internen Zustand plus ihre Ausgabe auf den Werten aller anderen Ausgaben und internen Zustände von anderen Einheiten in der Zelle basieren. In diesem Sinne teilen die Einheiten Informationen. Ich vermute aus Ihrer Frage, dass es wahrscheinlich dieses zweite Problem ist, über das Sie sich Sorgen machen, da das zweite Diagramm Sie an einen Schaltplan für ein einzelnes Neuron denken lässt, aber wie oben erläutert, ist dies nicht der Fall.

  1. Stellen Sie sich vor, ich habe die folgende Konfiguration: Anzahl der Abtastwerte = 1000 Anzahl der Zeitschritte = 10 Anzahl der Merkmale = 5 In diesem Fall nimmt jede Einheit in einer Zelle einen Vektor der Größe 5 als Eingabe, oder?

Fast. Jedes Neuron in der Zelle erhält eine Eingabe von 5 vonxplus eine Eingabe der Ausgabe der verborgenen Ebene, h. Wenn in Ihrem Fall die LSTM-Zellgröße 10 wäre, würde jedes Neuron einen kombinierten Vektor von 15 annehmen. Außerdem wird ein zweiter Zellzustandsvektor beibehalten, der in Ihrem Diagramm nicht markiert ist. Dies wird nicht direkt als Eingabe für irgendwelche Neuronen (dh Komponenten der Form) verwendetf(W.x+b)), interagiert aber mit den anderen Werten und kann sich durch die verschiedenen Tore selbst ändern. In Ihrem zweiten Diagramm ist es der oberste Pfeil von links nach rechts.

Aber wie groß wird der Ausgang für eine Einheit sein? 1?

Die Zelle als Ganzes hat die Ausgabe in der Größe, in der Sie die Ebene erstellt haben. Das versucht das Diagramm Nummer 2 zu zeigen. Unter Verwendung unserer Arbeitsdefinition von "Einheit" besteht die Ausgabe jeder Einheit jedoch aus zwei Skalarwerten - der Ausgabe der verborgenen Schicht und dem Zellenzustand -, die Teil ihrer jeweiligen in den Diagrammen gezeigten Vektoren sind.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.