Ich habe mich kürzlich für LSTMs interessiert und war überrascht zu erfahren, dass die Gewichte über die Zeit verteilt sind.
Ich weiß, dass, wenn Sie die Gewichte über die Zeit teilen, Ihre Eingabezeitsequenzen eine variable Länge haben können.
Mit geteilten Gewichten müssen Sie viel weniger Parameter trainieren.
Nach meinem Verständnis liegt der Grund, warum man sich für ein LSTM im Vergleich zu einer anderen Lernmethode entscheidet, darin, dass Sie glauben, dass Ihre Daten eine Art von zeitlicher / sequenzieller Struktur / Abhängigkeit aufweisen, die Sie lernen möchten. Wenn Sie die variable Länge "Luxus" opfern und eine lange Rechenzeit akzeptieren, würde ein RNN / LSTM ohne gemeinsame Gewichte (dh für jeden Zeitschritt haben Sie unterschiedliche Gewichte) nicht eine bessere Leistung erbringen, oder fehlt mir etwas?
quelle
Die Perspektive der "geteilten Gewichte" beruht darauf, dass RNNs als Feedforward-Netzwerke betrachtet werden, die im Laufe der Zeit abgewickelt werden. Wenn die Gewichte zu jedem Zeitpunkt unterschiedlich wären, wäre dies nur ein Feedforward-Netzwerk. Aber ich nehme an, eine andere Möglichkeit wäre eine RNN, deren Gewichte eine zeitvariable Funktion sind (und die es Ihnen ermöglichen könnte, Sequenzen mit variabler Länge zu verarbeiten).
Wenn Sie dies tun, wächst die Anzahl der Parameter linear mit der Anzahl der Zeitschritte. Das wäre eine große Explosion von Parametern für Sequenzen von jeder nennenswerten Länge. Es würde das Netzwerk in der Tat leistungsfähiger machen, wenn Sie über die enormen Rechenressourcen für die Ausführung und die enormen Daten für die Einschränkung verfügen würden. Für lange Sequenzen wäre es wahrscheinlich rechenintensiv und Sie würden überanpassen. Tatsächlich laufen die Leute normalerweise in die entgegengesetzte Richtung, indem sie eine verkürzte Backpropagation durch die Zeit ausführen, wodurch das Netzwerk nur für einen kurzen Zeitraum und nicht über die gesamte Sequenz abgewickelt wird. Dies erfolgt aus Gründen der rechnerischen Durchführbarkeit. Interessanterweise können RNNs immer noch eine zeitliche Struktur erlernen, die über die Kürzungslänge hinausgeht, da die wiederkehrenden Einheiten Speicher von früher speichern können.
quelle
Ich denke, da die RNNs mit versteckten zu versteckten Wiederholungen (und zeitlich geteilten Gewichten) den Universal Turing Machines entsprechen, macht es sie nicht leistungsfähiger, wenn sie für verschiedene Zeitschritte unterschiedliche Gewichte haben.
quelle