KI 101

Was ist ein Generatives Adversarisches Netzwerk (GAN)?

mm

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 ein Bild von einer Art 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 fortschrittlicher 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ß-Verteilung der Daten lernen. Da sie die Verteilung eines Datensatzes lernen, können sie Stichproben aus dieser gelernten Verteilung ziehen und neue Daten generieren.

Unterschiedliche 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 trifft, berechnet es die wahrscheinlichste Klasse, indem es die Wahrscheinlichkeiten 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 Eingebettete Boltzmann-Maschinen (RBMs), Variationale Autoencoder (VAEs) und natürlich GANs.

Generative Adversarial Networks wurden erst von Ian Goodfellow im Jahr 2014 vorgeschlagen und wurden von Alec Redford und anderen Forschern im Jahr 2015 verbessert, was zu einer standardisierten Architektur für GANs führte. GANs bestehen tatsächlich aus zwei verschiedenen Netzwerken, die zusammengefügt 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, trainiert in einer spieltheoretischen Weise. Das Ziel des Generator-Modells ist es, Bilder zu erstellen, die seinen Gegner, das Diskriminator-Modell, täuschen. Währenddessen ist das Ziel 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 darüber, welche Bilder echt und welche Bilder vom Generator produziert wurden, während der Generator Informationen darüber erhält, welche seiner Bilder vom Diskriminator als falsch identifiziert wurden. Beide Modelle verbessern sich während des Trainings, mit dem Ziel, ein Generationsmodell zu trainieren, das gefälschte Daten produzieren kann, die von echten, echten Daten nicht zu unterscheiden sind.

Sobald eine Gauß-Verteilung der 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ß-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 Daten-Verteilung sein. Die komprimierte Version der Daten-Verteilung wird als latenter Raum oder latente Variablen bezeichnet. Später kann das GAN-Modell dann die latente Raum-Repräsentation nehmen und Punkte daraus ziehen, die dem Generationsmodell gegeben und verwendet werden können, um neue Daten zu generieren, die dem Trainingsdaten sehr ähnlich sind.

Das Diskriminator-Modell wird mit Beispielen aus dem gesamten Trainingsbereich gefüttert, der aus echten und generierten Datenbeispielen besteht. Die echten Beispiele sind in dem Trainingsdatensatz enthalten, während die gefälschten Daten vom generativen 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, echten Bildern als Teil des Trainingsdatensatzes trainiert. Dies stellt das Diskriminator-Modell so ein, dass es zwischen generierten Bildern und echten Bildern unterscheiden kann. Es produziert auch die Daten-Verteilung, die der Generator verwenden wird, um neue Daten zu produzieren.

Der Generator nimmt einen Vektor von zufälligen numerischen Daten und transformiert sie basierend auf der Gauß-Verteilung, wodurch ein Bild zurückgegeben wird. 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 treffen, die er erhält, 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 echten und gefälschten Beispielen unterscheiden kann, werden keine Änderungen an den Parametern des Diskriminators vorgenommen. Wenn jedoch das Diskriminator-Modell nicht zwischen echten und gefälschten Bildern unterscheiden kann, werden große Updates an den Parametern des Modells vorgenommen. Das Gegenteil gilt für das generative Modell, es wird bestraft (und seine Parameter aktualisiert), wenn es nicht in der Lage ist, den diskriminativen Modell zu täuschen, aber ansonsten bleiben seine Parameter unverändert (oder es wird belohnt).

Idealerweise kann der Generator seine Leistung so verbessern, dass der Diskriminator nicht zwischen gefälschten und echten Bildern unterscheiden kann. Dies bedeutet, dass der Diskriminator immer Wahrscheinlichkeiten von 50 % für echte und gefälschte Bilder ausgeben wird, was bedeutet, dass die generierten Bilder nicht von echten, echten Bildern zu unterscheiden sind. In der Praxis erreichen GANs typischerweise nicht diesen Punkt. Der generative Modell muss jedoch nicht perfekt ähnliche Bilder erstellen, um 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 Bilddaten 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 Bilddatensä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 ausreichend trainiert, 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 fotorealistische Bilder umzuwandeln oder Bilder von Tag zu Nacht umzuwandeln.

Text-zu-Bild-Übersetzung

Text-zu-Bild-Übersetzung ist möglich durch die Verwendung von GANs. Wenn ein Text, der ein Bild beschreibt, und das entsprechende Bild bereitgestellt werden, kann ein GAN trainiert werden, um ein neues Bild zu erstellen, wenn eine Beschreibung des gewünschten Bildes bereitgestellt wird.

Bearbeitung und Reparatur von Bildern

GANs können verwendet werden, um bestehende 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 in das Bild eingefügt werden, um die Auflösung des Bildes zu verbessern. GANs können trainiert werden, um ein Bild zu nehmen und eine höher auflösende Version des Bildes zu generieren.

GANs können auch verwendet werden, um alte, beschädigte Bilder oder korrupte Bilder zu reparieren. Super-Auflösung ist der Prozess, bei dem ein Bild mit niedriger Auflösung genommen und mehr Pixel in das Bild eingefügt werden, um die Auflösung des Bildes zu verbessern. GANs können trainiert werden, um ein Bild zu nehmen und eine höher auflösende Version des Bildes zu generieren.

Blogger und Programmierer mit Spezialisierungen in Machine Learning und Deep Learning Themen. Daniel hofft, anderen zu helfen, die Macht von KI fĂŒr das soziale Wohl zu nutzen.