Es ist richtig, dass eine Beschränkung der Gradientenausbreitung auf 30 Zeitschritte das Lernen verhindert alles Mögliche in Ihrem Datensatz wird. Es hängt jedoch stark von Ihrem Datensatz ab, ob dies verhindert, dass er wichtige Informationen zu den Funktionen Ihres Modells erhält.
Das Begrenzen des Gradienten während des Trainings entspricht eher dem Begrenzen des Fensters, über das Ihr Modell Eingabefunktionen und den verborgenen Zustand mit hoher Sicherheit verarbeiten kann. Da Sie Ihr Modell zum Testzeitpunkt auf die gesamte Eingabesequenz anwenden, können weiterhin Informationen zu allen Eingabe-Features in den verborgenen Zustand übernommen werden. Es kann sein, dass es nicht genau weiß , wie es diese Informationen aufbewahren soll, bis es seine endgültige Vorhersage für den Satz trifft, aber es gibt möglicherweise einige (zugegebenermaßen schwächere) Verbindungen, die es noch herstellen kann.
Denken Sie zuerst an ein erfundenes Beispiel. Angenommen, Ihr Netzwerk generiert eine 1, wenn irgendwo in der Eingabe eine 1 vorhanden ist, und ansonsten eine 0. Angenommen, Sie trainieren das Netzwerk mit Sequenzen der Länge 20 und begrenzen dann den Gradienten auf 10 Schritte. Wenn der Trainingsdatensatz in den letzten 10 Schritten einer Eingabe niemals eine 1 enthält, hat das Netzwerk ein Problem mit Testeingängen beliebiger Konfiguration. Wenn der Trainingssatz jedoch einige Beispiele wie [1 0 0 ... 0 0 0] und andere wie [0 0 0 ... 1 0 0] enthält, kann das Netzwerk die "Anwesenheit von" erkennen eine 1 "-Funktion an einer beliebigen Stelle in der Eingabe.
Zurück zur Stimmungsanalyse. Nehmen wir an, Ihr Modell trifft während des Trainings auf einen langen negativen Satz wie "Ich hasse das, weil ... herum und herum" mit beispielsweise 50 Wörtern in den Auslassungspunkten. Indem die Gradientenausbreitung auf 30 Zeitschritte begrenzt wird, verbindet das Modell das Wort "Ich hasse das, weil" nicht mit der Ausgabebezeichnung, sodass es nicht "Ich", "Hass" oder "Das" aufnimmt. aus diesem Training nicht aufnimmt Beispiel. Aber es werden die Wörter aufgenommen, die innerhalb von 30 Zeitschritten vom Ende des Satzes entfernt sind. Wenn Ihr Trainingssatz andere Beispiele enthält, die dieselben Wörter enthalten, möglicherweise zusammen mit "Hass", hat er die Chance, die Verbindung zwischen "Hass" und dem negativen Stimmungsetikett zu erkennen. Wenn Sie kürzere Trainingsbeispiele haben, sagen Sie: "Wir hassen das, weil es schrecklich ist!" dann kann Ihr Modell die Funktionen "hate" und "this" mit dem Zieletikett verbinden. Wenn Sie genug von diesen Trainingsbeispielen haben, sollte das Modell in der Lage sein, den Zusammenhang effektiv zu lernen.
Nehmen wir zum Test an, Sie präsentieren dem Modell einen weiteren langen Satz wie "Ich hasse das, weil ... auf dem Gecko!" Die Eingabe des Modells beginnt mit "Ich hasse das", das in irgendeiner Form in den verborgenen Zustand des Modells überführt wird. Dieser verborgene Zustand wird zur Beeinflussung zukünftiger verborgener Zustände des Modells verwendet, sodass der verborgene Zustand dieser Anfangswörter die theoretische Chance hat, die Ausgabe zu beeinflussen, obwohl dies niemals der Fall war trainiert an Proben, die einen so großen Abstand zwischen dem "Ich hasse das" und dem Ende des Satzes enthielten.