Generative Adversarial Networks: Die kreative Seite von Machine Learning
Die rapide Entwicklung von künstlicher Intelligenz (KI, oder englisch AI für Artificial Intelligence) lässt Maschinen immer cleverer werden. Seit sie die Möglichkeit haben, sich auf Grundlage von Daten, mit denen sie gefüttert werden, selbstständig weiterzuentwickeln, schaffen Maschinen neue Wege, uns mit dem Ausführen immer komplexerer Aufgaben zu unterstützen.
Eine Lösung, die sehr vielversprechend ist und bereits jetzt in verschiedenen Bereichen beeindruckende Ergebnisse liefert, sind die so genannten Generative Adversarial Networks (GANs). GANs werden vor allem in der Generierung von Bildern verwendet, ermöglichen aber auch das automatische Erstellen von Texten. Aber was sind GANs überhaupt? Wie funktionieren sie? Und wie können wir sie sinnvoll einsetzen?
Was ist ein GAN?
Bevor wir uns damit beschäftigen, was GANs alles für uns tun können, wollen wir einen Blick darauf werfen, was Generative Adversarial Networks überhaupt sind.
Es handelt sich dabei um ein Machine-Learning-System, das im Jahr 2014 von einem Team um Ian Goodfellow entwickelt wurde. Die Aufgabe eines GANs ist es, basierend auf einer Reihe von realen Beispieldaten eigene Kreationen zu erstellen. Diese sollen so täuschend echt sein, dass man den computergenerierten Bildern nicht ansieht, dass hier kein Mensch aktiv war. Um das zu leisten, werden zwei neurale Netzwerke eingesetzt, die miteinander konkurrieren.
Die Aufgabe des Generator-Netzwerks ist es, eine Fälschung zu erzeugen. Das Netzwerk wird mit Daten – z. B. Fotos von Frauen – angefüttert. Auf Basis dieser Informationen erstellt es dann ein eigenes Foto. Dafür lernt das Netzwerk erst, was die gemeinsamen Eigenschaften der Originale sind. Das neue Bild ist also keine Doppelung eines der Quelldaten, sondern ein komplett neu generiertes Werk, dass sich aber in der Art ähnelt – also in unserem Beispiel das Foto einer (nichtexistierenden) Frau repräsentiert.
Die Basisdaten und die generierte Information werden zusammen an das Partnernetzwerk gegeben. Aufgabe des Discriminator-Netzwerks ist es, alle Daten, die es erhält, daraufhin zu überprüfen, ob sie echt oder gefälscht sind. Ein Bild wird nicht nur dann als gefälscht eingestuft, wenn es zu stark von den Basisdaten abweicht, sondern auch, wenn es zu perfekt ist: Sollte der Generator einfach aus allen Daten einen Mittelwert ziehen und daraus ein neues Werk erstellen, sieht man diesem die maschinelle Erstellung an. Der Discriminator filtert also auch solche Daten heraus, die nicht natürlich wirken.
Beide Netzwerke versuchen, sich gegenseitig auszuspielen. Wenn das Discriminator-Netzwerk den gefälschten Datensatz erkennt, gibt es die Daten wieder zurück. Das Generator-Netzwerk ist in diesem Fall noch nicht gut genug und muss daher weiter lernen. Gleichzeitig hat aber auch der Discriminator dazugelernt. Da sich die beiden neuralen Netzwerke gegenseitig trainieren, haben wir es hier mit deinem Deep-Learning-System zu tun. Der Generator versucht, Datensätze zu generieren, die so echt wirken, dass sie der Discriminator als echt einstuft. Der Discriminator auf der anderen Seite versucht, die echten Beispiele so genau zu analysieren und zu verstehen, dass falsche Daten keine Chance haben, als echt identifiziert zu werden.
Wie funktionieren GANs?
Wie jede künstliche Intelligenz müssen auch GANs trainiert werden, um ihre Arbeit so gut wie möglich tun zu können. Diese Form von Machine Learning erfolgt in sechs Schritten:
- Problemdefinition: Im ersten Schritt muss ein Problem definiert werden, das das System lösen soll. Dazu müssen die Entwickler echte Daten sammeln, die das System nutzen kann.
- Architektur: Verschiedene Problemstellungen erfordern auch verschiedene Generative Adversarial Networks. Daher muss das GAN eine passende Architektur für den jeweiligen Einsatz bekommen.
- Erstes Discriminator-Training: In diesem Schritt beginnt das eigentliche Training. Der Generator wird gestoppt; das Discriminator-Netzwerk analysiert lediglich die echten Daten und lernt diese zu verstehen.
- Erstes Generator-Training: Jetzt wird der Discriminator gestoppt und der Generator beginnt, gefälschte Daten zu generieren.
- Zweites Discriminator-Training: Hier wird das Discriminator-Netzwerk nun mit den neuen, gefälschten Daten des Generators gefüttert und muss entscheiden, welche Daten es für echt und welche für falsch hält.
- Zweites Generator-Training: Das Generator-Netzwerk wird mit dem Ergebnis des zweiten Discriminator-Trainings weiter verbessert. Das Generator-Netzwerk lernt hier die Schwachstellen des Discriminators kennen und versucht, diese auszunutzen und noch realistischere gefälschte Datensätze zu generieren.
Beide Netzwerke entwickeln sich durch den Wettbewerb immer weiter und werden so besser und effizienter. Das Generator-Netzwerk lernt, immer realistischere Datensätze zu entwickeln. Das Discriminator-Netzwerk lernt, auch täuschend echte Datensätze als falsch zu identifizieren.
Welche Herausforderungen muss das System bewältigen?
Wie bei fast allen Technologien stehen Entwickler auch bei GANs vor einigen Herausforderungen, die es zu lösen gilt, um einen reibungslosen Ablauf des Trainings zu gewährleisten.
Ein ausgeglichener Wettbewerb
Wie ausgeführt, liegt den GANs der Wettbewerb zweier neuraler Netzwerke zugrunde. Der kann aber nur gelingen, wenn beide Netzwerke gleich stark und effektiv sind. Wenn eines der beiden Netzwerke dem anderen überlegen ist, bricht das System in sich zusammen. Ist beispielsweise der Generator überlegen, werden alle gefälschten Daten vom Discriminator als echt eingestuft. Ist der Discriminator überlegen, stuft er alle Daten des Generators als falsch ein. In diesem Fall kann keins der beiden Netzwerke sich weiterentwickeln.
Objekte richtig verstehen
Generative Adversarial Networks haben oft Probleme, Objekte richtig zu erkennen und zu verstehen. Das ist vor allem bei Bildern der Fall. Hier ein Beispiel: Ein echtes Bild zeigt zwei Katzen mit jeweils zwei Augen. Versteht der Generator die vollständige Struktur und Positionierung des Bildes nicht, dann könnte er stattdessen eine Katze mit vier Augen generieren. Auch mit Perspektiven können GANs überfordert sein und nicht verstehen, dass es sich ggf. bei zwei Bildern um das gleiche Motiv aus unterschiedlichen Richtungen handelt.
Wo werden GANs eingesetzt?
Besondere Aufmerksamkeit – auch abseits von Computerwissenschaften – erlangten Generative Adversarial Networks, nachdem das Künstlerkollektiv Obvious die Technik eingesetzt hat, um ein Kunstwerk erstellen zu lassen. Dieses Gemälde wurde bei einer Auktion für 432.500 US-Dollar versteigert. Doch auch abseits von künstlerischen Motiven kann ein GAN erstaunliche Leistungen erbringen.
Voraussage von Videos
GANs können auf Grundlage von Videoeinzelbildern voraussagen, wie ein Video weitergeht und so nach Ablauf einer Aufnahme das Video eigenständig verlängern. Dabei werden alle Elemente des Videos, z. B. Bewegungen und Handlungen, aber auch Hintergrundveränderungen wie Regen oder Nebel, miteinbezogen.
Bildgenerierung anhand von Texten
Basierend auf einer Beschreibung können GANs Bilder generieren. So können sie beispielsweise anhand eines Drehbuchs eigenständig ein Storyboard entwickeln.
Generierung komplexer Objekte
Auch simple Skizzen lassen sich durch Generative Adversarial Networks in kürzester Zeit automatisch in komplexe dreidimensionale Objekte verwandeln. So kann aus einem einfach gezeichneten Baum durch den Einsatz von GANs ein hochkomplexes Objekt mit winzigen Details wie im Wind wehenden Blättern und wankender Baumkrone entstehen.
Verbesserung von Bilddetails
GANs können einem Bild mit schlechter Auflösung oder mit fehlenden Bildpunkten neue Details hinzufügen. Generative Adversarial Networks nutzen dabei Informationen von ähnlichen Bildern, um fehlende Bildinformationen zu ergänzen.
Entwicklung neuer Produkte
Einige Unternehmen experimentieren mit GANs bereits in der Produktentwicklung und erstellen mithilfe der Systeme komplett neue Designs und Produktreihen.
Produkttextgenerierung
GANs können auch das Schreiben von Texten übernehmen und werden bereits für das Generieren von Produkttexten genutzt, die eine immer größere Rolle in der Kaufentscheidung von Kunden spielen. Mithilfe von GANs können solche Beschreibungen nicht nur schnell erstellt werden, die Netzwerke können auch analysieren, welche Produkttexte in der Vergangenheit am erfolgreichsten waren, und auf dieser Grundlage neue, ähnlich konzipierte Texte verfassen.
In all diesen Bereichen werden Generative Adversarial Networks bereits erfolgreich eingesetzt. Firmen und Entwickler arbeiten ständig an neuen Anwendungsmöglichkeiten und es ist abzusehen, dass GANs mittelfristig großen Einfluss auf viele Bereiche unseres Lebens und unserer Arbeit nehmen.