Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
p:ki:timeseries1 [2024/05/02 08:57] – Tscherter Vincent | p:ki:timeseries1 [2025/08/27 11:38] (aktuell) – [3. Dem neuronalen Netzwerk helfen] Tscherter Vincent | ||
---|---|---|---|
Zeile 10: | Zeile 10: | ||
===== - Einfache Zeitreihenvorhersage ===== | ===== - Einfache Zeitreihenvorhersage ===== | ||
- | [{{ : | + | <figure right>{{: |
💡 Eine Zeitreihe vorherzusagen kann für vieles nützlich sein, z.B. eine Vorhersage von Wetter- oder Klimamesswerten, | 💡 Eine Zeitreihe vorherzusagen kann für vieles nützlich sein, z.B. eine Vorhersage von Wetter- oder Klimamesswerten, | ||
Zeile 22: | Zeile 22: | ||
💡 Eine einfache Idee ist z.B. die Folgende. Wir verwenden jeweils die letzten vier Werte der Zeitreihe als Eingangswerte für ein neuronales Netz (die letzten vier Werte können gemessen oder auch vorhergesagte Werte sein). Diese vier Werte sind in den Abbildungen dunkelblau eingezeichnet. Das neuronale Netz wird zuvor so trainiert, dass es immer nur den nächsten, unbekannten Wert voraussagt. D.h. das neuronale Netz sagt nur einen Zeitschritt (+1 Stunde) voraus. Dieser vorhergesagte Wert ist grün eingezeichnet. Ist ein grüner Wert berechnet worden, so kann auch dieser für die Vorhersage des nächsten Zeitschritts ebenfalls als Eingangswert für das neuronale Netz genommen werden. D.h. das neuronale Netz sagt einen Zeitpunkt voraus, rutscht eine Position weiter und sagt den nächsten Zeitpunkt voraus usw. (dies ist in den drei Abbildungen von links nach rechts ersichtlich). | 💡 Eine einfache Idee ist z.B. die Folgende. Wir verwenden jeweils die letzten vier Werte der Zeitreihe als Eingangswerte für ein neuronales Netz (die letzten vier Werte können gemessen oder auch vorhergesagte Werte sein). Diese vier Werte sind in den Abbildungen dunkelblau eingezeichnet. Das neuronale Netz wird zuvor so trainiert, dass es immer nur den nächsten, unbekannten Wert voraussagt. D.h. das neuronale Netz sagt nur einen Zeitschritt (+1 Stunde) voraus. Dieser vorhergesagte Wert ist grün eingezeichnet. Ist ein grüner Wert berechnet worden, so kann auch dieser für die Vorhersage des nächsten Zeitschritts ebenfalls als Eingangswert für das neuronale Netz genommen werden. D.h. das neuronale Netz sagt einen Zeitpunkt voraus, rutscht eine Position weiter und sagt den nächsten Zeitpunkt voraus usw. (dies ist in den drei Abbildungen von links nach rechts ersichtlich). | ||
- | | [{{: | + | <figure center> |
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
🤔 Wie kann ein neuronales Netz aber für so was trainiert werden? | 🤔 Wie kann ein neuronales Netz aber für so was trainiert werden? | ||
Zeile 48: | Zeile 53: | ||
* Während dem Training wird der Trainingsfehler " | * Während dem Training wird der Trainingsfehler " | ||
* Danach wird eine Grafik für eine Prognosezeitreihe ausgehend von einem Startpunkt erzeugt mit | * Danach wird eine Grafik für eine Prognosezeitreihe ausgehend von einem Startpunkt erzeugt mit | ||
- | * der wahren, beobachteten Zeitreihe (grün) | + | * der wahren, beobachteten Zeitreihe (orange) |
- | * der vorhergesagten Zeitreihe (orange) | + | * der vorhergesagten Zeitreihe (grün) |
* Zusätzlich wird der MAE für die +1, +2, +3, ... + 120 Stundenprognosen (violett) berechnet. Der MAE wird über mehrere Prognosenzeitreihen ausgehend von mehreren, verschiedenen Startpunkten aus gemittelt. | * Zusätzlich wird der MAE für die +1, +2, +3, ... + 120 Stundenprognosen (violett) berechnet. Der MAE wird über mehrere Prognosenzeitreihen ausgehend von mehreren, verschiedenen Startpunkten aus gemittelt. | ||
* Du kannst nach dem Training zwischen einer Beschreibung des neuronalen Netzes, dem Trainingsfehler und der Vorhersage über die Register '' | * Du kannst nach dem Training zwischen einer Beschreibung des neuronalen Netzes, dem Trainingsfehler und der Vorhersage über die Register '' | ||
Zeile 89: | Zeile 94: | ||
⚠️ Das **Problem** ist der **Sprung** in der Stundenangabe (siehe unten). Für das neuronale Netz ist der Minimalwert 0 Uhr und der Maximalwert 23 etwas komplett anderes. Für uns (und in der Zeitreihe) sind 0 Uhr und 23 Uhr fast dasselbe. | ⚠️ Das **Problem** ist der **Sprung** in der Stundenangabe (siehe unten). Für das neuronale Netz ist der Minimalwert 0 Uhr und der Maximalwert 23 etwas komplett anderes. Für uns (und in der Zeitreihe) sind 0 Uhr und 23 Uhr fast dasselbe. | ||
- | [{{:: | + | <figure center>{{:: |
\\ 🤔 Aber wie können wir 24 Stunden mit einer Zahl so darstellen, dass es keinen Sprung gibt, jedoch jede Tagesstunde einen anderen Wert bekommt? | \\ 🤔 Aber wie können wir 24 Stunden mit einer Zahl so darstellen, dass es keinen Sprung gibt, jedoch jede Tagesstunde einen anderen Wert bekommt? | ||
Zeile 95: | Zeile 100: | ||
💡 Bevor du dir den Kopf zerbrichst, das ist mit einer Zahl nicht möglich, jedoch mit zwei Zahlen schon! Die Idee besteht darin, die Tagesstunde durch den Sinus UND den Cosinus der Tagesstunde zu ersetzen, d.h. durch zwei Eingangsgrössen.((Genauer gesagt verwenden wir '' | 💡 Bevor du dir den Kopf zerbrichst, das ist mit einer Zahl nicht möglich, jedoch mit zwei Zahlen schon! Die Idee besteht darin, die Tagesstunde durch den Sinus UND den Cosinus der Tagesstunde zu ersetzen, d.h. durch zwei Eingangsgrössen.((Genauer gesagt verwenden wir '' | ||
- | [{{:: | + | <figure center>{{:: |
\\ 💡 Also bauen wir statt der Tagesstunde, | \\ 💡 Also bauen wir statt der Tagesstunde, |