Was ist Synthetic Data? Definition und Beispiele

Synthetic Data sind künstlich erzeugte Daten die nicht aus echten Quellen stammen, sondern durch Programme erzeugt wurden. Meist werden synthetische Daten für den Einsatz in Softwareprogrammierung, Analysen oder dem Training von Machine Learning eingesetzt. 

Inhaltsverzeichnis

Definition von Synthetic Data: Künstliche Daten für künstliche Intelligenz

Synthetische Daten sind Datensätze, die künstlich generiert werden und nicht auf echten Messungen oder Datenerhebungen beruhen. Diese erzeugten Daten stammen meist aus Simulationen oder werden spezifisch für Datenauswertungen, vor allem im Bereich Machine Learning, generiert. Aber auch Daten aus synthetischer Musik oder Flugsimulatoren fallen in die Kategorie “Synthetic Data”.

Synthetische Daten können auf viele Arten generiert werden. Das einfachste Prinzip ist eine manuelle Kreation, zum Beispiel um Software zu testen. Entsprechend fortgeschrittener sind regelbasierte Modelle, die sich an Datenbanken bedienen oder on-the-fly Daten generieren (“partially synthetic data”).

Die künstlichen Daten sind jedoch am wertvollsten, wenn sie nicht aus vorher festgelegten Werten erzeugt sondern tatsächlich neu generiert werden(“fully synthetic data”). Dies setzt statistische Modelle (z.B. Verteilungen), besser noch ein Deep Learning Netz, das variable Daten (z.B. Bilder oder Videos) erzeugt, voraus. Diese Art von Daten werden basierend auf vorher definierten statistischen Verteilungen oder dem Trainingsinput des Neuronalen Netzes erzeugt und sind somit komplett neu geschaffene Informationen.

Einfach gesagt sind Synthetic Data Inhalte, die algorithmisch erzeugt wurden. Diese synthetischen Daten werden dann in einer Vielzahl an Anwendungen eingesetzt. Machine Learning / Deep Learning, das Testen von Software, die Weitergabe von anonymisierten personenbezogenen Daten oder Datenmodelle zu bedienen sind alles häufige Einsatzzwecke von künstlichen Daten.

Vorteile und Einsatz von synthetischen Daten

Es gibt mehrere Gründe, weshalb man künstlich generierte Daten einsetzen möchte:

  • Geringe Menge an realen Daten: Hat man nur eine geringe Menge an realen Daten einer bestimmten Kategorie, kann dies gegebenenfalls zu wenig für bestimmte Anwendungen sein. Zum Beispiel das Testen von Event Streaming Infrastructure lässt sich schwierig mit einzelnen Geräten testen. Daher werden oft synthetische Daten in Form von einfachen Generierungen genutzt, um die Architektur einem Lastentest zu unterziehen.
  • Vertrauliche Daten: Ein besonderes Beispiel sind die Weitergabe und/oder Analyse von vertraulichen, besonders auch personenbezogenen Daten. Durch DSGVO und andere Initiativen ist die Hemmschwelle, kritische Daten weiterzugeben, gestiegen. Um dennoch Analysen zu erlauben, kann Synthetic Data helfen. Reale Daten werden entweder durch künstliche Daten ersetzt, ergänzt oder erweitert und bilden somit eine Analysebasis, beinhalten aber nicht die kritischen Informationen.
  • Transferlernen für Machine Learning Modell: Transferlernen im Bereich Machine Learning bedeutet, dass Modelle auf einen Datensatz trainiert, dann aber auf einen anderen angewandt werden. Dies ist eines der Hauptanwendungsgebiete für Synthetic Data. Es werden entweder aufgrund des mangelnden Umfangs oder des schwierigen Zugriffs auf vorhandene Daten synthetische Daten eingesetzt.
  • Menge und Dauer der Datenerzeugung: Wenn eine synthetische Datenerzeugung aufgesetzt wurde, ist es ein leichtes sehr große Mengen an Daten in sehr schneller Zeit zu generieren. Somit kann sehr flexibel auf sich ändernde Situationen reagiert werden und/oder mehrere Datensätze eingesetzt werden.
  • Machine Learning Labeling: Supervised Machine Learning benötigt Labels, um Vorhersagen zu treffen. Derartige Annotationen zu generieren ist meist jedoch sehr aufwendig und kostspielig, so es von Menschen gemacht wird. Eine Lösung dafür sind entweder Self-Supervised Learning Algorithmen, eine andere der Einsatz von Synthetic Data, um mit den erzeugten Daten direkt die dazugehörigen Labels mitzuliefern.
  • Erhöhung der Varianz von Daten: Overfitting ist ein klassisches Problem in der statischen Modellierung. Durch den Einsatz von synthetischen Daten kann die Varianz im Training erhöht und somit Overfitting vermieden werden.

Beispiele für Synthetic Data

Mehrere Menschen blicken auf Bildschirme
Generative Neuronale Netzwerke, Veränderung von personenbezogenen Daten oder Schutz vor Overfitting sind nur drei Beispiele für den Einsatz von Synthetic Data.

Im Folgenden einige Beispiele, wie synthetic data erzeugt oder eingesetzt werden. Wir versuchen hier eine Bandbreite an Einssatzzwecken aufzuzeigen, jedoch gibt es selbstverständlich wesentlich mehr als nur diese:

  • Artificial face generation: Unter https://thispersondoesnotexist.com/ findet man einen auf GANs (General Adversial Neural Networks) basierenden Generator für Gesichter. Keiner der dort gezeigten Menschen existiert wirklich, sondern alle wurden synthetisch erzeugt. Ein sehr gutes praktisches Beispiel für Synthetic Data.
  • Personenbezogene Daten: Oft werden personenbezogene Daten anonymisiert, bevor die Daten weitergereicht oder weiterverarbeitet werden. Dadurch verliert man jedoch meist einen großen Teil an Informationen. Ein Alternativweg kann sein, dass man basierend auf den realen Daten ein Modell erschafft, das synthetische Daten zu den jeweiligen Einträgen erfasst. 
  • Objektveränderungen gegen Overfitting: Im Bereich Object Recognition / Object Classification ist oft ein Mangel an Trainingsmaterial ein großes Thema. Zum Beispiel hat man nicht eine riesige Auswahl an Autos in allen Farbspektren, es fehlen Daten bei denen bestimmte Teile des Autos dreckig oder verdeckt sind oder die Belichtungsbedingungen sind nicht komplett. Daher wird hier oft durch Bildveränderungen Synthetic Data erzeugt, die zusätzlich zu den Originaldaten im Training eingesetzt werden, um Overfitting zu vermeiden.

Weitere Informationen

Video zum Thema Synthetic Data und dessen Historie

Synthetic Data mit python / Pandas erzeugen