Hinweis: Obwohl JavaScript für diese Website nicht unbedingt erforderlich ist, werden Ihre Interaktionsmöglichkeiten mit den Inhalten eingeschränkt sein. Bitte aktivieren Sie JavaScript für das volle Erlebnis.

Standortdaten mit Python und Gretel.ai synthetisch generieren

Header-Foto: sylv1rob1 via ShutterStock*

Wie Gretel.ai ein FastCUT GAN mit Python trainierte, um realistische synthetische Standortdaten für jede Stadt der Welt zu generieren.

Einleitung

Bei Gretel.ai ist es unsere Mission, Entwicklern und Data Scientists schnell und einfach produktionsreife synthetische Daten zu erstellen. Um dies zu erreichen, haben wir eine Reihe von APIs entwickelt, die es jedem ermöglichen, innerhalb von Minuten einsatzbereit zu sein, damit sie die für das Testen moderner Softwareanwendungen und KI/ML-Modelle erforderlichen Daten identifizieren, transformieren und generieren können. Python ist die treibende Kraft hinter einem Großteil der Forschung, Entwicklung und Bereitstellung unserer APIs und Toolkits. Aus der Benutzerperspektive helfen uns Pythons umfangreiche Bibliotheken und Frameworks (z. B. Scikit-learn und TensorFlow für maschinelles Lernen, Spacy für die Textverarbeitung und Numpy für die Datenexploration), seine Fähigkeit, komplexe Datenstrukturen zu verarbeiten, und seine schlüsselfertigen Integrationen dabei, die Benutzerfreundlichkeit und Erweiterbarkeit der Gretel-Plattform für jeden Workflow oder jedes Projekt sicherzustellen.

In diesem Beitrag beleuchten wir, wie wir – mit Unterstützung von Python – einen GAN-Standortgenerator erstellt haben, der Kartenbilder und Geolocation-Daten verwenden kann, um neue synthetische Trainingsdaten zu erstellen, die dem Modell helfen können, mit hoher statistischer Genauigkeit vorherzusagen, wo sich ein Mensch (oder in diesem Fall ein E-Bike) befinden könnte, für jeden beliebigen Ort auf der Welt. Dieser Proof of Concept zur Verbesserung von Vorhersagen durch die Kombination und Kontextualisierung verschiedener Datentypen hat Anwendungen in allen Branchen – wie die Verbesserung von medizinischen Diagnosen und Finanzmarktprognosen bis hin zum Aufbau realistischer Simulationen im Metaverse.

Wenn Sie dieses Experiment selbst ausprobieren möchten, sind alle Werkzeuge, Codes und Daten Open Source und auf GitHub verfügbar.

Ein Überblick über den Prozess

Die Generierung realistischer Standortdaten für Benutzer zum Testen oder für Simulationszwecke ist ein schwieriges Problem. Aktuelle Ansätze erstellen lediglich zufällige Standorte innerhalb einer Box, wodurch Benutzer in Wasserwegen oder auf Gebäuden platziert werden. Diese Unfähigkeit, genaue, synthetische Standortdaten zu erstellen, erstickt viele innovative Projekte, die vielfältige und komplexe Datensätze zur Unterstützung ihrer Arbeit benötigen.

Der Ansatz von Gretel besteht darin, dieses Problem zu modellieren, indem E-Bike-Standortdaten als Pixel in einem Bild kodiert und diese Daten dann als Bildübersetzungsaufgabe ähnlich wie CycleGAN, Pix2pix und StyleGAN trainiert werden. Für diese Studie haben wir das neuere kontrastive unbeaufsichtigte Übersetzung (FastCUT)-Modell verwendet, das von den Autoren von pix2pix und CycleGAN entwickelt wurde, da es speichereffizient, schnell im Training (d. h. nützlich für höher aufgelöste Standorte) und mit minimaler Parameterabstimmung gut generalisiert.

Der Ansatz

Für diese Fallstudie wollten wir testen, ob wir die Standorte von Scootern in einer Stadt genau vorhersagen können, indem wir ein GAN-Modell mit öffentlich zugänglichen E-Bike-Daten aus anderen Städten trainieren.

Um dies zu tun, speisten wir zunächst unser Modell mit Bilddaten verschiedener Stadtpläne, einschließlich DC, Denver und San Diego, und trainierten das Modell dann separat auf tabellarischen Daten von E-Bike-Standorten in diesen Städten, die auch Zeitreihendaten enthielten, die den Fluss des E-Bike-Verkehrs erfassten. Hier ist ein Beispiel dafür, wie die Rohdaten vor und nach der Kombination aussehen.

Erstellung von Kontextlernen durch Kombination von Zeitreihen- und Bilddaten

Dreistufiger Prozess

Es gab drei wesentliche Schritte zum Trainieren unseres Modells. Erstens haben wir die Trainingsdaten erstellt. Dazu erstellten wir eine Domäne A aus einem Korpus von genauen E-Bike-Standorten auf einer Karte und eine Domäne B aus denselben Karten, jedoch ohne Standorte.

Als nächstes trainierten wir unser FastCUT-Modell auf unseren neuen Trainingsdaten (die sowohl die gekennzeichneten als auch die unmarkierten Kartenbilder umfassen). Dies wurde erreicht, indem das Modell auf die Übersetzung von Domäne B → Domäne A trainiert wurde.

Zuletzt, nachdem unser anfängliches Modell trainiert war, generierten wir unseren synthetischen Datensatz, den wir dann verwendeten, um die Vorhersagen des Modells für realistische Benutzerstandorte für eine neue Stadtkarte weiter zu testen und zu optimieren. Dieser generative Prozess erforderte das Herunterladen neuer Karten für einen Zielort (Domäne C), dann das Ausführen von Inferenz auf dem FastCUT-Modell zur Vorhersage von Scooter-Standorten (mit anderen Worten, die Übersetzung von Domäne C → Domäne A) und schließlich die Verarbeitung dieser Bilder mit OpenCV-Python, um E-Bike-Standorte zu finden und sie dann in Geolocation-Datenpunkte (d. h. Längen-/Breitengrade) umzuwandeln. Mit diesen Informationen haben wir unseren synthetischen Standortdatensatz erstellt und sind bereit für Tests.

Die Ergebnisse: San Diego → San Francisco → Tokio

Mit unserem auf realen E-Bike-Daten aus San Diego trainierten Modell wiederholten wir den gleichen anfänglichen Prozess des Trainings unseres Modells mit Bilddaten aus verschiedenen US-Städten, baten unser Modell dann aber, die fehlenden E-Bike-Standortdaten vorherzusagen. Das Ergebnis waren Vorhersagen, die zu 90 % statistisch mit den genauen, realen Standorten der tatsächlichen Scooter korrelierten!

Mit anderen Worten, wir haben die Beziehungen dieser einzigartigen Datenattribute erfolgreich in einer völlig neuen Umgebung und zu einer ganz anderen Zeit projiziert. Vergleich von realen und synthetischen E-Bike-Standorten

Wir haben den gleichen Prozess und das gleiche Modell auch für die Stadt Tokio getestet, mit ähnlichen positiven Ergebnissen. Beachten Sie, dass je nach Standort der Stadt auf der Welt die physische Entfernung zwischen jedem Breiten- oder Längengrad erheblich variieren kann und wir ein ellipsoidbasiertes Modell verwenden müssen, um präzise Verschiebungen bei der Abbildung von Pixeln auf Standorte zu berechnen. Glücklicherweise erleichtert die geopy Python-Bibliothek dies. E-Bike-Standorte im Zentrum von Tokio vorhergesagt

Beim Betrachten der Daten für Tokio gab es einige eindeutige Falsch-Positive, insbesondere bei Standorten, die für Wasserwege generiert wurden. Möglicherweise würden weitere Modellabstimmungen oder die Bereitstellung von mehr negativen Beispielen für Wasserwege in den Trainingsdaten (Domäne A oder Domäne B) die Falsch-Positiven reduzieren. Die Ergebnisse sind jedoch ermutigend (angesichts geringer Modell- oder Datensatzabstimmungen), da das Modell scheinbar in der Lage ist, die Verteilungen und Standorte des E-Bike-Datensatzes, auf dem es trainiert wurde, mithilfe von Karten aus einem anderen Teil der Welt nachzuahmen.

Die wichtige Erkenntnis ist, dass dies ein Proof of Concept ist, dass Sie von überall und zu jeder Zeit genaue Vorhersagen auf synthetischen Standortdaten treffen können, da die zugrunde liegenden Attribute austauschbar sind (zumindest bei E-Bikes).

Schlussfolgerung

In diesem Beitrag haben wir experimentiert, indem wir Kontext aus der visuellen Domäne (z. B. Stadtpläne) zusammen mit tabellarischen Daten angewendet haben, um realistische Standortdaten für Städte auf der ganzen Welt zu erstellen. Diese aufregende Fallstudie hat weitreichende Auswirkungen auf die Entwicklung fortschrittlicher Softwareanwendungen und leistungsstarker KI/ML-Modelle in allen Branchen. Zum Beispiel könnten Gesundheitsdienstleister durch ähnliche maschinelle Lerntechniken eines Tages den Text von schriftlichen Arztbriefen zusammen mit Röntgenbildern schnell verarbeiten und dann sichere Versionen dieser Daten synthetisieren, die zur besseren Diagnose und Behandlung von Patienten verwendet werden können. Mit qualitativ hochwertigen synthetischen Daten (und ein wenig Python-Code) sind die Möglichkeiten endlos.

Probieren Sie das Experiment selbst aus und lassen Sie uns wissen, was Ihrer Meinung nach ein spannender Anwendungsfall für den FastCUT GAN-Standortgenerator wäre.

Über den Autor Alex Watson ist Mitbegründer und CPO von Gretel.ai, dem Entwicklerstack für synthetische Daten.