Generative Adversarial Networks: Wenn künstliche Intelligenz künstliche Daten erschafft

Machine Learning basiert auf dem Training von KI-Systemen mit großen Datenmengen. Nach der Analyse vieler Trainingsdaten können neuronale Netze die von ihnen „erlernten“ Entscheidungswege auf neue Input-Daten anwenden und so beispielsweise den Inhalt von Bildern erkennen und klassifizieren. Doch es gibt auch ein anderes, nicht minder spannendes Anwendungsfeld: Künstliche Intelligenz kann auch ganz neue Daten erzeugen – und ermöglicht damit wiederum spezielle Funktionen vor allem in der Bild- und Videobearbeitung. Wir schauen genauer hinter die Kulissen von „Generative Adversarial Networks“.

Aufmacherbild: „Kaleidoskop“, (C) dp792 via Pixabay

Autor: Stefan Achleitner

Maschinelles Lernen ist die aktuell am weitesten verbreitete Art von künstlicher Intelligenz. Die damit realisierten Funktionen und Werkzeuge können den Anwendern großen praktischen Nutzen bieten – Beispiele dafür sind etwa die automatische Ergänzung von Texten beim Tippen von Kurznachrichten oder viele Arten von Bilderkennung. Ebenso können sie jedoch auch eher umstrittenen Zwecken dienen – zum Beispiel der Vorhersage von Nutzerverhalten oder Einkaufsvorlieben.

Das steckt hinter Generative Adversarial Networks

Mit Algorithmen für maschinelles Lernen beschäftigte sich die Wissenschaft schon in den 1970er Jahren, teilweise sogar noch früher. Was dieser Technik in den letzten Jahren aber zum Durchbruch verholfen hat, ist die große Menge an Daten die zur Verfügung steht, um die Systeme zu trainieren. Doch neben der Klassifizierung oder Gruppierung von Datensätzen mit Machine-Learning-Algorithmen kann KI auch neue, künstliche Daten erzeugen. Das ist die Funktion sogenannter „Generative Adversarial Networks” (GAN) .

Anwendungen dafür finden sich vor allem in der Bild- und Videobearbeitung. Zum Beispiel wenn die Software nach Ausschneiden einer störenden Person oder eines Objekts im Vordergrund den Hintergrund „rekonstruieren“ soll. Dazu muss sie ja Inhalte erzeugen, die von der Kamera überhaupt nicht aufgenommen wurden – weil sie in der tatsächlichen Aufnahmesituation verdeckt waren. In solchen Fällen erzeugt die Software jedoch nicht völlig neuartige Daten. Sondern solche,  die einem schon existierenden Datensatz statistisch ähnlich sind.

Zwei neuronale Netze im Wechselspiel

„Generative Adversarial Networks” bestehen aus zwei neuronalen Netzwerken, die sozusagen ein Spiel miteinander spielen: Das erste Netzwerk heißt „Generator Network“ und erzeugt Daten – zum Beispiel ein Bild, das am Anfang nur aus zufällig statistischem Rauschen besteht. Das zweite neuronale Netzwerk nennt man „Discriminator Network“. Es analysiert die vom ersten Netzwerk generierten Daten. Um diese Daten bewerten zu können, trainieren die Programmierer das „Discriminator Network“ zuvor mit echten Daten.

Ein Datensatz, der häufig zur Demonstration von solchen Systemen dient, ist der „MNIST“-Datensatz (Modified National Institute of Standards and Technology Database) – siehe nachfolgendes Bild. Er enthält eine Reihe von Bildern von handgeschriebenen Nummern. Mit diesen lässt sich wiederum ein neuronales Netzwerk – in unserem Fall das „Discriminator Network“ – trainieren, um handgeschriebene Nummern klassifizieren zu können.

Der als Trainingsdaten genutzte „MNIST“-Datensatz.

Das Ziel des „Discriminator Networks“ ist nun, zu erkennen, ob ein Bild echt (real) oder gefälscht (fake) ist. Die Aufgabe des „Generator Networks” ist es, Bilder zu erzeugen, die das „Discriminator Network” als echt anerkennt – obwohl sie ja eigentlich gefälscht sind, also künstlich erzeugt wurden. Das nachfolgende Bild verdeutlicht das Prinzip.

So arbeiten Generator und Discriminator Network in „Generative Adversarial Networks“ (GAN) zusammen. 
So arbeiten Generator und Discriminator Network in einem „Generative Adversarial Network“ (GAN) zusammen. Quelle: medium.com

Wie schon gesagt, erzeugt der Generator zu Beginn nur zufällige Daten – weshalb er durch Feedback vom Discriminator trainiert werden muss.  Beide neuronalen Netzwerke arbeiten nun zusammen, wobei aber der Discriminator-Teil fix bleibt und nur der Generator-Teil durch das Training dazu lernt.

Nur das Generator-Network des „Generative Adversarial Networks” wird trainiert, das Discriminator-Network bleibt unverändert. Quelle: <a href="https://medium.com/activating-robotic-minds/understanding-generative-adversarial-networks-4dafc963f2ef">medium.com</a>
Nur das Generator-Network des „Generative Adversarial Networks” wird trainiert, das Discriminator-Network bleibt unverändert. Quelle: medium.com

Wiederholt man diesen Prozess in vielen Iterationen, werden die erzeugten Bilder immer besser. Irgendwann erkennt sie der Discriminator als echt.

Ein Beispiel zum selbst ausprobieren

Wer sich mit der KI-Programmiersprache Python auskennt, kann dies einmal recht einfach selbst ausprobieren. Auf Github findet sich ein Programmcode, in dem das beschriebene System implementiert ist: Nach nur wenigen Minuten Training werden die erzeugten Bilder immer genauer und echten Bildern sehr ähnlich.

Das folgende Bild zeigt verschiedene Stadien des Trainingsprozesses für ein künstlich erzeugtes Bild mit der handgeschriebenen Nummer 1.

Nach rund 10000 Iterationen hat das experimentelle KI-System selbstständig eine handgeschriebene Nummer 1 erzeugt.

Wie zu sehen ist, steht am Anfang des Prozesses nur zufälliges Rauschen, mit jeder Iteration wird das Bild immer besser. Das Endergebnis in der gezeigten Seqeunz  ergab sich nach etwa 10000 Iterationen. Ein Tipp, falls jemand den verlinkten Programmcode ausführen möchte: Beim Autor hat das nur unter Linux (Ubuntu 18.04) funktioniert, jedoch nicht unter Windows 10.

Vielversprechende Technologie für viele weiterführende Anwendungen

Das beschriebene Verfahren lässt sich auch für andere Anwendungen nutzen – das nachfolgende Bild zeigt zum Beispiel die Konstruktion von Objektumrissen durch ein GAN. Auch solche Funktionen, die sich in modernen Bildbearbeitungs-Programmen finden, basieren häufig auf KI.

Anwendungen für „Generative Adversarial Networks" finden sich zum Beispiel in modernen Bildbearbeitungsprogrammen.
Anwendungen für „Generative Adversarial Networks“ finden sich zum Beispiel in modernen Bildbearbeitungsprogrammen.

Der Erfinder von Generative Neural Networks ist Ian Goodfellow. Er arbeitete bei Google und OpenAI und ist mittlerweile bei Apple beschäftigt. In einem sehenswerten Vortrag auf der NIPS-Konferenz 2016 (das Kürzel NIPS steht für „Neural Information Processing Systems“) erklärt Ian die genaue Funktion von GANs:

Wer sich noch tiefer in die Thematik einlesen möchte, kann sie auch gut in einem von Ian Goodfellow verfassten Paper nachvollziehen.

Die Beispiele, die Ian in seinem Vortrag nennt, zeigen aber auch:  Bei der Weiterentwicklung von GANs gibt es noch eine Menge zu tun. Dennoch ist die Erzeugung künstlicher Daten durch KI-Systeme eine sehr vielversprechende Technologie, von der wir in Zukunft bestimmt noch oft hören dürften.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.