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-1
und i-2
als 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?
quelle
Antworten:
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=Wx y W x
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 .xi yi=Wxi+Wryi−1
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
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.σ W1 W2 Wr
Hier ist ein Diagramm der Struktur:
quelle
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:
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.
quelle
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:
[...]
... und aus dem Fazit:
Teile des Papiers können öffentlich eingesehen werden: Hier
quelle