Ich bin absoluter Neuling was NN angeht, und wollte mich mal schlau machen, wie sich für eine Fachvertiefungsarbeit im Studium neuronale Netze zur Hochwasservorhersage einsetzen liessen - und wie man das mit MemBrain allenfalls umsetzen könnte.
Folgende Ausgangslage:
- Es sind Messungen des Niederschlags, der Temperatur (wird jeweils zusammen gemessen, an drei Stationen) in stündlicher Auflösung vorhanden
- Es sind Messungen des Abflusses in jeweils stündlicher Auflösung vorhanden:
- Station 1 --> für diese Station sollen Vorhersagen gemacht werden
Station 2 --> liegt oberhalb von Station 1
Station 3 --> liegt oberhalb von Station 1, jedoch anderer Flussarm als Station 2
Code: Select all
Station;DatumStundeVon-DatumStundeBis;Abfluss
2603;1990.01.01 01:00-1990.01.01 02:00; 1.078
2603;1990.01.01 02:00-1990.01.01 03:00; 1.076
2603;1990.01.01 03:00-1990.01.01 04:00; 1.075
2603;1990.01.01 04:00-1990.01.01 05:00; 1.074
2603;1990.01.01 05:00-1990.01.01 06:00; 1.073
2603;1990.01.01 06:00-1990.01.01 07:00; 1.071
2603;1990.01.01 07:00-1990.01.01 08:00; 1.070
Code: Select all
Station Jahr Monat Tag Stunde Minute Niederschlag
78 2001 4 6 20 0 0.3
78 2001 4 6 21 0 0.7
78 2001 4 6 22 0 1.4
78 2001 4 6 23 0 0.3
78 2001 4 7 0 0 0.1
78 2001 4 7 1 0 1.9
78 2001 4 7 2 0 1.6
78 2001 4 7 3 0 7.5
78 2001 4 7 4 0 3.7
78 2001 4 7 5 0 0.9
78 2001 4 7 6 0 1.1
78 2001 4 7 7 0 0.0
78 2001 4 7 8 0 0.0
78 2001 4 7 9 0 0.0
- - Alles Wasser, was von Abfluss-Station 2 und 3 kommt, passiert auch Station 1 mit einer geringen zeitlichen Verzögerung (1-3 h). Ein erster Ansatz wäre somit, zu kucken, was an Station 2 und 3 aktuell gemessen wird und daraus auf den Abfluss an Station 1 zum Zeitpunkt t+1h, t+2h, t+3h, t+n (n > 4h ist dann wohl eher nicht mehr sinnvoll, weil alles Wasser von den oberhalb liegenden Stationen bereits die Station 1 passiert hat) zu schliessen
- Bereits für den Zeitschritt t+2 wird die Information der oberhalb liegenden Abflussmessstationen wohl nicht mehr ausreichend sein, hier müssen Informationen über den gefallenen Niederschlag her (ist wie oben erwähnt, an drei meteorologischen Stationen vorhanden). Wenn der Niederschlag als Schnee fällt, wird er nicht direkt abflusswirksam, darum sind auch Temperaturdaten notwendig. Durch den Einbezug von Niederschlag
- Ich habe also 6 (3x Niederschlag, 3x Temperatur) Zeitreihen, die ich als Input-Neuronen definieren muss. Abflussstationen 2 und 3 nehmen Informationen der 6 Inputneuronen auf und geben seinerseits Infos an die Abflussstation 1 weiter. Die Abflussstation 1 ist das Output-Neuron und nimmt Infos von allen Neuronen auf. Mit Membrain hab ich das mal bildlich dargestellt (Bildanhang 1)
- - Macht die Definition der Units/Neuronen so Sinn?
- Unsicher bin ich mir mit den Aktivitätsfunktionen: ich würde in einem ersten Wurf mal alles auf "Logistic" lassen - Einwände?
- Für das Trainieren des Neuronalen Netzes muss ich die Daten (Beispiele siehe oben, ASCII-Textfiles) in MemBrain bringen. Wie gehe ich da genau vor?
- Zeitreihen sind ja etwas besonderes für neuronale Netze. Im vorliegenden Fall hängt der Output (Abflussstation 1) ja vom Input (Abflussstationen 2+3 sowie Niederschläge und Temperatur) ab, der zu unterschiedlichen Zeitschritten vor dem aktuellen Zeitschritt ins System eingeht. Zudem muss beim Niederschlag noch berücksichtigt werden, dass dieser additiv ist (hypothetisches Beispiel: Summe des Niederschlages an Station x von Zeitschritt t-16h bis t-3h). Wie muss das berücksichtigt werden?
- Schlussendlich möchte ich kucken, bis zu welchem Vorhersagezeitraum aufgrund der vorliegenden Messdaten halbwegs brauchbare Vorhersagen gemacht werden können. Ich brauche also Vorhersagen für Abflussstation 1 zum Zeitpunkt t+1h, t+2h, t+3h bis sagen wir mal t+10h. Wie gehe ich da am besten vor?
Gruss, Anatol