Richtige Methode zur Verwendung eines wiederkehrenden neuronalen Netzwerks für die Zeitreihenanalyse

67

Rekurrente neuronale Netze unterscheiden sich von "regulären" dadurch, dass sie eine "Gedächtnis" -Schicht haben. Aufgrund dieser Schicht sollten wiederkehrende NNs bei der Zeitreihenmodellierung nützlich sein. Ich bin mir jedoch nicht sicher, ob ich richtig verstehe, wie man sie benutzt.

Angenommen, ich habe die folgenden Zeitreihen (von links nach rechts): [0, 1, 2, 3, 4, 5, 6, 7]Mein Ziel ist es, den i-ten Punkt unter Verwendung von Punkten i-1und i-2als Eingabe (für jede i>2) vorherzusagen . In einer "regulären", einmaligen ANN würde ich die Daten folgendermaßen verarbeiten:

 target| input
      2| 1 0
      3| 2 1
      4| 3 2
      5| 4 3
      6| 5 4
      7| 6 5 

Ich würde dann ein Netz mit zwei Eingangs- und einem Ausgangsknoten erstellen und es mit den obigen Daten trainieren.

Wie muss man diesen Prozess (wenn überhaupt) bei wiederkehrenden Netzwerken ändern?

Boris Gorelik
quelle
Haben Sie herausgefunden, wie Sie die Daten für das RNN strukturieren (z. B. LSTM)? danke
mik1904

Antworten:

49

Was Sie beschreiben, ist in der Tat ein "Gleitzeitfenster" -Ansatz und unterscheidet sich von wiederkehrenden Netzwerken. Sie können diese Technik mit jedem Regressionsalgorithmus verwenden. Dieser Ansatz unterliegt einer enormen Einschränkung: Ereignisse in den Eingängen können nur mit anderen Ein- / Ausgängen korreliert werden, die höchstens t Zeitschritte voneinander entfernt sind, wobei t die Größe des Fensters ist.

Man kann sich zB eine Markov-Ordnungskette t vorstellen. RNNs leiden theoretisch nicht darunter, aber in der Praxis ist das Lernen schwierig.

Es ist am besten, eine RNN im Gegensatz zu einem Feedfoward-Netzwerk zu veranschaulichen. Betrachten Sie das (sehr) einfache Feedforward-Netzwerk wobei die Ausgabe, die Wichtungsmatrix und die Eingabe ist.y=WxyWx

Jetzt verwenden wir ein wiederkehrendes Netzwerk. Jetzt haben wir eine Folge von Eingaben, daher werden wir die Eingaben für die i-te Eingabe mit . Die entsprechende i-te Ausgabe wird dann über berechnet .xiyi=Wxi+Wryi1

Somit haben wir eine weitere Gewichtsmatrix die die Ausgabe im vorherigen Schritt linear in die aktuelle Ausgabe .Wr

Dies ist natürlich eine einfache Architektur. Am gebräuchlichsten ist eine Architektur, bei der Sie eine verborgene Ebene haben, die immer wieder mit sich selbst verbunden ist. Sei die verborgene Schicht im Zeitschritt i. Die Formeln lauten dann:hi

h0=0
hi=σ(W1xi+Wrhi1)
yi=W2hi

Wobei eine geeignete Nichtlinearitäts- / Übertragungsfunktion wie das ist. und sind die Verbindungsgewichte zwischen der Eingabe- und der verborgenen und der verborgenen und der Ausgabeebene. repräsentiert die wiederkehrenden Gewichte.σW1W2Wr

Hier ist ein Diagramm der Struktur:

schematisch

bayerj
quelle
2
Ist es falsch, eine Ähnlichkeit von wiederkehrenden Netzwerken mit Kalman-Filtern zu sehen? Ich sehe das, weil die vorherige Ausgabe die aktuelle Ausgabe beeinflusst. Was ist dann der praktische Nutzen von wiederkehrenden Netzwerken?
Vass,
10
Sie schreiben in dem Sinne, dass beide Zustandsraummodelle sind. Es gibt jedoch viele Unterschiede: KFs sind in dem Sinne vollständig wahrscheinlichkeitstheoretisch, dass die verborgenen Zustände eine angemessene wahrscheinlichkeitstheoretische Bedeutung haben. Andererseits sind RNNs deterministisch und nur die Ausgaben können verwendet werden, um eine Verteilung auf diskriminierende Weise zu modellieren. Auch KFs werden typischerweise mit EM geschätzt, während RNNs mit gradientenbasierten Methoden geschätzt werden. Wenn Sie weitere Details wünschen, können Sie gerne eine Frage stellen und mir den Link senden, aber die Kommentare sind zu eingeschränkt.
Bayerj
1
Nein, das gleitende Zeitfenster gibt nicht den Ausgang des Netzes vor, sondern nur den Eingang.
Bayerj
2
@bayerj tolle Informationen, aber ich glaube nicht, dass Sie die Frage beantwortet haben. Wie strukturiert man die Input-Output-Vektoren nicht in einem gleitenden Zeitfenster für RNNs? Können Sie ein paar Beispiele mit dem OP-Datensatz bereitstellen?
Levitikon
1
Dies ist eine sehr informative Beschreibung der RNNs, aber ich finde keine Antwort auf die Frage von OP: Wie muss man [Training] bei wiederkehrenden Netzwerken ändern?
Wehnsdaefflae
9

Sie können auch einfach eine Reihe von Transformationen von Zeitreihen für die Eingabedaten verwenden. Nur für ein Beispiel könnten die Eingaben sein:

  1. der letzte Intervallwert (7)
  2. der nächstletzte Intervallwert (6)
  3. das Delta zwischen dem jüngsten und dem nächst jüngeren (7-6 = 1)
  4. der drittletzte Intervallwert (5)
  5. das Delta zwischen dem zweit- und drittletzten (6-5 = 1)
  6. der Durchschnitt der letzten drei Intervalle ((7 + 6 + 5) / 3 = 6)

Wenn Ihre Eingaben in ein herkömmliches neuronales Netzwerk diese sechs transformierten Daten wären, wäre es für einen gewöhnlichen Backpropagation-Algorithmus keine schwierige Aufgabe, das Muster zu lernen. Sie müssten jedoch die Transformationen codieren, die die Rohdaten aufnehmen und in die obigen 6 Eingaben für Ihr neuronales Netzwerk umwandeln.

rossdavidh
quelle
1
Sie stecken jedoch viel Domain-Wissen in diese. Was ist, wenn Sie das Muster der Zeitreihe nicht selbst erkennen? Wie konstruieren Sie dann ein Modell, das das kann, besonders wenn es auf Eingaben beruht, die unendlich weit zurückliegen?
Bayerj
Unendlich wäre sicherlich knifflig. Wenn Sie jedoch Transformationen der Daten eingeben, die für diese Domäne nicht relevant sind, kann der Lernalgorithmus dies leicht herausfinden und die Gewichte entsprechend anpassen. Dies ist also kein großes Problem, solange Transformationen von vorliegen die relevanten Daten. Wenn Sie also viele verschiedene Transformationen zur Verfügung haben, verbessern Sie Ihre Erfolgschancen.
Rossdavidh
Stellen Sie sich folgende Aufgabe vor: Die erste Eingabe in das Netz ist entweder oder . Dann empfängt das Netz für eine beliebige Anzahl (10, 1000, 100000) von Zeitschritten Rauschen aus dem Intervall . Sobald es wieder erhält , muss es entweder oder ausgeben, je nachdem, was es zuvor gesehen hat. Dies ist der sogenannte "Latching Benchmark". Dies ist eine typische Einstellung bei Sequenzlernproblemen. Der große Vorteil von wiederkehrenden Netzwerken besteht darin, dass die gesamte Transformation von Eingaben selbst gelernt und NICHT von einem menschlichen Experten oder einem von ihm entwickelten Feature angegeben wird. 1 [ - 0.1 , 0.1 ] 1 0 101[0.1,0.1]101
Bayerj
2
Ich würde nicht sagen wollen, dass Sie niemals wiederkehrende neuronale Netze verwenden sollten. ganz im Gegenteil. Wenn die Aufgabe (wie in der Frage angegeben) darin besteht, das i-te aus den Punkten (i-1) und (i-2) vorherzusagen, können Sie mit diesem Wissen schneller ein besseres Ergebnis erzielen. Ich möchte nicht behaupten, dass RNNs nie eine gute Idee sind, aber es ist in Ordnung, die vorhandenen Domänenkenntnisse zu verwenden, um den Trainingsprozess zu beschleunigen (und die Wahrscheinlichkeit zu verringern, dass das Training in einem lokalen Minimum gefangen wird usw.). .
Rossdavidh
4

Eine andere Möglichkeit sind historische konsistente neuronale Netze (HCNN) . Diese Architektur ist möglicherweise besser für den oben genannten Aufbau geeignet, da sie die häufig willkürliche Unterscheidung zwischen Eingabe- und Ausgabevariablen aufhebt und stattdessen versucht, die gesamte zugrunde liegende Dynamik des gesamten Systems durch Training mit allen Observablen zu replizieren.

Als ich für Siemens arbeitete, veröffentlichte ich einen Artikel über diese Architektur in einem Buch des Springer Verlags: Zimmermann, Grothmann, Tietz, von Jouanne-Diedrich: Marktmodellierung, Prognose und Risikoanalyse mit historisch konsistenten neuronalen Netzen

Nur um eine Idee über das Paradigma zu geben, hier ein kurzer Auszug:

In diesem Artikel stellen wir einen neuen Typ von wiederkehrendem NN vor, der als historisches konsistentes neuronales Netzwerk (HCNN) bezeichnet wird. HCNNs ermöglichen die Modellierung stark wechselwirkender nichtlinearer dynamischer Systeme auf mehreren Zeitskalen. HCNNs unterscheiden nicht zwischen Ein- und Ausgängen, sondern modellieren Observablen, die in die Dynamik eines großen Zustandsraums eingebettet sind.

[...]

Das RNN wird verwendet, um ein offenes dynamisches System unter Verwendung eines nichtlinearen Regressionsansatzes zu modellieren und vorherzusagen. Viele reale technische und wirtschaftliche Anwendungen müssen jedoch im Kontext großer Systeme gesehen werden, in denen verschiedene (nichtlineare) Dynamiken zeitlich miteinander interagieren. Projiziert auf ein Modell bedeutet dies, dass wir nicht zwischen Ein- und Ausgängen unterscheiden, sondern von Observablen sprechen. Aufgrund der teilweisen Beobachtbarkeit großer Systeme benötigen wir versteckte Zustände, um die Dynamik der Observablen erklären zu können. Beobachtbare und versteckte Variablen sollten vom Modell auf die gleiche Weise behandelt werden. Der Begriff Observables umfasst die Eingangs- und Ausgangsvariablen (dhYτ:=(yτ,uτ)). Wenn wir ein Modell implementieren können, in dem die Dynamik aller Observablen beschrieben werden kann, werden wir in der Lage sein, das offene System zu schließen.

... und aus dem Fazit:

Die gemeinsame Modellierung von versteckten und beobachteten Variablen in großen, wiederkehrenden neuronalen Netzen bietet neue Perspektiven für Planung und Risikomanagement. Der auf HCNN basierende Ensemble-Ansatz bietet einen alternativen Ansatz zur Vorhersage zukünftiger Wahrscheinlichkeitsverteilungen. HCNNs geben eine perfekte Beschreibung der Dynamik der Observablen in der Vergangenheit. Die teilweise Beobachtbarkeit der Welt führt jedoch zu einer nicht eindeutigen Rekonstruktion der versteckten Variablen und damit zu unterschiedlichen Zukunftsszenarien. Da die tatsächliche Entwicklung der Dynamik unbekannt ist und alle Pfade die gleiche Wahrscheinlichkeit haben, kann der Durchschnitt des Ensembles als die beste Prognose angesehen werden, während die Bandbreite der Verteilung das Marktrisiko beschreibt. Heute, Wir verwenden HCNN-Prognosen, um die Preise für Energie und Edelmetalle vorherzusagen und den Zeitpunkt für Beschaffungsentscheidungen zu optimieren. Die derzeit laufenden Arbeiten befassen sich mit der Analyse der Eigenschaften des Ensembles und der Umsetzung dieser Konzepte in praktisches Risikomanagement und Finanzmarktanwendungen.

Teile des Papiers können öffentlich eingesehen werden: Hier

vonjd
quelle
Haben Sie eine Implementierung zum Herunterladen und Testen?
Julien L
@JulienL: Leider nicht, weil dies eine Eigenarbeit für Siemens war.
Vonjd
Schade, das sah vielversprechend aus.
Julien L
@ JulienL: Ich ermutige Sie, Georg, meinen Mitautor, zu kontaktieren. Seine E-Mail befindet sich auf der ersten Seite des Papiers (siehe Link oben).
Vonjd