Viel Spaß beim Lesen!
Aktuelle Wettermodelle sind bei Regenvorhersagen der nächsten zwei Stunden ungenau. Daher werden mehrere Vorhersagen werden gemacht und zusammengerechnet – so entsteht die Regenwahrscheinlichkeit, die z.B. in Wetterapps angezeigt wird.
Mit Deep Learning ist es bereits möglich für bestimmte Bereiche vorherzusagen ob es dort regnen wird. Diese Vorhersagen werden aber immer unsicherer, je länger die Vorhersagezeit ist. Außerdem sind sie nicht gut im Vorhersagen kleinerer isolierter Regenschauer, und, besonders wichtig, sie können keine Wahrscheinlichkeit angeben.
Deepmind hat einen neuen Ansatz gewählt: sie haben ein Modell trainiert, das aus den Regenradar-Bildern der letzten Minuten die Radarbilder der nächsten Minuten vorhersagen kann. Mehrere dieser Vorhersagen kann man wieder kombinieren, um eine Regenwahrscheinlichkeit zu bekommen.
Und so funktioniert das Modell:
Als Eingabe bekommt es vier Radarbilder. Da es alle fünf Minuten ein neues Radarbild gibt, sind das die Daten der letzten zwanzig Minuten.
Die Ausgabe sind die vorhergesagten nächsten 18 Radarbilder, also die nächsten 90 Minuten.
Die Architektur das Modells ist ein sogenanntes GAN (Generative Adversarial Networks). Das bedeutet, es besteht aus mehreren neuronalen Netzen, die sich beim Training gegenseitig besser machen.
Bei einem GAN gibt es zwei Seiten: auf der einen steht ein Generator, der die Vorhersagen erzeugt und auf der anderen steht der Discriminator. Dieser bekommt zufällig entweder eine Vorhersage des Generators oder ein Bild aus den Trainingsdaten gezeigt und muss versuchen zu unterscheiden ob es ein generiertes Bild ist oder ein echtes.
Durch das Feedback des Discriminators lernt der Generator seine Vorhersagen immer besser an die Trainingsdaten anzupassen, also immer realistischere Vorhersagen zu machen.
Hier gibt es einen Generator, der die vorhergesagten 18 Radarbilder erzeugt, und zwei Discriminators mit unterschiedlichen Aufgaben. Der eine Discriminator bewertet wie realistisch die einzelnen Bilder sind, der andere, wie gut die Reihe von Radarbildern zeitlich zusammenpasst.
Zusätzlich wurde im Generator noch ein Modul eingefügt, das es ihm erlaubt auch Vorhersagen zu machen, die größere Gebiete abdecken als in den Trainingsdaten vorhanden waren.
Deepmind hat die Vorhersagen ihres Modells von 56 Meteorolog:innen des britischen Wetterdienstes bewerten lassen. Diese haben es in ca. 90% der Fälle den anderen Vorhersagemethoden vorgezogen.
CLIP (Contrastive Language-Image Pretraining) ist ein Modell von OpenAI, das Bilder und Texte einander zuordnen kann.
Diese Eigenschaft hat der Informatiker Johan Modin verwendet, um ein System zu bauen, mit dem sich Videos nach Dingen durchsuchen lassen, die in ihnen zu sehen sind.
Zum Beispiel kann man eingeben „A white BMW car“ und bekommt dann das Bild des Videos angezeigt, in dem ein weißer BMW vorkommt.
Und so funktioniert’s:
CLIP besteht aus zwei neuronalen Netzen die zusammenarbeiten. Eins bekommt Bilder als Eingabedaten (Image Encoder), das andere Texte, die das jeweilige Bild beschreiben (Text Encoder). Im Training lernen diese beiden Netze, die gleiche Ausgabe zu liefern, wenn Text und Bild zusammengehören.
Das hat Johan Modin genutzt, um seine Video-Bild-Suche zu bauen. Mit seiner Software, die er CLIFS nennt, kann man zuerst das Video, das man durchsuchen will, durch CLIPs Image Encoder schicken lassen. Dadurch bekommt man die Ausgabe des Image Encoders für die einzelnen Bilder des Videos.
Dann gibt man den Suchtext ein, der durch CLIPs Text Encoder geschickt wird.
Da die Ergebnisse von Image Encoder und Text Encoder sehr ähnlich sein sollten, wenn Bild und Text zusammenpassen, muss die Software jetzt nur noch vergleichen, bei welchem Bild die Ausgabe des Image Encoders der Ausgabe des Text Encoders am ähnlichsten ist.
Dieses Bild zeigt dann mit hoher Wahrscheinlichkeit das Gesuchte an.
Das Straßennetz ist zu groß dafür, alle möglichen Verbindungen zwischen einem Start- und einem Zielpunkt zu betrachten um die beste herauszufinden.
Eine mögliche Lösung für dieses Problem ist, die Straßen in Gebiete aufzuteilen. Dadurch muss nicht für jede Möglichkeit die gesamte Route neu berechnet werden, sondern nur der Teil im entsprechenden Gebiet.
Wenn man zum Beispiel von einer Stadt zu einer anderen Stadt fährt, könnte man die beiden Städte, wo es viele Straßen gibt, jeweils als ein Gebiet betrachten und die Strecke dazwischen, wo es weniger Straßen gibt, als drittes Gebiet.
Dann kann die Frage nach der besten Strecke innerhalb einer Stadt unabhängig von der besten Strecke zwischen den Städten betrachtet werden.
Ein Problem sind allerdings die Verbindungen zwischen den Gebieten, also im Beispiel die Straßen, die in die Städte hineinführen. Wenn es viele davon gibt führt das wieder zu vielen möglichen Kombinationen aus Strecken in der Stadt und Strecken zur Stadt hin, die ausprobiert werden müssen.
Daher hat Google einen Algorithmus entwickelt, der eine Aufteilung findet, bei der die Anzahl der Verbindungen minimiert wird.
Zuerst werden eng verbundene Gegenden gesucht, indem sogenannte „Random Walks“ mit einer bestimmten Anzahl von Schritten durchgeführt werden.
Das kann man sich so vorstellen, dass ein simulierter Fußgänger an einer bestimmten Stelle auf die Straße gesetzt wird, der an den nächsten z.B. zehn Kreuzungen zufällig in eine der Straßen abbiegt (also ungefähr so wie ich, wenn ich versuche mich in einer fremden Stadt zurechtzufinden). Danach wird aufgeschrieben, an welchen Kreuzungen er vorbeigekommen ist.
Das wird z.B. fünfzig mal wiederholt.
Danach wird ausgewertet, an welchen Kreuzungen die Fußgänger am häufigsten waren. Daraus kann man schließen, dass man besonders leicht von einer dieser Kreuzungen zur nächsten kommt, dass sie also besonders eng miteinander verbunden sind.
Diese eng verbundenen Kreuzungen werden dann virtuell zu einer großen Kreuzung zusammengezogen.
Das wird solange wiederholt, bis die Anzahl an verbleibenden Kreuzungen klein genug ist.
Dann wird die Gegend so in zwei Gebiete geteilt, dass möglichst wenige Verbindungen zwischen den Kreuzungen dabei zerschnitten werden, d.h. so dass es möglichst wenige Verbindungen von einem Gebiet ins andere gibt.
Diese Schritte werden dann auf den beiden Gebieten so lange wiederholt, bis die entstandenen Gebiete klein genug sind, um in ihnen effizient die kürzeste Strecke berechnen zu können.
Das Ergebnis wird dann wieder auf das echte Straßennetz übertragen und kann zur Routenberechnung benutzt werden.