Stummel Was ist ein Generative Adversarial Network (GAN)? - Unite.AI
Vernetzen Sie sich mit uns

AI 101

Was ist ein Generative Adversarial Network (GAN)?

mm
Aktualisiert on

Generative Adversarial Networks (GANs) sind Arten neuronaler Netzwerkarchitekturen in der Lage, neue Daten zu generieren das den erlernten Mustern entspricht. GANs können unter anderem dazu verwendet werden, Bilder von menschlichen Gesichtern oder anderen Objekten zu erzeugen, Text-zu-Bild-Übersetzungen durchzuführen, einen Bildtyp in einen anderen umzuwandeln und die Auflösung von Bildern zu verbessern (Superauflösung). Da GANs völlig neue Daten generieren können, stehen sie an der Spitze vieler hochmoderner KI-Systeme, -Anwendungen und -Forschung. Doch wie genau funktionieren GANs? Lassen Sie uns untersuchen, wie GANs funktionieren, und einen Blick auf einige ihrer Hauptverwendungszwecke werfen.

Generative Modelle und GANs definieren

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 unbeaufsichtigte Modelle. Überwachte Lernmodelle werden typischerweise verwendet, um zwischen verschiedenen Kategorien von Eingaben zu unterscheiden und diese zu klassifizieren. Im Gegensatz dazu werden unbeaufsichtigte Modelle typischerweise verwendet, um die Verteilung von Daten zusammenzufassen, und zwar oft lernend eine Gaußsche Verteilung der Daten. Da sie die Verteilung eines Datensatzes lernen, können sie Stichproben aus dieser erlernten Verteilung ziehen und neue Daten generieren.

Verschiedene generative Modelle verfügen über unterschiedliche Methoden zur Datengenerierung und Berechnung von Wahrscheinlichkeitsverteilungen. Zum Beispiel die Naives Bayes-Modell berechnet eine Wahrscheinlichkeitsverteilung für die verschiedenen Eingabemerkmale und die generative Klasse. Wenn das Naive-Bayes-Modell eine Vorhersage macht, berechnet es die wahrscheinlichste Klasse, indem es die Wahrscheinlichkeit der verschiedenen Variablen nimmt und sie miteinander kombiniert. Zu den anderen generativen Nicht-Deep-Learning-Modellen gehören Gaussian Mixture Models und Latent Dirichlet Allocation (LDA). Auf Deep Lean basierende generative Modelle das Eingeschränkte Boltzmann-Maschinen (RBMs), Variations-Autoencoder (VAEs)und natürlich GANs.

Generative gegnerische Netzwerke waren erstmals 2014 von Ian Goodfellow vorgeschlagen, und sie wurden 2015 von Alec Redford und anderen Forschern verbessert, was zu einer standardisierten Architektur für GANs führte. GANs sind eigentlich zwei verschiedene Netzwerke, die miteinander verbunden sind. GANs sind bestehend aus zwei Hälften: ein Generationsmodell und ein Diskriminierungsmodell, auch Generator und Diskriminator genannt.

Die GAN-Architektur

Generative gegnerische Netzwerke sind Es besteht aus einem Generatormodell und einem Diskriminatormodell. Die Aufgabe des Generatormodells besteht darin, neue Datenbeispiele zu erstellen, basierend auf den Mustern, die das Modell aus den Trainingsdaten gelernt hat. Die Aufgabe des Diskriminatormodells besteht darin, Bilder zu analysieren (vorausgesetzt, es wurde auf Bildern trainiert) und festzustellen, ob die Bilder generiert/gefälscht oder echt sind.

Die beiden Modelle treten spieltheoretisch trainiert gegeneinander an. Das Ziel des Generatormodells besteht darin, Bilder zu erzeugen, die seinen Gegner – das Diskriminatormodell – täuschen. In der Zwischenzeit besteht die Aufgabe des Diskriminatormodells darin, seinen Gegner, das Generatormodell, zu besiegen und die gefälschten Bilder einzufangen, die der Generator erzeugt. Die Tatsache, dass die Modelle gegeneinander antreten, führt zu einem Wettrüsten, bei dem sich beide Modelle verbessern. Der Diskriminator erhält Rückmeldung darüber, welche Bilder echt waren und welche vom Generator erzeugt wurden, während der Generator Informationen darüber erhält, welche seiner Bilder vom Diskriminator als falsch gekennzeichnet wurden. Beide Modelle werden während des Trainings verbessert, mit dem Ziel, ein Generierungsmodell zu trainieren, das gefälschte Daten erzeugen kann, die im Grunde nicht von echten, echten Daten zu unterscheiden sind.

Sobald während des Trainings eine Gaußsche Datenverteilung erstellt wurde, kann das generative Modell verwendet werden. Dem Generatormodell wird zunächst ein Zufallsvektor zugeführt, den es auf Basis der Gauß-Verteilung transformiert. Mit anderen Worten: Der Vektor setzt die Generation in Gang. Wenn das Modell trainiert wird, ist der Vektorraum eine komprimierte Version oder Darstellung der Gaußschen Verteilung der Daten. Die komprimierte Version der Datenverteilung wird als latenter Raum oder latente Variablen bezeichnet. Später kann das GAN-Modell dann die Darstellung des latenten Raums übernehmen und daraus Punkte ziehen, die dem Generierungsmodell übergeben und zur Generierung neuer Daten verwendet werden können, die den Trainingsdaten sehr ähnlich sind.

Das Diskriminatormodell wird mit Beispielen aus dem gesamten Trainingsbereich gefüttert, der sowohl aus realen als auch aus generierten Datenbeispielen besteht. Die echten Beispiele sind im Trainingsdatensatz enthalten, während die gefälschten Daten vom generativen Modell erzeugt werden. Der Prozess des Trainings des Diskriminatormodells ist genau derselbe wie das grundlegende Training eines binären Klassifizierungsmodells.

GAN-Trainingsprozess

Schauen wir uns das Ganze an TAUCHERAUSBILDUNG Prozessdefinierung für eine hypothetische Bilderzeugungsaufgabe.

Zunächst wird das GAN mithilfe echter, realer Bilder als Teil des Trainingsdatensatzes trainiert. Dadurch wird das Diskriminatormodell eingerichtet, um zwischen erzeugten Bildern und realen Bildern zu unterscheiden. Außerdem wird die Datenverteilung erstellt, die der Generator zum Erzeugen neuer Daten verwendet.

Der Generator nimmt einen Vektor zufälliger numerischer Daten auf und transformiert sie basierend auf der Gaußschen Verteilung und gibt ein Bild zurück. Diese generierten Bilder werden zusammen mit einigen Originalbildern aus dem Trainingsdatensatz in das Diskriminatormodell eingespeist. Der Diskriminator erstellt eine probabilistische Vorhersage über die Art der empfangenen Bilder und gibt einen Wert zwischen 0 und 1 aus, wobei 1 typischerweise für authentische Bilder und 0 für ein gefälschtes Bild steht.

Es gibt eine doppelte Rückkopplungsschleife, da der Bodendiskriminator mit der Grundwahrheit der Bilder versorgt wird, während der Generator vom Diskriminator eine Rückmeldung über seine Leistung erhält.

Das generative und das Diskriminierungsmodell spielen miteinander ein Nullsummenspiel. Ein Nullsummenspiel ist ein Spiel, bei dem die Gewinne einer Seite auf Kosten der anderen Seite gehen (die Summe beider Aktionen beträgt Null). Wenn das Diskriminatormodell erfolgreich zwischen echten und gefälschten Beispielen unterscheiden kann, werden keine Änderungen an den Parametern des Diskriminators vorgenommen. Allerdings werden umfangreiche Aktualisierungen an den Parametern des Modells vorgenommen, wenn es nicht zwischen echten und gefälschten Bildern unterscheiden kann. Das Umgekehrte gilt für das generative Modell: Es wird bestraft (und seine Parameter werden aktualisiert), wenn es das diskriminative Modell nicht täuscht, ansonsten bleiben seine Parameter jedoch unverändert (oder es wird belohnt).

Im Idealfall ist der Generator in der Lage, seine Leistung so weit zu verbessern, dass der Diskriminator nicht mehr zwischen gefälschten und echten Bildern unterscheiden kann. Das bedeutet, dass der Diskriminator für echte und gefälschte Bilder immer Wahrscheinlichkeiten von %50 wiedergibt, was bedeutet, dass die erzeugten Bilder nicht von den echten Bildern zu unterscheiden sein sollten. In der Praxis erreichen GANs diesen Punkt normalerweise nicht. Allerdings muss das generative Modell keine vollkommen ähnlichen Bilder erstellen, um dennoch für die vielen Aufgaben, für die GANs verwendet werden, nützlich zu sein.

GAN-Anwendungen

GANs haben eine Reihe unterschiedlicher Anwendungen, die meisten davon drehen sich um die Generierung von Bildern und Bildkomponenten. GANs werden häufig bei Aufgaben verwendet, bei denen die erforderlichen Bilddaten fehlen oder in gewisser Weise begrenzt sind, als Methode zur Generierung der erforderlichen Daten. Lassen Sie uns einige der häufigsten Anwendungsfälle für GANs untersuchen.

Generieren neuer Beispiele für Datensätze

Mithilfe von GANs können neue Beispiele für einfache Bilddatensätze generiert werden. Wenn Sie nur über eine Handvoll Trainingsbeispiele verfügen und mehr davon benötigen, könnten GANs verwendet werden, um neue Trainingsdaten für einen Bildklassifikator zu generieren und so neue Trainingsbeispiele in unterschiedlichen Ausrichtungen und Winkeln zu generieren.

Einzigartige menschliche Gesichter erzeugen

Die Frau auf diesem Foto existiert nicht. Das Bild wurde von StyleGAN generiert. Foto: Owlsmcgee über Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Wenn sie ausreichend trainiert sind, können GANs daran gewöhnt werden erzeugen äußerst realistische Bilder menschlicher Gesichter. Diese generierten Bilder können zum Trainieren von Gesichtserkennungssystemen verwendet werden.

Bild-zu-Bild-Übersetzung

GANs Hervorragende Bildübersetzung. GANs können verwendet werden, um Schwarzweißbilder einzufärben, Skizzen oder Zeichnungen in fotografische Bilder zu übersetzen oder Bilder von Tag zu Nacht umzuwandeln.

Text-zu-Bild-Übersetzung

Text-zu-Bild-Übersetzung ist möglich durch den Einsatz von GANs. Wenn ein GAN mit Text versehen wird, der ein Bild und das dazugehörige Bild beschreibt, kann dies der Fall sein trainiert werden, ein neues Bild zu erstellen wenn Sie eine Beschreibung des gewünschten Bildes erhalten.

Bearbeiten und Reparieren von Bildern

GANs können zum Bearbeiten vorhandener Fotos verwendet werden. GANs Entfernen Sie Elemente wie Regen oder Schnee aus einem Bild, sie können aber auch dazu verwendet werden Reparieren Sie alte, beschädigte Bilder oder beschädigte Bilder. 

Super Auflösung

Bei der Superauflösung wird ein Bild mit niedriger Auflösung aufgenommen und mehr Pixel in das Bild eingefügt, wodurch die Auflösung dieses Bildes verbessert wird. GANs können trainiert werden, um ein Bild aufzunehmen Generieren Sie eine Version dieses Bildes mit höherer Auflösung. 

Blogger und Programmierer mit Spezialisierung auf Maschinelles lernen und Tiefes Lernen Themen. Daniel hofft, anderen dabei zu helfen, die Macht der KI für das soziale Wohl zu nutzen.