KI 101
Was ist ein Generatives Adversarisches Netzwerk (GAN)?

Generative Adversarial Networks (GANs) sind Arten von neuronalen Netzwerkarchitekturen , die in der Lage sind, neue Daten zu generieren, die den gelernten Mustern entsprechen. GANs können verwendet werden, um Bilder von menschlichen Gesichtern oder anderen Objekten zu generieren, um Text-Bild-Übersetzungen durchzuführen, um eine Art von Bild in eine andere umzuwandeln und um die Auflösung von Bildern (Super-Auflösung) zu verbessern, unter anderem. Da GANs vollständig neue Daten generieren können, stehen sie an der Spitze vieler bahnbrechender KI-Systeme, Anwendungen und Forschungen. Doch wie funktionieren GANs genau? Lassen Sie uns untersuchen, wie GANs funktionieren und einige ihrer primären Anwendungen betrachten.
Definition von Generativen Modellen und GANs
Ein GAN ist ein Beispiel für ein generatives Modell. Die meisten KI-Modelle können in eine von zwei Kategorien unterteilt werden: überwachte und unüberwachte Modelle. Überwachte Lernmodelle werden typischerweise verwendet, um zwischen verschiedenen Kategorien von Eingaben zu unterscheiden, um zu klassifizieren. Im Gegensatz dazu werden unüberwachte Modelle typischerweise verwendet, um die Verteilung von Daten zusammenzufassen, oft indem sie eine Gaußsche Verteilung der Daten lernen. Da sie die Verteilung eines Datensatzes lernen, können sie Stichproben aus dieser gelernten Verteilung ziehen und neue Daten generieren.
Verschiedene generative Modelle haben unterschiedliche Methoden, um Daten zu generieren und Wahrscheinlichkeitsverteilungen zu berechnen. Zum Beispiel funktioniert das Naive-Bayes-Modell indem es eine Wahrscheinlichkeitsverteilung für die verschiedenen Eingabefeatures und die generative Klasse berechnet. Wenn das Naive-Bayes-Modell eine Vorhersage erstellt, berechnet es die wahrscheinlichste Klasse, indem es die Wahrscheinlichkeit der verschiedenen Variablen kombiniert. Andere nicht-tiefe Lern-Generative Modelle umfassen Gaußsche Mischmodelle und Latent Dirichlet Allocation (LDA). Tiefes Lernen-basierte generative Modelle umfassen Restriktive Boltzmann-Maschinen (RBMs), Variationale Autoencoder (VAEs) und natürlich GANs.
Generative Adversarial Networks wurden erst von Ian Goodfellow im Jahr 2014 vorgeschlagen und wurden 2015 von Alec Redford und anderen Forschern verbessert, was zu einer standardisierten Architektur für GANs führte. GANs bestehen tatsächlich aus zwei verschiedenen Netzwerken, die miteinander verbunden sind. GANs bestehen aus zwei Hälften: einem Generationsmodell und einem Diskriminationsmodell, auch als Generator und Diskriminator bezeichnet.
Die GAN-Architektur
Generative Adversarial Networks sind aus einem Generator-Modell und einem Diskriminator-Modell aufgebaut. Die Aufgabe des Generator-Modells ist es, neue Beispiele von Daten zu erstellen, basierend auf den Mustern, die das Modell aus den Trainingsdaten gelernt hat. Die Aufgabe des Diskriminator-Modells ist es, Bilder (unter der Annahme, dass es auf Bildern trainiert wurde) zu analysieren und zu bestimmen, ob die Bilder generiert/falsch oder echt sind.

Die beiden Modelle sind gegeneinander ausgerichtet, in einer spieltheoretischen Weise trainiert. Das Ziel des Generator-Modells ist es, Bilder zu erstellen, die seinen Gegner, das Diskriminator-Modell, täuschen. Währenddessen ist die Aufgabe des Diskriminator-Modells, seinen Gegner, das Generator-Modell, zu überwinden und die gefälschten Bilder zu erkennen, die der Generator produziert. Die Tatsache, dass die Modelle gegeneinander ausgerichtet sind, führt zu einem Wettlauf, bei dem beide Modelle verbessert werden. Der Diskriminator erhält Feedback über welche Bilder echt und welche von dem Generator produziert wurden, während der Generator Informationen über welche seiner Bilder vom Diskriminator als falsch identifiziert wurden, erhält. Beide Modelle verbessern sich während des Trainings, mit dem Ziel, ein Generationsmodell zu trainieren, das in der Lage ist, gefälschte Daten zu produzieren, die von echten, realen Daten nicht zu unterscheiden sind.
Sobald eine Gaußsche Verteilung von Daten während des Trainings erstellt wurde, kann das generative Modell verwendet werden. Das Generator-Modell wird zunächst mit einem zufälligen Vektor gefüttert, den es basierend auf der Gaußschen Verteilung transformiert. Mit anderen Worten, der Vektor initiiert die Generierung. Wenn das Modell trainiert ist, wird der Vektorraum eine komprimierte Version oder Repräsentation der Gaußschen Verteilung der Daten sein. Die komprimierte Version der Datenverteilung wird als latenter Raum oder latente Variablen bezeichnet. Später kann das GAN-Modell dann den latenten Raum verwenden und Punkte daraus ziehen, die dem Generator-Modell gegeben und verwendet werden können, um neue Daten zu generieren, die dem Trainingsdatensatz sehr ähnlich sind.
Das Diskriminator-Modell wird mit Beispielen aus dem gesamten Trainingsbereich gefüttert, der aus realen und generierten Datenbeispielen besteht. Die realen Beispiele sind im Trainingsdatensatz enthalten, während die gefälschten Daten vom Generator-Modell produziert werden. Der Prozess des Trainings des Diskriminator-Modells ist genau derselbe wie das Training eines grundlegenden, binären Klassifizierungsmodells.
GAN-Trainingsprozess
Lassen Sie uns den gesamten Trainingsprozess für eine hypothetische Bildgenerierungsaufgabe betrachten.
Zunächst wird das GAN mit echten, realen Bildern als Teil des Trainingsdatensatzes trainiert. Dies stellt das Diskriminator-Modell so ein, dass es zwischen generierten Bildern und realen Bildern unterscheiden kann. Es erzeugt auch die Datenverteilung, die der Generator verwenden wird, um neue Daten zu produzieren.
Der Generator nimmt einen Vektor mit zufälligen numerischen Daten und transformiert sie basierend auf der Gaußschen Verteilung, um ein Bild zurückzugeben. Dieses generierte Bild, zusammen mit einigen echten Bildern aus dem Trainingsdatensatz, wird in das Diskriminator-Modell eingegeben. Der Diskriminator wird eine wahrscheinliche Vorhersage über die Natur der Bilder, die er erhält, erstellen, und einen Wert zwischen 0 und 1 ausgeben, wobei 1 typischerweise echte Bilder und 0 ein gefälschtes Bild ist.

Es gibt eine doppelte Rückkopplungsschleife, da der Diskriminator die Grundwahrheit der Bilder erhält, während der Generator Feedback über seine Leistung vom Diskriminator erhält.
Die generativen und diskriminativen Modelle spielen ein Nullsummenspiel miteinander. Ein Nullsummenspiel ist eines, bei dem die Gewinne einer Seite auf Kosten der anderen Seite erfolgen (die Summe ist null). Wenn das Diskriminator-Modell erfolgreich zwischen realen und gefälschten Beispielen unterscheiden kann, werden keine Änderungen an den Parametern des Diskriminators vorgenommen. Wenn jedoch das Diskriminator-Modell nicht zwischen realen und gefälschten Bildern unterscheiden kann, werden große Updates an den Parametern des Modells vorgenommen. Das Gegenteil gilt für das Generator-Modell, es wird bestraft (und seine Parameter aktualisiert), wenn es den Diskriminator nicht täuschen kann, aber ansonsten bleiben seine Parameter unverändert (oder es wird belohnt).
Idealerweise kann der Generator seine Leistung so verbessern, dass der Diskriminator nicht zwischen den gefälschten und realen Bildern unterscheiden kann. Dies bedeutet, dass der Diskriminator immer Wahrscheinlichkeiten von 50 % für reale und gefälschte Bilder ausgeben wird, was bedeutet, dass die generierten Bilder nicht von den echten Bildern zu unterscheiden sind. In der Praxis erreichen GANs typischerweise nicht diesen Punkt. Der Generator muss jedoch nicht perfekt ähnliche Bilder erstellen, um immer noch nützlich für die vielen Aufgaben zu sein, für die GANs verwendet werden.
GAN-Anwendungen
GANs haben eine Vielzahl von Anwendungen, die meisten davon drehen sich um die Generierung von Bildern und Bildkomponenten. GANs werden häufig in Aufgaben verwendet, bei denen die erforderlichen Bildaten fehlen oder begrenzt sind, als Methode zur Generierung der erforderlichen Daten. Lassen Sie uns einige der gängigen Anwendungsfälle für GANs betrachten.
Erzeugung neuer Beispiele für Datensätze
GANs können verwendet werden, um neue Beispiele für einfache Bild-Datensätze zu generieren. Wenn Sie nur eine Handvoll Trainingsbeispiele haben und mehr benötigen, können GANs verwendet werden, um neue Trainingsdaten für einen Bildklassifizierer zu generieren, der neue Trainingsbeispiele in verschiedenen Orientierungen und Winkeln erstellt.
Erzeugung einzigartiger menschlicher Gesichter

Die Frau auf diesem Foto existiert nicht. Das Bild wurde von StyleGAN generiert. Foto: Owlsmcgee via Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)
Wenn sie ausreichend trainiert werden, können GANs verwendet werden, um extrem realistische Bilder von menschlichen Gesichtern zu generieren. Diese generierten Bilder können verwendet werden, um Gesichtserkennungssysteme zu trainieren.
Bild-zu-Bild-Übersetzung
GANs überzeugen bei der Bildübersetzung. GANs können verwendet werden, um schwarz-weiße Bilder zu kolorieren, Skizzen oder Zeichnungen in fotografische Bilder zu übersetzen oder Bilder von Tag zu Nacht zu konvertieren.
Text-zu-Bild-Übersetzung
Text-zu-Bild-Übersetzung ist möglich durch die Verwendung von GANs. Wenn ein GAN mit Text, der ein Bild beschreibt, und dem entsprechenden Bild trainiert wird, kann es ein neues Bild erstellen, wenn es eine Beschreibung des gewünschten Bildes erhält.
Bearbeiten und Reparieren von Bildern
GANs können verwendet werden, um vorhandene Fotografien zu bearbeiten. GANs können Elemente wie Regen oder Schnee aus einem Bild entfernen, aber sie können auch verwendet werden, um alte, beschädigte Bilder oder korrupte Bilder zu reparieren.
Super-Auflösung
Super-Auflösung ist der Prozess, bei dem ein Bild mit niedriger Auflösung genommen und mehr Pixel hinzugefügt werden, um die Auflösung des Bildes zu verbessern. GANs können trainiert werden, um ein Bild zu nehmen und ein Bild mit höherer Auflösung zu generieren.












