A Gentle Introduction to Generative Adversarial Networks (GANs)

Tweet Share Share

Last Updated on July 19, 2019

Generative Adversarial Networks, kurz GANs, sind ein Ansatz zur generativen Modellierung unter Verwendung von Deep-Learning-Methoden, wie z.B. Faltungsneuronalen Netzen.

Generative Modellierung ist eine unüberwachte Lernaufgabe im Bereich des maschinellen Lernens, bei der es darum geht, Regelmäßigkeiten oder Muster in Eingabedaten automatisch zu entdecken und zu erlernen, so dass das Modell dazu verwendet werden kann, neue Beispiele zu generieren oder auszugeben, die plausibel aus dem ursprünglichen Datensatz gezogen worden sein könnten.

GANs sind ein cleverer Weg, ein generatives Modell zu trainieren, indem sie das Problem als ein überwachtes Lernproblem mit zwei Teilmodellen darstellen: das Generatormodell, das wir trainieren, um neue Beispiele zu generieren, und das Diskriminatormodell, das versucht, Beispiele entweder als echt (aus der Domäne) oder als unecht (generiert) zu klassifizieren. Die beiden Modelle werden zusammen in einem Nullsummenspiel trainiert, bis das Unterscheidungsmodell etwa die Hälfte der Zeit getäuscht wird, was bedeutet, dass das Generatormodell plausible Beispiele erzeugt.

GANs sind ein aufregendes und sich schnell entwickelndes Feld, das das Versprechen generativer Modelle erfüllt, indem es realistische Beispiele in einer Reihe von Problembereichen generiert, vor allem bei Bild-zu-Bild-Übersetzungsaufgaben wie der Übersetzung von Fotos von Sommer zu Winter oder Tag zu Nacht und bei der Generierung fotorealistischer Fotos von Objekten, Szenen und Menschen, die selbst Menschen nicht als Fälschung erkennen können.

In diesem Beitrag finden Sie eine sanfte Einführung in Generative Adversarial Networks (GANs).

Nach der Lektüre dieses Beitrags werden Sie wissen:

  • Kontext für GANs, einschließlich überwachtes vs. unbeaufsichtigtes Lernen und diskriminatives vs. generatives Modellieren.
  • GANs sind eine Architektur für das automatische Training eines generativen Modells, indem das unüberwachte Problem als überwacht behandelt wird und sowohl ein generatives als auch ein diskriminatives Modell verwendet wird.
  • GANs bieten einen Weg zu einer hochentwickelten domänenspezifischen Datenerweiterung und eine Lösung für Probleme, die eine generative Lösung erfordern, wie z.B. die Übersetzung von Bild zu Bild.

Starten Sie Ihr Projekt mit meinem neuen Buch Generative Adversarial Networks with Python, inklusive Schritt-für-Schritt-Tutorials und den Python-Quellcode-Dateien für alle Beispiele.

Lassen Sie uns loslegen.

Eine sanfte Einführung in Generative Adversarial Networks (GANs)

Eine sanfte Einführung in Generative Adversarial Networks (GANs)
Foto von Barney Moss, einige Rechte vorbehalten.

Übersicht

Dieses Tutorial ist in drei Teile gegliedert; sie sind:

  1. Was sind Generative Modelle?
  2. Was sind Generative Adversarial Networks?
  3. Warum Generative Adversarial Networks?

Was sind generative Modelle?

In diesem Abschnitt werden wir die Idee der generativen Modelle besprechen und dabei die Paradigmen überwachtes vs. unbeaufsichtigtes Lernen und diskriminative vs. generative Modellierung erläutern.

Überwachtes vs. unbeaufsichtigtes Lernen. Unüberwachtes Lernen

Ein typisches Problem des maschinellen Lernens besteht darin, ein Modell zu verwenden, um eine Vorhersage zu treffen, z.B. prädiktive Modellierung.

Dafür ist ein Trainingsdatensatz erforderlich, der zum Trainieren eines Modells verwendet wird und aus mehreren Beispielen besteht, die als Stichproben bezeichnet werden und jeweils Eingangsvariablen (X) und Ausgangsklassenetiketten (y) aufweisen. Ein Modell wird trainiert, indem man Beispiele für Eingaben zeigt, es Ausgaben vorhersagen lässt und das Modell korrigiert, damit die Ausgaben den erwarteten Ausgaben ähnlicher werden.

Beim prädiktiven oder überwachten Lernansatz besteht das Ziel darin, eine Zuordnung von Eingaben x zu Ausgaben y zu erlernen, wenn ein markierter Satz von Eingabe-Ausgabe-Paaren gegeben ist …

– Seite 2, Machine Learning: A Probabilistic Perspective, 2012.

Diese Korrektur des Modells wird allgemein als überwachte Form des Lernens oder als überwachtes Lernen bezeichnet.

Beispiel für überwachtes Lernen

Beispiel für überwachtes Lernen

Beispiele für überwachte Lernprobleme sind Klassifikation und Regression, und Beispiele für überwachte Lernalgorithmen sind logistische Regression und Random Forest.

Es gibt noch ein anderes Lernparadigma, bei dem das Modell nur die Eingangsvariablen (X) erhält und das Problem keine Ausgangsvariablen (y) hat.

Ein Modell wird durch Extraktion oder Zusammenfassung der Muster in den Eingangsdaten erstellt. Es gibt keine Korrektur des Modells, da das Modell nichts vorhersagt.

Der zweite Haupttyp des maschinellen Lernens ist der deskriptive oder unüberwachte Lernansatz. Hier erhalten wir nur Eingaben, und das Ziel ist es, „interessante Muster“ in den Daten zu finden. Dies ist ein viel weniger gut definiertes Problem, da uns nicht gesagt wird, nach welchen Arten von Mustern wir suchen sollen, und es gibt keine offensichtliche Fehlermetrik, die wir verwenden können (im Gegensatz zum überwachten Lernen, bei dem wir unsere Vorhersage von y für ein gegebenes x mit dem beobachteten Wert vergleichen können).

– Seite 2, Maschinelles Lernen: A Probabilistic Perspective, 2012.

Dieses Fehlen einer Korrektur wird allgemein als unbeaufsichtigte Form des Lernens bezeichnet.

Beispiel für unüberwachtes Lernen

Beispiel für unüberwachtes Lernen

Beispiele für unüberwachte Lernprobleme sind Clustering und generative Modellierung, und Beispiele für unüberwachte Lernalgorithmen sind K-means und Generative Adversarial Networks.

Wollen Sie GANs von Grund auf neu entwickeln?

Machen Sie jetzt meinen kostenlosen 7-tägigen E-Mail-Crashkurs (mit Beispielcode).

Klicken Sie, um sich anzumelden und eine kostenlose PDF-Ebook-Version des Kurses zu erhalten.

Laden Sie sich Ihren KOSTENLOSEN Mini-Kurs herunter

Diskriminative vs. Generative Modellierung

Beim überwachten Lernen kann es von Interesse sein, ein Modell zur Vorhersage einer Klassenbezeichnung anhand eines Beispiels von Eingabevariablen zu entwickeln.

Diese Aufgabe der prädiktiven Modellierung wird Klassifizierung genannt.

Die Klassifizierung wird traditionell auch als diskriminative Modellierung bezeichnet.

… verwenden wir die Trainingsdaten, um eine diskriminante Funktion f(x) zu finden, die jedes x direkt auf ein Klassenlabel abbildet, wodurch die Inferenz- und die Entscheidungsphase zu einem einzigen Lernproblem zusammengefasst werden.

— Page 44, Pattern Recognition and Machine Learning, 2006.

This is because a model must discriminate examples of input variables across classes; it must choose or make a decision as to what class a given example belongs.

Example of Discriminative Modeling

Example of Discriminative Modeling

Alternately, unsupervised models that summarize the distribution of input variables may be able to be used to create or generate new examples in the input distribution.

As such, these types of models are referred to as generative models.

Example of Generative Modeling

Example of Generative Modeling

For example, a single variable may have a known data distribution, such as a Gaussian distribution, or bell shape. Ein generatives Modell kann diese Datenverteilung hinreichend zusammenfassen und dann dazu verwendet werden, neue Variablen zu erzeugen, die plausibel in die Verteilung der Eingangsvariablen passen.

Ansätze, die explizit oder implizit sowohl die Verteilung der Eingaben als auch die der Ausgaben modellieren, werden als generative Modelle bezeichnet, da es durch Stichproben möglich ist, synthetische Datenpunkte im Eingaberaum zu erzeugen.

– Seite 43, Pattern Recognition and Machine Learning, 2006.

Ein wirklich gutes generatives Modell kann sogar in der Lage sein, neue Beispiele zu generieren, die nicht nur plausibel, sondern von realen Beispielen aus dem Problembereich nicht zu unterscheiden sind.

Beispiele für generative Modelle

Naive Bayes ist ein Beispiel für ein generatives Modell, das häufiger als diskriminatives Modell verwendet wird.

Naive Bayes funktioniert beispielsweise durch die Zusammenfassung der Wahrscheinlichkeitsverteilung jeder Eingabevariablen und der Ausgabeklasse. Bei einer Vorhersage wird die Wahrscheinlichkeit für jedes mögliche Ergebnis für jede Variable berechnet, die unabhängigen Wahrscheinlichkeiten werden kombiniert, und das wahrscheinlichste Ergebnis wird vorhergesagt. Umgekehrt können die Wahrscheinlichkeitsverteilungen für jede Variable abgetastet werden, um neue plausible (unabhängige) Merkmalswerte zu erzeugen.

Andere Beispiele für generative Modelle sind die Latent Dirichlet Allocation (LDA) und das Gaussian Mixture Model (GMM).

Tiefe Lernmethoden können als generative Modelle verwendet werden. Zwei bekannte Beispiele sind die Restricted Boltzmann Machine (RBM) und das Deep Belief Network (DBN).

Zwei moderne Beispiele für generative Deep-Learning-Modellierungsalgorithmen sind der Variational Autoencoder (VAE) und das Generative Adversarial Network (GAN).

Was sind Generative Adversarial Networks?

Generative Adversarial Networks, oder GANs, sind ein Deep-Learning-basiertes generatives Modell.

Ganz allgemein sind GANs eine Modellarchitektur für das Training eines generativen Modells, und es ist üblich, Deep-Learning-Modelle in dieser Architektur zu verwenden.

Die GAN-Architektur wurde erstmals 2014 in der Arbeit „Generative Adversarial Networks“ von Ian Goodfellow et al. beschrieben.

Ein standardisierter Ansatz namens Deep Convolutional Generative Adversarial Networks (DCGAN), der zu stabileren Modellen führte, wurde später von Alec Radford et al. formalisiert. in der Arbeit „Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks“ von 2015 formalisiert.

Die meisten GANs basieren heute zumindest lose auf der DCGAN-Architektur …

– NIPS 2016 Tutorial: Generative Adversarial Networks, 2016.

Die GAN-Modellarchitektur umfasst zwei Teilmodelle: ein Generatormodell zur Generierung neuer Beispiele und ein Diskriminatormodell zur Klassifizierung, ob die generierten Beispiele echt, aus der Domäne, oder gefälscht, vom Generatormodell generiert, sind.

  • Generator. Modell, das verwendet wird, um neue plausible Beispiele aus dem Problembereich zu erzeugen.
  • Diskriminator. Modell, das verwendet wird, um Beispiele als echt (aus der Domäne) oder gefälscht (generiert) zu klassifizieren.

Generative adversarische Netze basieren auf einem spieltheoretischen Szenario, in dem das Generatornetz gegen einen Gegner antreten muss. Das generierende Netz produziert direkt Proben. Sein Gegenspieler, das Diskriminator-Netzwerk, versucht, zwischen Proben aus den Trainingsdaten und Proben aus dem Generator zu unterscheiden.

– Seite 699, Deep Learning, 2016.

Das Generatormodell

Das Generatormodell nimmt einen Zufallsvektor fester Länge als Eingabe und erzeugt eine Stichprobe in der Domäne.

Der Vektor wird nach dem Zufallsprinzip aus einer Gaußschen Verteilung gezogen, und der Vektor wird zum Seeding des generativen Prozesses verwendet. Nach dem Training entsprechen die Punkte in diesem mehrdimensionalen Vektorraum den Punkten in der Problemdomäne und bilden eine komprimierte Darstellung der Datenverteilung.

Dieser Vektorraum wird als latenter Raum oder als Vektorraum mit latenten Variablen bezeichnet. Latente Variablen oder verborgene Variablen sind Variablen, die für eine Domäne wichtig, aber nicht direkt beobachtbar sind.

Eine latente Variable ist eine Zufallsvariable, die wir nicht direkt beobachten können.

– Seite 67, Deep Learning, 2016.

Wir beziehen uns oft auf latente Variablen oder einen latenten Raum als eine Projektion oder Kompression einer Datenverteilung. Das heißt, ein latenter Raum bietet eine Komprimierung oder High-Level-Konzepte der beobachteten Rohdaten wie der Eingangsdatenverteilung. Im Falle von GANs weist das Generatormodell den Punkten in einem ausgewählten latenten Raum eine Bedeutung zu, so dass neue Punkte aus dem latenten Raum dem Generatormodell als Eingabe zur Verfügung gestellt und zur Erzeugung neuer und unterschiedlicher Ausgabebeispiele verwendet werden können.

Maschinenlernmodelle können den statistischen latenten Raum von Bildern, Musik und Geschichten erlernen und dann aus diesem Raum Stichproben ziehen, um neue Kunstwerke mit ähnlichen Merkmalen zu erzeugen, wie sie das Modell in seinen Trainingsdaten gesehen hat.

– Seite 270, Deep Learning with Python, 2017.

Nach dem Training wird das Generatormodell beibehalten und zur Erzeugung neuer Muster verwendet.

Beispiel für das GAN-Generatormodell

Beispiel für das GAN-Generatormodell

Das Diskriminatormodell

Das Diskriminatormodell nimmt ein Beispiel aus der Domäne als Eingabe (real oder generiert) und sagt ein binäres Klassenlabel von real oder fake (generiert) voraus.

Das echte Beispiel stammt aus dem Trainingsdatensatz. Die generierten Beispiele werden vom Generatormodell ausgegeben.

Der Diskriminator ist ein normales (und gut verstandenes) Klassifizierungsmodell.

Nach dem Trainingsprozess wird das Diskriminatormodell verworfen, da wir uns für den Generator interessieren.

Gelegentlich kann der Generator wiederverwendet werden, da er gelernt hat, effektiv Merkmale aus Beispielen im Problembereich zu extrahieren. Einige oder alle Schichten der Merkmalsextraktion können in Transfer-Learning-Anwendungen mit denselben oder ähnlichen Eingabedaten verwendet werden.

Wir schlagen vor, dass eine Möglichkeit, gute Bildrepräsentationen aufzubauen, darin besteht, Generative Adversarial Networks (GANs) zu trainieren und später Teile der Generator- und Diskriminator-Netzwerke als Merkmalsextraktoren für überwachte Aufgaben wiederzuverwenden

– Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks, 2015.

Beispiel für das GAN-Diskriminatormodell

Beispiel für das GAN-Diskriminatormodell

GANs als Zwei-Spieler-Spiel

Generative Modellierung ist ein unbeaufsichtigtes Lernproblem, wie wir im vorigen Abschnitt erörtert haben, obwohl eine clevere Eigenschaft der GAN-Architektur darin besteht, dass das Training des generativen Modells als überwachtes Lernproblem angelegt ist.

Die beiden Modelle, der Generator und der Diskriminator, werden gemeinsam trainiert. Der Generator erzeugt einen Stapel von Proben, die zusammen mit echten Beispielen aus dem Bereich dem Diskriminator zur Verfügung gestellt und als echt oder falsch klassifiziert werden.

Der Diskriminator wird dann aktualisiert, um in der nächsten Runde echte und falsche Proben besser unterscheiden zu können, und, was wichtig ist, der Generator wird auf der Grundlage dessen aktualisiert, wie gut die erzeugten Proben den Diskriminator getäuscht haben.

Man kann sich den Generator wie einen Fälscher vorstellen, der versucht, gefälschtes Geld herzustellen, und den Diskriminator wie die Polizei, die versucht, rechtmäßiges Geld zuzulassen und gefälschtes Geld zu fangen. Um in diesem Spiel erfolgreich zu sein, muss der Fälscher lernen, Geld herzustellen, das von echtem Geld nicht zu unterscheiden ist, und das Generator-Netzwerk muss lernen, Stichproben zu erstellen, die aus derselben Verteilung wie die Trainingsdaten gezogen werden.

– NIPS 2016 Tutorial: Generative Adversarial Networks, 2016.

Auf diese Weise konkurrieren die beiden Modelle gegeneinander, sie sind im Sinne der Spieltheorie gegnerisch und spielen ein Nullsummenspiel.

Da der GAN-Rahmen natürlich mit den Werkzeugen der Spieltheorie analysiert werden kann, nennen wir GANs „adversarisch“.

– NIPS 2016 Tutorial: Generative Adversarial Networks, 2016.

In diesem Fall bedeutet Nullsummenspiel, dass der Diskriminator bei erfolgreicher Identifizierung von echten und gefälschten Proben belohnt wird oder keine Änderung der Modellparameter erforderlich ist, während der Generator mit großen Updates der Modellparameter bestraft wird.

Wenn der Generator den Diskriminator täuscht, wird er belohnt oder es ist keine Änderung der Modellparameter erforderlich, aber der Diskriminator wird bestraft und seine Modellparameter werden aktualisiert.

Bis zu einem gewissen Grad erzeugt der Generator jedes Mal perfekte Replikate aus dem Eingabebereich, und der Diskriminator kann den Unterschied nicht erkennen und sagt in jedem Fall „unsicher“ voraus (z. B. 50 % für echt und unecht). Dies ist nur ein Beispiel für einen idealisierten Fall; wir müssen nicht an diesen Punkt gelangen, um zu einem nützlichen Generatormodell zu gelangen.

Beispiel für die Architektur des generativen kontradiktorischen Netzes

Beispiel für die Architektur des generativen kontradiktorischen Netzes

Der Diskriminator versucht zu lernen, Proben korrekt als echt oder gefälscht zu klassifizieren. Gleichzeitig versucht der Generator, dem Klassifikator vorzugaukeln, dass seine Proben echt sind. Bei Konvergenz sind die Proben des Generators nicht mehr von echten Daten zu unterscheiden, und der Diskriminator gibt überall 1/2 aus. Der Diskriminator kann dann verworfen werden.

– Seite 700, Deep Learning, 2016.

GANs und Convolutional Neural Networks

GANs arbeiten typischerweise mit Bilddaten und verwenden Convolutional Neural Networks, oder CNNs, als Generator- und Diskriminatormodelle.

Der Grund dafür mag zum einen darin liegen, dass die erste Beschreibung der Technik auf dem Gebiet des Computersehens erfolgte und CNNs und Bilddaten verwendet wurden, und zum anderen in den bemerkenswerten Fortschritten, die in den letzten Jahren bei der Verwendung von CNNs im Allgemeinen zu verzeichnen waren, um bei einer Reihe von Computersehaufgaben, wie z. B. der Objekterkennung und der Gesichtserkennung, Ergebnisse zu erzielen, die dem neuesten Stand der Technik entsprechen.

Die Modellierung von Bilddaten bedeutet, dass der latente Raum, die Eingabe für den Generator, eine komprimierte Darstellung der zum Trainieren des Modells verwendeten Bilder oder Fotos liefert. Es bedeutet auch, dass der Generator neue Bilder oder Fotografien erzeugt und eine Ausgabe liefert, die von den Entwicklern oder Nutzern des Modells leicht angesehen und bewertet werden kann.

Vielleicht ist es vor allem diese Tatsache, die Fähigkeit, die Qualität der erzeugten Ausgabe visuell zu bewerten, die sowohl zum Fokus von Computer-Vision-Anwendungen mit CNNs als auch zu den massiven Sprüngen in der Leistungsfähigkeit von GANs im Vergleich zu anderen generativen Modellen, sei es auf der Basis von Deep Learning oder anderen, geführt hat.

Conditional GANs

Eine wichtige Erweiterung der GANs liegt in ihrer Verwendung zur bedingten Erzeugung einer Ausgabe.

Das generative Modell kann so trainiert werden, dass es neue Beispiele aus dem Eingabebereich generiert, wobei die Eingabe, der Zufallsvektor aus dem latenten Raum, mit einer zusätzlichen Eingabe versehen (konditioniert) wird.

Die zusätzliche Eingabe könnte ein Klassenwert sein, wie z.B. männlich oder weiblich bei der Generierung von Fotografien von Personen, oder eine Ziffer im Falle der Generierung von Bildern handgeschriebener Ziffern.

Generative kontradiktorische Netze können zu einem konditionalen Modell erweitert werden, wenn sowohl der Generator als auch der Diskriminator auf eine zusätzliche Information y konditioniert werden. y könnte jede Art von Hilfsinformation sein, wie z.B. Klassenetiketten oder Daten aus anderen Modalitäten. Wir können die Konditionierung durchführen, indem wir y sowohl in den Diskriminator als auch in den Generator als zusätzliche Eingabeschicht einspeisen.

– Conditional Generative Adversarial Nets, 2014.

Der Diskriminator ist ebenfalls konditioniert, was bedeutet, dass er sowohl mit einem Eingabebild, das entweder echt oder gefälscht ist, als auch mit der zusätzlichen Eingabe versorgt wird. Im Falle einer an ein Klassifizierungsetikett gebundenen Eingabe würde der Diskriminator dann erwarten, dass die Eingabe zu dieser Klasse gehört, was wiederum den Generator lehrt, Beispiele dieser Klasse zu erzeugen, um den Diskriminator zu täuschen.

Auf diese Weise kann ein bedingtes GAN verwendet werden, um Beispiele aus einem Bereich eines bestimmten Typs zu erzeugen.

Noch einen Schritt weiter gedacht, können die GAN-Modelle an ein Beispiel aus dem Bereich, wie z. B. ein Bild, gebunden werden. Dies ermöglicht Anwendungen von GANs wie die Übersetzung von Text in ein Bild oder von Bild in Bild. Dies ermöglicht einige der beeindruckendsten Anwendungen von GANs, wie z. B. die Übertragung von Stilen, die Einfärbung von Fotos, die Umwandlung von Fotos von Sommer in Winter oder von Tag in Nacht usw.

Im Fall von bedingten GANs für die Übersetzung von Bild zu Bild, wie z. B. die Umwandlung von Tag in Nacht, werden dem Diskriminator Beispiele von echten und generierten Nachtfotos sowie (bedingt durch) echte Tagesfotos als Eingabe zur Verfügung gestellt. Der Generator erhält einen Zufallsvektor aus dem latenten Raum sowie (bedingt durch) reale Fotos am Tag als Eingabe.

Beispiel für eine bedingte generative adversarische Netzwerkmodellarchitektur

Beispiel für eine bedingte generative adversarische Netzwerkmodellarchitektur

Warum generative adversarische Netzwerke?

Einer der vielen großen Fortschritte bei der Verwendung von Deep-Learning-Methoden in Bereichen wie dem Computersehen ist eine Technik, die als Datenerweiterung bezeichnet wird.

Die Datenerweiterung führt zu leistungsfähigeren Modellen, indem sie sowohl die Modellfähigkeit erhöht als auch einen Regularisierungseffekt bietet, der den Generalisierungsfehler reduziert. Sie funktioniert durch die Erstellung neuer, künstlicher, aber plausibler Beispiele aus dem Eingabeproblembereich, auf dem das Modell trainiert wird.

Die Techniken sind im Falle von Bilddaten primitiv und umfassen Beschneidungen, Spiegelungen, Zooms und andere einfache Transformationen vorhandener Bilder im Trainingsdatensatz.

Erfolgreiche generative Modellierung bietet einen alternativen und potenziell domänenspezifischeren Ansatz für die Datenerweiterung. Tatsächlich ist die Datenerweiterung eine vereinfachte Version der generativen Modellierung, auch wenn sie selten so beschrieben wird.

… die Stichprobe mit latenten (unbeobachteten) Daten zu erweitern. Dies wird als Datenerweiterung bezeichnet. Bei anderen Problemen sind die latenten Daten tatsächliche Daten, die beobachtet werden sollten, aber fehlen.

– Seite 276, The Elements of Statistical Learning, 2016.

In komplexen Bereichen oder Bereichen mit einer begrenzten Menge an Daten bietet die generative Modellierung einen Weg zu mehr Training für die Modellierung. GANs haben in diesem Anwendungsfall in Bereichen wie Deep Reinforcement Learning viel Erfolg gehabt.

Es gibt viele Forschungsgründe, warum GANs interessant und wichtig sind und weiter untersucht werden müssen. Ian Goodfellow skizziert eine Reihe davon in seiner Keynote zur Konferenz 2016 und dem dazugehörigen technischen Bericht mit dem Titel „NIPS 2016 Tutorial: Generative Adversarial Networks“

Zu diesen Gründen gehört die erfolgreiche Fähigkeit von GANs, hochdimensionale Daten zu modellieren, mit fehlenden Daten umzugehen und die Fähigkeit von GANs, multimodale Ergebnisse oder mehrere plausible Antworten zu liefern.

Die vielleicht überzeugendste Anwendung von GANs sind konditionale GANs für Aufgaben, die die Generierung neuer Beispiele erfordern. Goodfellow nennt hier drei Hauptbeispiele:

  • Image Super-Resolution. Die Fähigkeit, hochauflösende Versionen von Eingabebildern zu erzeugen.
  • Kunst schaffen. Die Fähigkeit, großartige neue und künstlerische Bilder, Skizzen, Gemälde und mehr zu schaffen.
  • Bild-zu-Bild-Übersetzung. Die Fähigkeit, Fotos in verschiedene Bereiche zu übersetzen, z. B. von Tag zu Nacht, von Sommer zu Winter und mehr.

Der vielleicht überzeugendste Grund dafür, dass GANs in großem Umfang untersucht, entwickelt und eingesetzt werden, ist ihr Erfolg. GANs sind in der Lage, Fotos zu generieren, die so realistisch sind, dass Menschen nicht erkennen können, dass es sich um Objekte, Szenen und Menschen handelt, die in der Realität nicht existieren.

Erstaunlich ist kein ausreichendes Adjektiv für ihre Fähigkeiten und ihren Erfolg.

Beispiel für die Entwicklung der Fähigkeiten von GANs von 2014 bis 2017

Beispiel für die Entwicklung der Fähigkeiten von GANs von 2014 bis 2017. Entnommen aus The Malicious Use of Artificial Intelligence: Forecasting, Prevention, and Mitigation, 2018.

Further Reading

In diesem Abschnitt finden Sie weitere Ressourcen zum Thema, wenn Sie tiefer einsteigen möchten.

Posts

  • Best Resources for Getting Started With Generative Adversarial Networks (GANs)
  • 18 Impressive Applications of Generative Adversarial Networks (GANs)

Books

  • Chapter 20. Deep Generative Models, Deep Learning, 2016.
  • Chapter 8. Generative Deep Learning, Deep Learning with Python, 2017.
  • Machine Learning: A Probabilistic Perspective, 2012.
  • Pattern Recognition and Machine Learning, 2006.
  • The Elements of Statistical Learning, 2016.

Papers

  • Generative Adversarial Networks, 2014.
  • Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks, 2015.
  • NIPS 2016 Tutorial: Generative Adversarial Networks, 2016.
  • Conditional Generative Adversarial Nets, 2014.
  • The Malicious Use of Artificial Intelligence: Forecasting, Prevention, and Mitigation, 2018.

Artikel

  • Generatives Modell, Wikipedia.
  • Latente Variable, Wikipedia.
  • Generatives Adversariales Netz, Wikipedia.

Zusammenfassung

In diesem Beitrag haben Sie eine sanfte Einführung in Generative Adversarial Networks (GANs) erhalten.

Insbesondere haben Sie gelernt:

  • Kontext für GANs, einschließlich überwachtes vs. unüberwachtes Lernen und diskriminatives Lernen. unüberwachtes Lernen und diskriminative vs. generative Modellierung.
  • GANs sind eine Architektur für das automatische Training eines generativen Modells, indem das unüberwachte Problem als überwacht behandelt wird und sowohl ein generatives als auch ein diskriminatives Modell verwendet wird.
  • GANs bieten einen Weg zur anspruchsvollen domänenspezifischen Datenerweiterung und eine Lösung für Probleme, die eine generative Lösung erfordern, wie z.B. die Übersetzung von Bild zu Bild.

Do you have any questions?
Ask your questions in the comments below and I will do my best to answer.

Develop Generative Adversarial Networks Today!

Generative Adversarial Networks with Python

Develop Your GAN Models in Minutes

…with just a few lines of python code

Discover how in my new Ebook:
Generative Adversarial Networks with Python

It provides self-study tutorials and end-to-end projects on:
DCGAN, conditional GANs, image translation, Pix2Pix, CycleGAN
and much more…

Finally Bring GAN Models to your Vision Projects

Skip the Academics. Just Results.See What’s Inside

Tweet Share Share

Schreibe einen Kommentar

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