Angenommen, ich füge eine 2D-Formmatrix (99, 13) als Eingabe in eine LSTM-Ebene ein. Ich habe n Dateien, wobei jede (99,13) Größenvektoren enthält. Ich habe beschlossen, 13 als Anzahl der Features und 99 als Zeitschritte zu betrachten.
(Während der Implementierung mit Keras habe ich die LSTM-Ebene als erste Ebene hinzugefügt. Und ich habe den output_dim der Ebene auf 100 festgelegt.)
Aber ich kann nicht herausfinden, wie die Dinge wirklich im Netzwerk sind, wenn wir einen Input wie oben liefern. Ich habe folgende Fragen, die ich selbst nicht beantworten kann.
- Welche Werte geben wir als Eingabe für die LSTM-Zellen an? ( xt , ht-1, das als Eingaben in die Zelle verwendet wird, sind immer Vektoren? In meinem Fall hat xt die Form [1,13]?)
- Wenn wir sagen, wir haben eine LSTM-Schicht als erste Schicht des Modus l, speist sie dann den ersten Eingabevektor allen Zellen in der gegebenen Schicht zu? (ZB: Alle n LSTM-Zellen in der ersten Schicht mit dem ersten Frame der Größe 13 (von 99 Frames) versorgen?) Wird weiterhin bei jedem Zeitschritt alle Zeilen der Eingabematrix gespeist?
- Was für einen Wert gibt eine LSTM-Zelle bei jedem Zeitschritt aus ? (Betrachten wir den Zellenzustand als die korrekte Ausgabe vom Knoten? Ist es ein einzelner Wert oder ein Vektor? Wenn es ein Vektor ist, welche Dimensionen gibt es? Gibt es eine Möglichkeit, die Dimensionen zu erraten? Ich habe ht als a angenommen Vektor)
- Was ist mit output_dim (Ausgabedimension) einer bestimmten Ebene gemeint ? Muss es immer die Anzahl der Knoten in der nächsten Schicht sein?
Bitte halten Sie dies nicht in der Warteschleife oder direkt an andere Gruppen. Ich denke, diese Fragen beziehen sich auf maschinelles Lernen und rnn. Ich habe Forschungsarbeiten gelesen, konnte aber keine klare Vorstellung davon bekommen, wie die Dinge im LSTM-Netzwerk wirklich funktionieren.
quelle