Generative Adversarial Networks: Wie mit Neuronalen Netzen Daten generiert werden können

Stephan Müller Blog, Data Science

Management Summary

Neuronale Netze haben sich in den letzten Jahren immer weiter zur Kerntechnologie im Bereich Machine Learning und AI entwickelt. Neben den klassischen Anwendungen der Daten-Klassifizierung und -Regression können sie auch dazu verwendet werden, neue, realistische Datenpunkte zu erzeugen. Die etablierte Modell-Architektur für die Datengenerierung sind sogenannte Generative Adversarial Networks (GANs). GANs bestehen aus zwei neuronalen Netzen, dem Generator- und dem Diskriminatornetzwerk. Die beiden Netzwerke werden iterativ gegeneinander trainiert. Hierbei versucht der Generator einen realistischen Datenpunkt zu erzeugen, während der Diskriminator lernt, echte und synthetische Datenpunkte zu unterscheiden. In diesem Minimax-Spiel verbessert der Generator seine Performance so weit, bis die erzeugten Datenpunkte nicht mehr von echten Datenpunkten zu unterscheiden sind.

Die Erzeugung synthetischer Daten mittels GANs hat eine Vielzahl von spannenden Anwendungsmöglichkeiten in der Praxis:

  1. Die Bild-Synthese
    Die ersten Erfolge von GANs wurden auf Basis von Bilddaten erreicht. Heute sind spezifische GAN-Architekturen fähig, Bilder von Gesichtern zu generieren, die kaum von echten unterscheidbar sind.
  2. Die Musik-Synthese
    Neben Bildern können GAN-Modelle auch verwendet werden, um Musik zu generieren. Im Bereich der Musik-Synthese wurden sowohl für das Erzeugen von realistischen Wellenformen als auch für die Generierung ganzer Melodien vielversprechende Resultate erreicht.
  3. Super-Resolution
    Ein weiteres Beispiel für den erfolgreichen Einsatz von GANs ist die Super-Resolution. Hierbei wird versucht, die Auflösung eines Bilds zu verbessern bzw. die Größe des Bildes verlustfrei zu erhöhen. Mittels GANs können schärfere Übergänge zwischen verschiedenen Bildbereichen als mit z.B. Interpolation erreicht und die allgemeine Bildqualität verbessert werden.
  4. Deepfakes
    Mittels Deepfake Algorithmen können Gesichter in Bildern und Videoaufnahmen durch andere Gesichter ersetzt werden. Dabei wird der Algorithmus auf möglichst vielen Daten der Zielperson trainiert. Danach kann damit die Mimik einer dritten Person auf die zu imitierende Person transferiert werden, und es entsteht ein „Deepfake“. 
  5. Generierung zusätzlicher Trainingsdaten
    GANs werden auch dazu verwendet, die im maschinellen Lernen oft nur in geringen Mengen verfügbaren Trainingsdaten zu vermehren (auch Augmentieren genannt). Dabei wird ein GAN auf dem Trainingsdatensatz kalibriert, damit anschließend beliebig viele, neue Trainingsbeispiele generiert werden können. Das Ziel ist, mit den zusätzlich generierten Daten die Performance bzw. Generalisierbarkeit von ML-Modellen zu verbessern.
  6. Anonymisierung von Daten
    Letztlich können mittels GANs auch Daten anonymisiert werden. Dies ist vor allem für Datensätze, die personenbezogene Daten enthalten, ein wichtiger Anwendungsfall. Der Vorteil von GANs gegenüber anderen Ansätzen zur Datenanonymisierung ist, dass die statistischen Eigenschaften des Datensets erhalten bleiben. Dies ist wiederum wichtig für die Performance anderer Machine Learning Modelle, die auf diesen Daten trainiert werden. Da das Verarbeiten von personenbezogenen Daten heute im Bereich des maschinellen Lernens eine große Hürde darstellt, sind GANs für die Anonymisierung von Datensätzen ein vielversprechender Ansatz und haben das Potential, für Firmen die Tür zur Verarbeitung personenbezogener Daten zu öffnen.

In diesem Artikel wird die Funktionsweise von GANs erläutert. Zudem werden Use Cases diskutiert, die mithilfe von GANs umgesetzt werden können, und aktuelle Trends vorgestellt, die sich im Bereich von generativen Netzwerken abzeichnen.

Einleitung

Die größten Fortschritte der letzten Jahre im Bereich der künstlichen Intelligenz wurden durch die Anwendung von neuronalen Netzen erzielt. Diese haben sich insbesondere bei der Verarbeitung von unstrukturierten Daten, wie Texten oder Bildern, als äußerst zuverlässiger Ansatz zur Regression und Klassifizierung erwiesen. Ein bekanntes Beispiel ist die Klassifizierung von Bildern in zwei oder mehr Gruppen. Auf dem sogenannten ImageNet-Datensatz [1] mit insgesamt 1000 Klassen erreichen Neuronale Netze eine Top-5 Accuracy von 98.7%. Das bedeutet, dass für 98.7% der Bilder die richtige Klasse in den fünf besten Modellvorhersagen enthalten ist. Auch im Bereich der natürlichen Sprachverabreitung wurden in den letzten Jahren bahnbrechende Resultate durch die Anwendung von neuronalen Netzen erzielt. Die Transformer-Architektur wurde beispielsweise sehr erfolgreich für verschiedene Sprachverarbeitungsprobleme wie Question-Answering, Named Entity Recognition und Sentimentanalyse verwendet.

Weniger bekannt ist, dass neuronale Netze auch dazu verwendet werden können die zugrundeliegende Verteilung einer Datenmenge zu erlernen, um somit neue, realistische Beispieldaten zu generieren. Als zielführende Modell-Architektur für diese Problemstellung haben sich in den letzten Jahren Generative Adversarial Networks (GANs) etabliert. Durch deren Anwendung ist es möglich, synthetische Datenpunkte zu erzeugen, die die gleichen statistischen Eigenschaften wie die zugrundeliegenden Trainingsdaten aufweisen. Dies eröffnet viele spannende Anwendungsfälle, von denen nachfolgend einige vorgestellt werden.

Generative Adversarial Networks

GANs sind eine neue Klasse von Algorithmen im Bereich des maschinellen Lernens. Wie zuvor erläutert, handelt es sich dabei um Modelle, die neue, realistische Datenpunkte generieren können, nachdem sie auf einem bestimmten Datensatz trainiert wurden. GANs bestehen im Kern aus zwei neuronalen Netzen, die für spezifische Tasks im Lernprozess zuständig sind. Der Generator ist dafür verantwortlich, einen zufällig generierten Input in ein realistisches Sample der zu lernenden Verteilung zu transformieren. Im Gegensatz dazu ist es die Aufgabe des Diskriminators, echte von generierten Datenpunkten zu unterscheiden.

Eine einfache Analogie ist das Wechselspiel eines Fälschers und eines Polizisten. Der Fälscher versucht möglichst realistische Münzfälschungen zu kreieren, während der Polizist die Fälschungen von echten Münzen unterscheiden will. Je besser die Nachbildungen des Fälschers sind, desto besser muss der Polizist die Münzen unterscheiden können, um die gefälschten Exemplare zu erkennen. Andererseits müssen die Fälschungen immer besser werden, da der Polizist mit seiner Erfahrung gefälschte Münzen zuverlässiger erkennen kann. Es ist einleuchtend, dass im Verlaufe dieses Prozesses sowohl der Fälscher als auch der Polizist in ihrer jeweiligen Aufgabe besser werden. Dieser iterative Prozess bildet auch die Grundlage für das Training der GAN-Modelle. Der Fälscher entspricht hier dem Generator, während der Polizist die Rolle des Diskriminators einnimmt.

Wie werden Generator- und Diskriminator-Netzwerke trainiert?

In einem ersten Schritt wird der Diskriminator fixiert. Das bedeutet, dass in diesem Schritt für das Diskriminatornetzwerk keine Anpassungen der Parameter vorgenommen werden. Für eine bestimmte Anzahl an Trainingsschritten wird dann der Generator trainiert. Der Generator wird, wie für neuronale Netze üblich, mittels Backpropagation trainiert. Sein Ziel ist, dass die aus dem zufälligen Input entstehenden „gefälschten“ Outputs von dem aktuellen Diskriminator als echte Beispiele klassifiziert werden. Es ist wichtig zu erwähnen, dass die Trainingsfortschritte vom aktuellen Stand des Diskriminators abhängen.

Im zweiten Schritt wird der Generator fixiert und ausschließlich der Diskriminator trainiert, indem er sowohl echte als auch generierte Beispiele mit entsprechenden Labels als Trainingsinput verarbeitet. Das Ziel des Trainingsprozesses ist, dass der Generator so realistische Beispiele zu erschaffen lernt, dass der Diskriminator sie nicht mehr von echten unterscheiden kann. Zum besseren Verständnis ist der GAN-Trainingsprozess in der Abbildung 1 schematisch abgebildet.

Abbildung 1 – Architektur eines GANs

Herausforderungen des Trainingsprozesses

Aufgrund der Natur des alternierenden Trainingsprozesses können verschiedene Probleme beim Training eines GANs auftreten. Eine häufige Herausforderung ist, dass das Feedback des Diskriminators schlechter wird, je besser der Generator im Verlauf des Trainings wird.

Man kann sich den Prozess folgendermaßen vorstellen: Wenn der Generator Beispiele generieren kann, die von echten Beispielen nicht mehr unterscheidbar sind, bleibt dem Diskriminator nichts anderes übrig, als zu raten aus welcher Klasse das jeweilige Beispiel stammt. Wenn man also das Training nicht rechtzeitig beendet, ist es möglich, dass die Qualität des Generators und des Diskriminators aufgrund der zufälligen Rückgabewerten des Diskriminators wieder abnimmt.

Ein weiteres häufig auftretendes Problem ist der sogenannte „Mode-Collapse“. Dieser tritt auf, wenn das Netzwerk anstatt die Eigenschaften der zugrundeliegenden Daten zu lernen, sich einzelne Beispiele dieser Daten merkt oder nur Beispiele mit geringer Variabilität generiert. Einige Ansätze, um diesem Problem entgegenzuwirken, sind das Verarbeiten mehrerer Beispiele gleichzeitig (in Batches) oder das simultane Zeigen vergangener Beispiele, damit der Diskriminator mangelnde Unterscheidbarkeit der Beispiele quantifizieren kann.

Use Cases für GANs

Die Erzeugung von synthetischen Daten mittels GANs hat eine Vielzahl von spannenden Anwendungsmöglichkeiten in der Praxis. Die ersten eindrucksvollen Resultate von GANs wurden auf Basis von Bilddaten erreicht, dicht gefolgt von der Generierung von Audiodaten. In den letzten Jahren wurden GANs jedoch auch erfolgreich auf andere Datentypen, wie tabellarische Daten, angewendet. Im Folgenden werden ausgewählte Anwendungen vorgestellt.

1.    Die Bild-Synthese

Eine der bekanntesten Anwendungen von GANs ist die Bild-Synthese. Hierbei wird ein GAN auf Basis eines großen Bilddatensatzes trainiert. Dabei erlernt das Generatornetzwerk die wichtigen gemeinsamen Merkmale und Strukturen der Bilder. Ein Beispiel ist die Generierung von Gesichtern. Die Portraits in der Abbildung 2 wurden mittels speziellen GAN-Netzwerken erzeugt, die für Bilddaten optimierte Faltungsnetzwerke, „Convolutional Neural Networks“ (CNN), verwenden. Natürlich können auch andere Arten von Bildern mittels GANs erzeugt werden, wie zum Beispiel handgeschriebene Zeichen, Fotos von Gegenständen oder Häusern. Die grundlegende Voraussetzung für gute Resultate ist ein ausreichend großer Datensatz.

Ein praktischer Anwendungsfall dieser Technologie findet sich im Online Retail. Hier werden mittels GAN Fotos von Models in spezifischen Kleidungsstücken oder bestimmten Posen erzeugt.

Abbildung 2 – GAN-generierte Gesichter

2.    Die Musik-Synthese

Im Gegensatz zur Erzeugung von Bildern beinhaltet die Musik-Synthese eine temporale Komponente. Da Audio-Wellenformen sehr periodisch sind und das menschliche Ohr sehr empfindlich gegen Abweichungen dieser Wellenformen ist, hat die Erhaltung der Signalperiodizität einen hohen Stellenwert für GANs, die Musik generieren. Dies hat zu GAN-Modellen geführt, die anstatt der Wellenform die Magnituden und Frequenzen des Tons generieren. Beispiele für GANs zur Musiksynthese sind das GANSynth [3], welches für das Generieren von realistischen Wellenformen optimiert ist, und das MuseGAN [4] –  seinerseits spezialisiert auf das Generieren von ganzen Melodiesequenzen. Im Internet finden sich diverse Quellen, die von GANs erzeugte Musikstücke präsentieren. [5, 6]  Es ist zu erwarten, dass GANs in den nächsten Jahren für eine hohe Disruption in der Musikbranche führen werden.

Die Abbildung 3 zeigt Ausschnitte der vom MuseGAN generierten Musik für verschiedene Trainingsschritte. Zu Beginn des Trainings (step 0) ist der Output rein zufällig und im letzten Schritt (step 7900) erkennt man, dass z.B. der Bass eine typische Basslinie spielt und die Streicher vorwiegend gehaltene Akkorde spielen.

Abbildung 3 – MuseGAN Trainingsverlauf

3.    Die Super-Resolution

Der Prozess der Wiedergewinnung eines hochauflösenden Bildes aus einem tiefer aufgelösten Bild heißt Super-Resolution. Die Schwierigkeit hierbei besteht darin, dass es sehr viele mögliche Lösungen für die Wiederherstellung des Bildes gibt.

Ein klassischer Ansatz für Super-Resolution ist Interpolation. Dabei werden die für die höhere Auflösung fehlenden Pixel mittels einer vorgegebenen Funktion von den benachbarten Pixeln abgeleitet. Dabei gehen aber typischerweise viele Details verloren und die Übergänge zwischen verschiedenen Bildteilen verschwimmen. Da GANs die Hauptmerkmale von Bilddaten gut erlernen können, sind sie auch für das Problem der Super-Resolution ein geeigneter Ansatz. Dabei wird für das Generator-Netzwerk nicht mehr ein zufälliger Input verwendet, sondern das niedrigaufgelöste Bild. Der Diskriminator lernt dann generierte Bilder höherer Auflösung von den echten Bildern höherer Auflösung zu unterscheiden. Das trainierte GAN-Netzwerk kann dann auf neuen tief aufgelösten Bildern verwendet werden.

Ein State of the Art GAN für Super-Resolution ist das SRGAN [7]. In der Abbildung 4 sind die Resultate für verschiedene Super-Resolution-Ansätze für ein Beispielbild abgebildet. Das SRGAN (zweites Bild von rechts) liefert das schärfste Resultat. Besonders Details wie Wassertropfen oder die Oberflächenstruktur des Kopfschmucks werden vom SRGAN erfolgreich rekonstruiert.

Abbildung 4 – Beispiel Super-Resolution für 4x Upscaling (von links nach rechts: bikubische Interpolation, SRResNet, SRGAN, Originalbild)

4.    Deepfakes: Audio und Video

Mittels Deepfake-Algorithmen können Gesichter in Bildern und Videoaufnahmen durch andere Gesichter ersetzt werden. Die Resultate sind mittlerweile so gut, dass die Deepfakes nur schwer von echten Aufnahmen unterschieden werden können. Um einen Deepfake herzustellen wird wird der Algorithmus zunächst auf möglichst vielen Daten der Zielperson trainiert, damit anschließend die Mimik einer dritten Person auf die zu imitierende Person transferiert werden kann. In der Abbildung 5 sehen Sie den Vorher-nachher-Vergleich eines Deepfakes. Dabei wurde das Gesicht des Schauspielers Matthew McConaughey (Bildausschnit aus dem Film „Interstellar“) (links) durch das Gesicht des Tech-Unternehmers Elon Musk ersetzt (rechts).

Diese Technik lässt sich beispielsweise auch auf Audiodaten anwenden. Dabei wird das Modell auf eine Zielstimme trainiert, um dann die Stimme in der Originalaufnahme durch die Zielstimme zu ersetzen.

Abbildung 5 – Deepfake Sample Images

5.    Generierung zusätzlicher Trainingsdaten

Um tiefe neuronale Netze mit vielen Parametern trainieren zu können, werden i.d.R. sehr große Datenmengen benötigt. Oft ist es nur schwer oder gar nicht möglich, an eine ausreichend große Datenmengen zu gelangen oder diese zu erheben. Ein Ansatz, um auch mit weniger Daten ein gutes Resultat zu erzielen, ist die Data Augmentation. Dabei werden die vorhandenen Datenpunkte leicht abgeändert, um somit neue Trainingsbeispiele zu kreieren. Häufig wird dies bspw. im Bereich von Computer Vision angewendet, indem Bilder rotiert oder mittels Zoom neue Bildausschnitte abgeleitet werden. Ein neuerer Ansatz für Data Augmentation ist das Verwenden von GANs. Die Idee ist, dass GANs die Verteilung der Trainingsdaten erlernen und somit theoretisch unendlich viele neue Beispiele generiert werden können. Für die Erkennung von Krankheiten auf Tomographie-Bildern wurde dieser Ansatz beispielsweise erfolgreich umgesetzt [9]. GANs können also dazu verwendet werden, neue Trainingsdaten für Probleme zu generieren, bei denen nicht genügend große Datenmengen für das Training vorhanden sind.

In vielen Fällen ist das Erheben größerer Datenmengen auch mit erheblichen Kosten verbunden, insbesondere dann, wenn die Daten für das Training manuell gekennzeichnet werden müssen. In diesen Situationen können GANs verwendet werden, um die anfallenden Kosten einer zusätzlichen Datenakquise zu reduzieren.

Ein weiteres technisches Problem beim Training von Machine Learning Modellen, bei dem GANs Abhilfe schaffen können, sind Imbalanced Datasets. Dabei handelt es sich um Datensätze mit verschiedenen Klassen, die unterschiedlich häufig repräsentiert sind. Um mehr Trainingsdaten der unterrepräsentierten Klasse zu erhalten, kann man für dieser Klasse ein GAN trainieren, um weitere synthetisch generierte Datenpunkte zu erzeugen, die dann im Training verwendet werden. Beispielsweise gibt es deutlich weniger Mikroskop-Aufnahmen von krebsbefallenen Zellen als von gesunden. GANs ermöglichen in diesem Fall, bessere Modelle zur Erkennung von Krebszellen zu trainieren und können so Ärzte bei der Krebsdiagnose unterstützen.

6.    Anonymisierung von Daten

Ein weiterer interessanter Anwendungsbereich von GANs ist die Anonymisierung von Datensätzen. Klassische Ansätze für die Anonymisierung sind das Entfernen von Identifikator-Spalten oder das zufällige Ändern ihrer Werte. Resultierende Probleme sind bspw., dass mit entsprechendem Vorwissen trotzdem Rückschlüsse auf die Personen hinter den personenbezogenen Daten gezogen werden können. Auch die Änderung der statistischen Eigenschaften des Datensatzes durch das Fehlen oder Abändern bestimmter Informationen kann den Nutzen der Daten schmälern. GANs können auch dazu verwendet werden, anonymisierte Datensätze zu generieren. Sie werden dabei so trainiert, dass die persönlichen Daten im generierten Datensatz nicht mehr identifiziert, aber Modelle trotzdem ähnlich gut damit trainiert werden können [10]. Erklären kann man diese gleichbleibende Qualität der Modelle damit, dass die zugrundeliegenden statistischen Eigenschaften des ursprünglichen Datensatzes von dem GAN gelernt, und somit auch erhalten werden.

Anonymisierung mithilfe von GANs kann neben tabellarischen Daten auch spezifisch für Bilder angewendet werden. Dabei werden Gesichter oder andere persönliche Merkmale/Elemente auf dem Bild durch generierte Varianten ersetzt. Dies erlaubt, Computer Vision Modelle mit realistisch aussehenden Daten zu trainieren, ohne mit Datenschutzproblemen konfrontiert zu werden. Oft wird die Qualität der Modelle deutlich schlechter, wenn wichtige Merkmale eines Bilds, wie beispielsweise ein Gesicht, verpixelt oder weichgezeichnet in den Trainingsprozess einbezogen werden.

Fazit und Ausblick

Durch die Anwendung von GANs kann die Verteilung von Datensätzen beliebiger Art gelernt werden. Wie oben erläutert werden GANs bereits auf verschiedenste Problemstellungen erfolgreich angewendet. Da GANs erst 2014 entdeckt wurden und großes Potential bewiesen haben, wird aktuell sehr intensiv daran geforscht. Die Lösung der oben erwähnten Probleme beim Training, wie z.B. „Mode-Collapse“, sind in der Forschung weit verbreitet. Es wird unter anderem an alternativen Loss-Funktionen und allgemein stabilisierenden Trainingsverfahren geforscht. Ein weiteres aktives Forschungsgebiet ist die Konvergenz von GAN-Netzwerken. Aufgrund der Fortschritte des Generators und Diskriminators während des Trainingsprozesses ist es sehr wichtig, zum richtigen Zeitpunkt das Training zu beenden, um den Generator nicht weiter auf schlechten Diskriminator-Ergebnissen zu trainieren. Um das Training zu stabilisieren, wird zudem an Ansätzen geforscht, die Diskriminator-Inputs mit Rauschen versehen, um die Anpassung des Diskriminators während des Trainings zu limitieren.

Ein modifizierter Ansatz zur Generierung neuer Trainingsdaten sind Generative Teaching Networks. Dabei wird der Fokus des Trainings nicht primär auf das Erlernen der Datenverteilung gelegt, sondern man versucht direkt zu lernen, welche Daten das Training am schnellsten vorantreiben, ohne zwingend Ähnlichkeit mit den Originaldaten vorzuschreiben. [11] Am Beispiel von handgeschriebenen Zahlen konnte gezeigt werden, dass neuronale Netzwerke mit diesen künstlichen Inputdaten schneller lernen können als mit den Originaldaten. Dieser Ansatz lässt sich auch auf andere Datenarten als Bilddaten anwenden. Im Bereich der Anonymisierung ist man bisher imstande, Teile eines Datensatzes mit Persönlichkeitsschutzgarantien zuverlässig zu generieren. Diese Anonymisierungsnetzwerke können weiterentwickelt werden, um mehr Typen von Datensätzen abzudecken.

Im Bereich von GANs werden sehr schnell theoretische Fortschritte gemacht, die bald den Weg in die Praxis finden werden. Da das Verarbeiten von personenbezogenen Daten heute im Bereich des maschinellen Lernens eine große Hürde darstellt, sind GANs für die Anonymisierung von Datensätzen ein vielversprechender Ansatz und haben das Potenzial, für Unternehmen die Tür zur Verarbeitung personenbezogener Daten zu öffnen.

Quellen

  1. http://www.image-net.org/
  2. https://arxiv.org/abs/1710.10196
  3. https://openreview.net/pdf?id=H1xQVn09FX
  4. https://arxiv.org/abs/1709.06298
  5. https://salu133445.github.io/musegan/results
  6. https://storage.googleapis.com/magentadata/papers/gansynth/index.html
  7. https://arxiv.org/abs/1609.04802
  8. https://github.com/iperov/DeepFaceLab
  9. https://arxiv.org/abs/1803.01229
  10. https://arxiv.org/abs/1806.03384
  11. https://eng.uber.com/generative-teaching-networks/
Über den Autor
Stephan Müller

Stephan Müller

I am a data scientist at STATWORX and I am fascinated by the mathematical machinery which Machine Learning algorithms rely on. My life outside work revolves around sports, in particular field hockey, swimming and running.

ABOUT US


STATWORX
is a consulting company for data science, statistics, machine learning and artificial intelligence located in Frankfurt, Zurich and Vienna. Sign up for our NEWSLETTER and receive reads and treats from the world of data science and AI. If you have questions or suggestions, please write us an e-mail addressed to blog(at)statworx.com.