Holen Sie das Beste aus LSTMs für Ihr Sequenzvorhersageproblem heraus

Holen Sie das Beste aus LSTMs für Ihr Sequenzvorhersageproblem heraus

Wiederkehrende neuronale Netze mit langem Kurzzeitgedächtnis (Long Short-Term Memory, LSTM) sind eine leistungsstarke Art des Tiefenlernens, die für Sequenzvorhersageprobleme geeignet ist.

Ein mögliches Problem bei der Verwendung von LSTMs besteht darin, dass die zusätzliche Komplexität des Modells die Fähigkeiten Ihres Modells verbessert oder tatsächlich zu geringeren Fähigkeiten als bei einfacheren Modellen führt.

In diesem Beitrag werden Sie einfache Experimente entdecken, die Sie ausführen können, um sicherzustellen, dass Sie LSTMs für Ihr Sequenzvorhersageproblem optimal nutzen.

Nachdem Sie diesen Beitrag gelesen haben, werden Sie wissen:

  • So testen Sie, ob Ihr Modell die Ordnungsabhängigkeit in Ihren Eingabedaten ausnutzt.
  • So testen Sie, ob Ihr Modell den Speicher Ihres LSTM-Modells nutzt.
  • So testen Sie, ob Ihr Modell BPTT nutzt, wenn Sie Ihr Modell montieren.

Starten Sie Ihr Projekt mit meinem neuen Buch Long Short-Term Memory Networks With Python, einschließlich Schritt-für-Schritt-Anleitungen und das Python-Quellcode Dateien für alle Beispiele.

Lass uns eintauchen.

Holen Sie das Beste aus LSTMs für Ihr Sequenzvorhersageproblem heraus

Holen Sie das Beste aus LSTMs für Ihr Sequenzvorhersageproblem heraus
Foto von DoD News, einige Rechte vorbehalten.

3 Funktionen von LSTMS

Das wiederkehrende neuronale LSTM-Netzwerk verfügt über einige Schlüsselfunktionen, die der Methode ihre beeindruckende Leistung bei einer Vielzahl von Sequenzvorhersageproblemen verleihen.

Ohne auf die Theorie der LSTMs einzugehen, können wir einige diskrete Verhaltensweisen von LSTMs zusammenfassen, die wir in unseren Modellen konfigurieren können:

  • Ordnungsabhängigkeit. Sequenzvorhersageprobleme erfordern eine Reihenfolge zwischen Beobachtungen, während einfachere überwachte Lernprobleme dies nicht tun, und diese Reihenfolge kann vor dem Training und der Vorhersage randomisiert werden. Ein Sequenzvorhersageproblem kann durch Randomisierung der Reihenfolge der Beobachtungen in die einfachere Form umgewandelt werden.
  • Erinnerung. LSTMs haben einen internen Speicher für Beobachtungen in Eingabesequenzen, während einfache neuronale Netze wie Multilayer Perceptrons dies nicht tun. LSTMs können diesen Speicher verlieren, indem sie den internen Zustand nach jeder Eingangsbeobachtung zurücksetzen.
  • BPTT. Wiederkehrende neuronale Netze verwenden einen Trainingsalgorithmus, der die Richtung der Gewichtsaktualisierungen über alle Zeitschritte einer Eingabesequenz schätzt, während andere Netzwerktypen auf einzelne Stichproben beschränkt sind (in beiden Fällen ohne Mittelwertbildung über mehrere Eingabestapel). LSTMs können den Fehlerbeitrag früherer Zeitschritte bei Gradientenschätzungen ignorieren, indem sie mit Sequenzen einer Beobachtung in der Länge arbeiten.

Diese drei Funktionen und ihre Konfigurierbarkeit in einer einfacheren Form bilden die Grundlage für drei Experimente, die Sie durchführen können, um genau zu sehen, welche Eigenschaften der LSTMs Sie für Ihr Sequenzvorhersageproblem nutzen können und nutzen.

Benötigen Sie Hilfe bei LSTMs für die Sequenzvorhersage?

Nehmen Sie an meinem kostenlosen 7-tägigen E-Mail-Kurs teil und entdecken Sie 6 verschiedene LSTM-Architekturen (mit Code).

Klicken Sie hier, um sich anzumelden und eine kostenlose PDF-E-Book-Version des Kurses zu erhalten.

Starten Sie jetzt Ihren KOSTENLOSEN Minikurs!

1. Nutzen Sie die Auftragsabhängigkeit?

Ein Schlüsselmerkmal von Sequenzvorhersageproblemen ist, dass es eine Ordnungsabhängigkeit zwischen Beobachtungen gibt.

Das heißt, die Reihenfolge der Beobachtungen ist wichtig.

Annahme: Es wird erwartet, dass die Reihenfolge der Beobachtungen wichtig ist, um Vorhersagen über Sequenzvorhersageprobleme zu treffen.

Sie können überprüfen, ob diese Annahme zutrifft, indem Sie eine Leistungsbasis mit einem Modell entwickeln, das nur die vorherige Beobachtung als Eingabe verwendet und die Trainings- und Testdatensätze mischt.

Dies könnte auf verschiedene Weise erreicht werden. Zwei Beispielimplementierungen umfassen:

  • Ein Multilayer Perceptron (MLP) mit gemischten Trainings- und Testsätzen.
  • Ein LSTM mit gemischten Trainings- und Testsätzen mit Aktualisierungen und Status-Resets nach jeder Probe (Chargengröße 1).

Prüfung: Wenn die Ordnungsabhängigkeit für das Vorhersageproblem wichtig ist, sollte ein Modell, das die Reihenfolge zwischen Beobachtungen in jeder Eingabesequenz und über Eingabesequenzen hinweg ausnutzt, eine bessere Leistung erzielen als ein Modell, das dies nicht tut.

2. Nutzen Sie den LSTM-Speicher?

Eine Schlüsselfunktion von LSTMs besteht darin, dass sie sich über lange Eingabesequenzen hinweg erinnern können.

Das heißt, jede Speichereinheit behält einen internen Zustand bei, der als lokale Variablen betrachtet werden kann, die bei der Erstellung von Vorhersagen verwendet werden.

Annahme: Es wird erwartet, dass der interne Zustand des Modells für die Modellfähigkeit wichtig ist.

Sie können überprüfen, ob diese Annahme zutrifft, indem Sie eine Leistungsbasis mit einem Modell entwickeln, das von einem Beispiel zum nächsten keinen Speicher hat.

Dies kann erreicht werden, indem der interne Zustand des LSTM nach jeder Beobachtung zurückgesetzt wird.

Prüfung: Wenn der interne Speicher für das Vorhersageproblem wichtig ist, sollte ein Modell, das über Beobachtungen in einer Eingabesequenz hinweg über Speicher verfügt, eine bessere Leistung erzielen als ein Modell, das dies nicht tut.

3. Nutzen Sie die Backpropagation im Laufe der Zeit?

Ein Schlüssel für das Training wiederkehrender neuronaler Netze ist der BPTT-Algorithmus (Backpropagation through Time).

Dieser Algorithmus ermöglicht die Schätzung des Gradienten von Gewichtsaktualisierungen aus allen Beobachtungen in der Sequenz (oder einer Teilmenge im Fall einer abgeschnittenen BPTT).

Annahme: Es wird erwartet, dass der BPTT-Gewichtsaktualisierungsalgorithmus wichtig ist, um Fähigkeiten bei Sequenzvorhersageproblemen zu modellieren.

Sie können überprüfen, ob diese Annahme zutrifft, indem Sie eine Leistungsbasislinie entwickeln, bei der Gradientenschätzungen auf einem einzelnen Zeitschritt basieren.

Dies kann erreicht werden, indem Eingabesequenzen so aufgeteilt werden, dass jede Beobachtung eine einzelne Eingabesequenz darstellt. Dies wäre unabhängig davon, wann Gewichtsaktualisierungen geplant sind und wann der interne Status zurückgesetzt wird.

Prüfung: Wenn BPTT für das Vorhersageproblem wichtig ist, sollte ein Modell, das den Gradienten für Gewichtsaktualisierungen für mehrere Zeitschritte schätzt, eine bessere Leistung erzielen als ein Modell, das einen einzelnen Zeitschritt verwendet.

Zusammenfassung

In diesem Beitrag haben Sie drei Hauptfunktionen von LSTMs entdeckt, die der Technik ihre Leistungsfähigkeit verleihen, und wie Sie diese Eigenschaften anhand Ihrer eigenen Sequenzvorhersageprobleme testen können.

Speziell:

  • So testen Sie, ob Ihr Modell die Ordnungsabhängigkeit in Ihren Eingabedaten ausnutzt.
  • So testen Sie, ob Ihr Modell den Speicher Ihres LSTM-Modells nutzt.
  • So testen Sie, ob Ihr Modell BPTT nutzt, wenn Sie Ihr Modell montieren.

Haben Sie irgendwelche Fragen?
Veröffentlichen Sie Ihre Fragen in den Kommentaren unten und ich werde mein Bestes geben, um sie zu beantworten.

Entwickeln Sie noch heute LSTMs für die Sequenzvorhersage!

Langzeit-Kurzzeitspeichernetzwerke mit Python

Entwickeln Sie Ihre eigenen LSTM-Modelle in wenigen Minuten

... mit nur wenigen Zeilen Python-Code

Entdecken Sie, wie in meinem neuen Ebook:
Langzeit-Kurzzeitspeichernetzwerke mit Python

Es bietet Tutorials zum Selbststudium zu Themen wie:
CNN-LSTMs, Encoder-Decoder-LSTMs, generative Modelle, Datenaufbereitung, Vorhersagen und vieles mehr...

Bringen Sie schließlich LSTM Recurrent Neural Networks zu
Ihre Sequenzvorhersageprojekte

Überspringen Sie die Akademiker. Nur Ergebnisse.

Siehe Was ist drin?

Das könnte Sie auch interessieren