Loading ⌛Loading ⌛
🌪️ Umgang mit seltenen Ereignissen
🌪️ Stürme sind zum Glück relativ selten. Jedoch stellt ihre Seltenheit für die Vorhersage eine grosse Herausforderung dar. Wenn ein Sturmereignis im Mittel nur alle 100 Tage einmal auftritt, so liegt ein Verfahren, das nie Stürme vorhersagt, an 99 von 100 Tagen richtig. Trotzdem ist es unbrauchbar.
🤔 Was kann man tun?
💡 Dieses Thema setzt Grundwissen bezüglich neuronaler Netze und Klassifikation voraus (dieses Grundwissen wird z.B. in Künstliche Intelligenz für echte Fische vermittelt).
Inhaltsverzeichnis
🩺 Wie erkenne ich eine gute Sturmprognose?
💡 Für die folgenden Betrachtungen schauen wir 500 Tage an und gehen davon aus, dass sich 5 Sturmereignisse darin befinden (d.h. im Mittel 1 Sturmereignis alle 100 Tage). Uns interessieren die beiden Klassen „Sturmtag“ und „Normaler Tag“.
🙁 Die Klassifikationsrate beschreibt, wie viele Tage richtig klassifiziert werden. Ein Verfahren, dass nie einen Sturm voraussagt, hat in unserem Fall eine Klassifikationsrate von 99%, ist jedoch unbrauchbar. Somit eignet sich die Klassifikationsrate nicht dafür um festzustellen, wie gut seltene Ereignisse vorhergesagt werden.
🩺 Wie stelle ich aber fest, ob ein Sturmprognoseverfahren gut oder schlecht ist? Da müssen wir genauer hinschauen. Bewährt hat sich das Zählen der Grössen $A$, $B$, $C$ und $D$ in der nachfolgenden Tabelle. Z.B. ist $A$ die Anzahl Tage, für die ein Sturm vorhergesagt und dann auch beobachtet wurde. Die anderen Grössen werden analog gezählt.
| Sturm beobachtet | Sturm nicht beobachtet |
Sturm vorhergesagt | $A$ | $B$ |
Sturm nicht vorhergesagt | $C$ | $D$ |
😎 Aus der Tabelle lassen sich die folgenden beiden Grössen Hit Rate und False Alarm Rate berechnen. Mit diesen kann tatsächlich geprüft werden kann, ob ein Sturmprognoseverfahren gut oder schlecht ist. Wie das genau funktioniert erfährst du im nachfolgenden Auftrag.
- Hit Rate (HIT)
- Die Hit Rate $HIT = \frac{A}{A + C} \cdot 100$ beschreibt in % Prozent, wie viele der insgesamt $A + C$ beobachteten Stürme korrekt vorausgesagt wurden.
- False Alarm Rate (FAR)
- Die False Alarm Rate $FAR = \frac{B}{A + B} \cdot 100$ beschreibt in % Prozent, wie viele der insgesamt $A + B$ ausgesprochenen Sturmwarnungen falsch waren.
Die Hit und False Alarm Raten eignen sich gut, um den Umgang mit seltenen Ereignissen zu beschreiben. Für die Beschreibung von häufigen Ereignissen eignen sich die Hit und False Alarm Rate jedoch nicht!
✍ Auftrag – HIT und FAR interpretieren
Wir nehmen Folgendes für eine Beobachtungszeit von $500$ Tagen an: Für $12$ Tage wurde eine Sturmwarnung ausgegeben, an $5$ Tagen wurden Stürme beobachtet, $4$ Sturmwarnungen waren korrekt. Daraus ergibt sich folgende Tabelle.
✔️ | Sturm beobachtet | Sturm nicht beobachtet |
Sturm vorhergesagt | $4$ | $8$ |
Sturm nicht vorhergesagt | $1$ | $487$ |
Berechne die $HIT$ und $FAR$ aus den Angaben in der obigen Tabelle. Gibt die Zahl in Prozent mit Prozentzeichen % an.Loading ⌛
Was bedeuten diese beiden Zahlen genau? Lese noch einmal oben die Definitionen der $HIT$ und $FAR$ nach. Beschreibe die Bedeutung der beiden Zahlen in deinen eigenen Worten. Wenn dir die Bedeutung unklar ist, so bitte die Lehrperson um Hilfe. Loading ⌛
Als wie gut beurteilst du das Vorhersagesystem? Wie würdest du mit einem System umgehen das so oft einen Fehlalarm produziert? Halte dazu ein, zwei Gedanken fest.Loading ⌛
Was passiert, wenn wir die Hit und False Alarm Raten nicht auf die seltene Klasse „Stürme“ sondern auf die häufige Klasse „Normale Tage“ anwenden? Untenstehend siehst du dieselbe Tabelle, für dieselbe Prognose wie oben, einfach nicht für Stürme, sondern für die viel häufigeren normalen Tage formuliert. Berechne die $HIT$ und $FAR$ aus den Angaben in der untenstehenden Tabelle. Loading ⌛
Vergleiche die Zahlen im Auftrag 4. mit deiner Beurteilung der Prognose im Auftrag 3. Wie gut eignen sich die Hit und False Alarm Raten für die Beschreibung häufiger Ereignisse? Halte dazu ein, zwei Gedanken fest. Bitte die Lehrperson um Hilfe, wenn du dir nicht sicher bist. Loading ⌛
❌ | Normaler Tag beobachtet | Normaler Tag nicht beobachtet |
Normaler Tag vorhergesagt | $487$ | $1$ |
Normaler Tag nicht vorhergesagt | $8$ | $4$ |
🔎 Seltene Ereignisse entdecken
💡 Nachfolgend trainierst du ein neuronales Netz mit zwei geeigneten Eingangsgrössen für die Sturmprognose. Um es dem neuronalen Netz einfacher zu machen und um schneller trainieren zu können, betrachten wir nur 50 Tage, von welchen 5 Sturmtage sind (d.h. 1 Sturm alle 10 Tage).
✍ Auftrag – neuronales Netz trainieren
Starte als Erstes das nachfolgende Programm.
Schaue dir die Daten an. Inmitten von 45 grünen Kreisen (beobachtete normale Tage) befinden sich 5 rote Kreuze (beobachtete Stürme). Ein neuronales Netz wird so trainiert, dass es die 5 roten Kreuze erkennen (die Stürme vorhersagen) kann. Alle Eingaben (Pixel in der linken Grafik) für welche eine Sturmprognose ausgegeben wird, werden mit einer roten Hintergrundfarbe versehen. Alle Eingaben, für welche ein normaler Tag prognostiziert wird, werden mit einer grünen Hintergrundfarbe versehen.
Lass das Training weiter laufen. Das Training wird erst nach 10'000 Epochen (Durchgängen) beendet (ein Klick in die Grafik und ein Drücken der Taste ECS
oder auch der Taste §
beendet das Training sofort). Erfahrungsgemäss wird (wenn überhaupt) die rote Klasse erst nach ca. 7000 - 9000 Epochen erkannt, was einige Minuten dauern kann. Falls ein roter Bereich in der Grafik entsteht, so wird die seltene Klasse vorhergesagt. Falls bis zum Schluss kein roter Bereich entsteht, so starte das Training erneut.
💡 Alles, was Rot unterlegt wird, wird vom neuronalen Netz als Sturm interpretiert. Wird ein rotes Kreuz rot unterlegt, so wurde das rote Kreuz Sturm korrekt vorhergesagt. Wird ein grüner Kreis rot unterlegt, so wurde für diesen Tag ein Fehlalarm ausgegeben.
⚠️ Studiere während des Trainings die nachfolgende „Erklärung der Ausgabe des Programms“.
💡 Erklärung der Ausgabe des Programms
Das neuronale Netz, das im Programm trainiert wird, besitzt zwei Input Neuronen, d.h. zwei Eingänge (die X- und Y-Koordinaten in der Grafik) und ein einziges Output Neuron, d.h. einen einzigen Ausgang.
Der Ausgang des neuronalen Netzs produziert Ausgangswerte zwischen 0 und 1. Die Desired Outputs für die rote Klasse (Sturm) sind 1
und für die grüne Klasse (normaler Tag) 0
. Der Threshold für die Klassifikation ist 0.5
. D.h. alle Ausgangswerte > 0.5
werden als Stürme erkannt, alle Ausgangswerte ≤ 0.5
als normale Tage.
In der Grafik und in der Console werden alle 500 Epochen der Trainingsfehler (Loss) ausgegeben. Zur Berechnung des Trainingsfehlers wird der sogennannte „Mean Squared Error (MSE)“ verwendet. Je kleiner der Loss desto besser.
In der Console werden die Hit Rate (HIT) und False Alarm Raten (FAR) für die seltene Klasse (rote Kreuze, Stürme) ausgegeben.
✍ Auftrag – neuronales Netz auswerten
Falls noch nicht gemacht, lies die obigen Erklärungen zur Ausgabe des neuronalen Netzes sorgfältig durch!
Warte bis das Training beendet ist (und ein roter Bereich eingezeichnet wurde). Halte im Textfeld fest, nach wie vielen Epochen am Ende welcher MSE und welche HIT und FAR erzielt wurden.
💡 Hier wird immer der Threshold 0.5 für alle Experimente verwendet. In der nächsten Übung wirst du auch mit anderen Thresholds experimentieren.
Loading ⌛
🤩🔬 Noch mehr herauskitzeln
🤩 Kapitel für Schnelle oder Interessierte
💡 Für die bisherigen Betrachtungen hatten wir den Threshold 0.5
verwendet, um die häufige Klasse „normaler Tag“ (Desired Output 0
) von der seltenen Klasse „Sturmtag“ (Desired Output 1
) zu unterscheiden. Die Idee besteht nun darin, die seltene Klasse bereits anzuzeigen (d.h. eine Sturmwarnung auszugeben), wenn das neuronale Netz z.B. einen Ausgangswert > 0.1
produziert. So erhalten wir ein „hypersensibles Netzwerk“ für die seltene Klasse. Das erhöht in der Regel die Hit Rate, aber leider auch die False Alarm Rate.
✍ Auftrag – Grenzen ausloten 1
Lasse das nachfolgende Programm (mehrfach) laufen, bis die seltene Klasse erkannt wird.
⚠️ Studiere während des Trainings die nachfolgende „Erklärung der Ausgabe des Programms“.
💡 Erklärung der Ausgabe des Programms
Wenn das Training beendet ist, wird ganz unten in der Console die Tabelle „Final Results“ angezeigt. Dort sind für verschiedene Thresholds die Hit und False Alarm Raten angegeben. Z.B. der Threshold 0.2
bedeutet, dass alle Ausgangswerte > 0.2
als Sturm angesehen werden; die HIT und FAR Werte in derselben Zeile geben an, wie gut die Sturmprognose mit dem Threshold 0.2
ist. Entsprechend sind alle Zeilen in dieser Tabelle zu interpretieren.
Das Liniendiagramm (Grafik rechts) ist eine Darstellung aller Zeilen in dieser Tabelle. Auf der horizontalen Achse sind die Hit Rate (HR) Werte und auf der vertikalen Achsen die False Alarm Rate (FR) Werte aller Thresholds eingetragen (die kleinen roten Punkte) und durch Geraden miteinander verbunden.
- Receiver Operator Curve (ROC)
- Das HIT-FAR-Diagramm in der Grafik rechts wird als Receiver Operator Curve (ROC) bezeichnet. Damit können die für den jeweiligen Einsatzzweck optimalen Hit und False Alarm Raten mit dem zugehörigen Threshold herausgelesen werden.
✍ Auftrag – Grenzen ausloten 2
Starte das Training erneut. Breche das Training jedoch nach 3000 - 4000 Epochen ab. (Zum Abbrechen in die Grafik klicken und ESC
drücken.) Vermutlich wird in der linken Grafik nur die grüne Klasse angezeigt, was hier aber gewollt ist!
Falls noch nicht gemacht, lies die obigen Erklärungen zur Ausgabe des neuronalen Netzes sorgfältig durch!
Schaue dir die Tabelle am Ende der Consolen-Ausgabe genau an. Halte im Textfeld fest, welches der grösste Threshold ist, für welchen die rote Klasse (die Stürme) vorhergesagt wird (d.h. wo HIT und FAR nicht gleich 0% sind). Versuche auch den zugehörigen kleinen roten Punkt in der ROC (Liniengrafik) zu finden. Loading ⌛
Starte ein neues, vollständiges Training und beobachte, wie sich die ROC während des Trainings verändert. Halte am Ende des Trainings fest, für welchen Threshold gemäss ROC deiner Meinung nach das beste Resultat erzielt wird (das darf gerne subjektiv sein). Loading ⌛
Warum ist das perfekte Resultat: Hit Rate 100% und False Alarm Rate 0% für die hier verwendeten Daten nicht möglich? Halte deine Vermutung im Textfeld fest. Loading ⌛
🤩🧪 Wo steht die Forschung bezüglich seltenen Ereignissen?
🤩 Kapitel für Schnelle oder Interessierte
💡 Das Erkennen oder Vorhersagen von seltenen Ereignissen ist nach wie vor ein sehr schwieriges Problem und somit auch Gegenstand der aktuellen Forschung.
Seltene Ereignisse lassen sich nur ungenügend statistisch beschreiben. Verfahren zur Erkennung oder Vorhersage zeigen immer die Tendenz, die seltenen Ereignisse zu ignorieren. In der Praxis wird versucht durch einige „Tricks“ die seltenen Ereignisse dennoch sichtbar zu machen (was aber nur selten genügend gut gelingt). Zu diesen Tricks gehören die folgenden Ansätze, welche häufig miteinander kombiniert werden:
Thresholding: Die Wahl geeigneter Grenzwerte für die Erkennung der seltenen Ereignisse. Das führt häufig zu höheren Hit, aber auch zu höheren False Alarm Raten.
Resampling: Die Samples der seltenen Klasse werden mehrfach in die Trainingsdaten eingefügt oder / und die Samples der häufigen Klasse werden reduziert, um den Häufigkeitsunterschied zu verringern. Das erleichtert den Verfahren das Erkennen der seltenen Klasse. Die Gefahr besteht darin, dass die Samples der seltenen Klasse auswendig gelernt werden. Häufig werden die Kopien der seltenen Klasse nicht exakt, sondern mit leichten Abweichungen erstellt, um das Auswendiglernen zu verhindern. Dabei stiegt jedoch die Gefahr, dass diese Kopien mit häufigen Ereignissen „überlappen“ oder die hinzugefügten Abweichungen auch „mitgelernt“ werden.
Input Feature Selection: Es wird versucht durch das Finden geeigneter Eingangsgrössen (durch Nutzung von Fachwissen und viel Ausprobieren) das Erkennen der seltenen Klasse zu vereinfachen. Manchmal kann das tatsächlich eine grosse Verbesserung bewirken, häufig ist die Verbesserung jedoch relativ gering.
Alternative Loss-Funktionen: Es werden andere Loss-Funktionen genutzt, welche die seltene Klasse stärker gewichten. Dieses Vorgehen weist ähnliche Vor- und Nachteile auf wie das Resampling.
Alternative Verfahren: Es wird versucht neue, spezielle Verfahren für ein gegebenes Problem zu entwickeln oder mehrere der hier angeführten Techniken zu kombinieren. Das kann bessere Resultate bringen, weist häufig aber auch die gleichen Nachteile wie das Resampling auf und ist in der Regel sehr aufwändig umzusetzen.
Aufgeben: Kommt häufiger vor als man denkt. Das Problem wird dann entweder nur beschrieben oder manchmal leider auch schlicht ignoriert…
✍ Auftrag – seltene Ereignisse
Überlege oder recherchiere im Internet, wo seltene Ereignisse eine Rolle spielen (z.B. Sturmprognose der Wetterdienste, Terroristenerkennung der NSA). Unabhängig von den Verfahren, die eingesetzt werden, wie gut können diese seltenen Ereignisse erkannt oder vorhergesagt werden? Was denkst du? Findest du Hinweise im Internet? Wer weiss, vielleicht gelingt dir als Forscher*in gerade für die Vorhersage dieser seltenen Ereignisse eines Tages der grosse Durchbruch 🤩.
Loading ⌛
Eigene Notizen