Generative Adversarial Networks
Generative Adversarial Networks (GAN, zu deutsch etwa „erzeugende gegnerische Netzwerke“) sind in der Informatik eine Gruppe von Algorithmen für unüberwachtes Lernen.
Eigenschaften
Generative Adversarial Networks bestehen aus zwei künstlichen neuronalen Netzwerken, die ein Nullsummenspiel durchführen. Eines davon erstellt Kandidaten (der Generator), das zweite neuronale Netzwerk bewertet die Kandidaten (der Diskriminator).[1] Typischerweise bildet der Generator von einem Vektor aus latenten Variablen auf den gewünschten Ergebnisraum ab. Ziel des Generators ist es zu lernen, Ergebnisse nach einer bestimmten Verteilung zu erzeugen. Der Diskriminator wird hingegen darauf trainiert, die Ergebnisse des Generators von den Daten aus der echten, vorgegebenen Verteilung zu unterscheiden. Die Zielfunktion des Generators besteht dann darin, Ergebnisse zu erzeugen, die der Diskriminator nicht unterscheiden kann. Dadurch soll sich die erzeugte Verteilung nach und nach an die echte Verteilung angleichen.
Aus diesem Grund wird für das Training eines solchen Modells ein ausreichend großer Datensatz benötigt, der aus echten Daten besteht. Mit diesem wird der Diskriminator trainiert, bis dieser eine akzeptable Genauigkeit erreicht. Während des anschließenden Trainings wird dem Generator eine Zufallsauswahl gegeben, die aus einem zuvor definierten Bereich latenter Variablen ausgewählt wird. Aus diesem versucht der Generator eine neue Verteilung zu generieren. Diese Verteilung wird danach dem Diskriminator präsentiert, welcher versucht diese von einer echten zu unterscheiden. Die Gewichte beider Modelle werden unabhängig voneinander durch Backpropagation verbessert, sodass der Generator bessere Verteilungen erstellen kann und der Diskriminator diese besser erkennen kann. Durch dieses Spiel verbessern sich beide Modelle konstant gegenseitig, was bei einer ausreichenden Trainingszeit zu generierten Verteilungen führt, die nicht von echten zu unterscheiden sind.
Mathematische Definition
Das ursprüngliche GAN ist als das folgende Spiel definiert:[1]
Jeder Wahrscheinlichkeitsraum Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle (\Omega, \mu_{ref})} definiert ein GAN-Spiel.
Es gibt 2 Spieler: Generator und Diskriminator.
Die Strategiemenge des Generators ist Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \mathcal P(\Omega)} , die Menge aller Wahrscheinlichkeitsmaße auf Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle (\Omega)} .
Die Strategiemenge des Diskriminators ist die Menge der Markov-Kerne Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \mu_D: \Omega \to \mathcal P[0, 1]} , wobei die Menge der Wahrscheinlichkeitsmaße auf .
Das GAN-Spiel ist ein Nullsummenspiel, mit der Zielfunktion Fehler beim Parsen (Konvertierungsfehler. Der Server („https://wikimedia.org/api/rest_“) hat berichtet: „Cannot get mml. Server problem.“): {\displaystyle L(\mu _{G},\mu _{D}):=\mathbb {E} _{x\sim \mu _{ref},y\sim \mu _{D}(x)}[\ln y]+\mathbb {E} _{x\sim \mu _{G},y\sim \mu _{D}(x)}[\ln(1-y)]}
Der Generator zielt darauf ab, das Ziel zu minimieren, und der Diskriminator zielt darauf ab, das Ziel zu maximieren.
Intuitiv gesprochen, besteht die Aufgabe des Generators darin, sich Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \mu_G \approx \mu_{ref}} , d. h., seine eigene Ausgangsverteilung so weit wie möglich an die Referenzverteilung anzugleichen; die Aufgabe des Diskriminators besteht darin, einen Wert nahe 1 auszugeben, wenn die Eingabe aus der Referenzverteilung zu stammen scheint, und einen Wert nahe 0 auszugeben, wenn die Eingabe so aussieht, als stamme sie aus der Generatorverteilung.
Probleme
Die Konvergenz von Generative Adversarial Networks ist im heutigen Stand häufig problematisch[2]. Während des Trainings kann es zu einem Moduskollaps kommen, wodurch der Generator nur noch eine begrenzte Anzahl hinreichend unterschiedlicher Stichproben erzeugt. Typischerweise sind GANs empfindlich gegenüber der Initialisierung der Gewichte sowie der Hyperparameter.
Verwendung
GANs wurden unter anderem zur Erstellung photorealistischer Bilder zur Visualisierung verschiedener Gegenstände, zur Modellierung von Bewegungsmustern in Videos,[3] zur Erstellung von 3D-Modellen von Objekten aus 2D-Bildern[4] und zur Bildbearbeitung astronomischer Bilder verwendet.[5] GANs werden auch zur natürlichen Gestaltung der Nutzerinteraktion mit Chatbots verwendet.[6] Weiterhin werden GANs in der Teilchenphysik dazu verwendet, zeitaufwendige Detektorsimulationen zu beschleunigen.[7][8]
Des Weiteren können über Tools wie Real-ESRGAN eigene Bilder und Fotos über GANs hochskaliert werden.[9] Abhängig von der Ausgangsstruktur funktioniert die Skalierung besser oder schlechter. Systematische oder geometrische Strukturen können gut hochskaliert werden, diffuse Texturen oder organische Strukturen hingegen bereiten noch Probleme.
GANs kommen zusätzlich im Bereich von verschiedenen Angriffen auf neuronale Netze zum Einsatz. Hierzu zählen unter anderem die Generierung von sogenannten Unrestricted Adversarial Examples[10] oder Model Inversion Attacks[11], welche versuchen aus einem trainierten Modell Informationen zu den Trainingsdaten bzw. den gelernten Klassen zu extrahieren.
Geschichte
Die Verwendung kompetitiver neuronaler Netzwerke wurde erstmals 2013 von Wei Li, Melvin Gauci und Roderich Gross vorgeschlagen.[12] Das Konzept der Generative Adversarial Networks wurde 2014 von Yoshua Bengio, Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair und Aaron Courville entwickelt.[1] In Anlehnung an den Turing-Test wird die Methode auch als „Turing-Lernen“ (englisch Turing learning) bezeichnet.[13]
Alternative Modelle
Variational Autoencoder oder Normalizing-Flow-basierte Modelle sind alternative generative Modelle.
Literatur
- Ian Goodfellow, Yoshua Bengio und Aaron Courville: Deep Learning (Adaptive Computation and Machine Learning), MIT Press, Cambridge (USA), 2016. ISBN 978-0262035613.
Einzelnachweise
- ↑ a b c Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio: Generative Adversarial Nets. In: NIPS. 2014.
- ↑ Mescheder, Lars Geiger, Andreas Nowozin, Sebastian: Which Training Methods for GANs do actually Converge? 13. Januar 2018, arxiv:1801.04406.
- ↑ Generating Videos with Scene Dynamics. In: github.com .
- ↑ 3D Generative Adversarial Network. In: 3dgan.csail.mit.edu .
- ↑ Kevin Schawinski, Ce Zhang, Hantian Zhang, Lucas Fowler, Gokula Krishnan Santhanam: Generative Adversarial Networks recover features in astrophysical images of galaxies beyond the deconvolution limit. In: Instrumentation and Methods for Astrophysics. 1. Februar 2017. arxiv:1702.00403.
- ↑ Larry Greenemeier: When Will Computers Have Common Sense? Ask Facebook. In: Scientific American . 20. Juni 2016. Abgerufen am 31. Juli 2016.
- ↑ Michela Paganini, Luke de Oliveira, Benjamin Nachman: Learning Particle Physics by Example: Location-Aware Generative Adversarial Networks for Physics Synthesis. In: Computing and Software for Big Science. 1, 2017, S. 4. arxiv:1701.05927. bibcode:2017arXiv170105927D. doi:10.1007/s41781-017-0004-6.
- ↑ Martin Erdmann, Jonas Glombitza, Thorben Quast: Precise Simulation of Electromagnetic Calorimeter Showers Using a Wasserstein Generative Adversarial Network. In: Computing and Software for Big Science. 3, 2019, S. 4. arxiv:1807.01954. doi:10.1007/s41781-018-0019-7.
- ↑ https://github.com/xinntao/Real-ESRGAN/
- ↑ Yang Song, Rui Shu, Nate Kushman, Stefano Ermon: Constructing Unrestricted Adversarial Examples with Generative Models. In: Advances in Neural Information Processing Systems 31: Annual Conference on Neural Information Processing Systems 2018. S. 8322--8333 (neurips.cc [PDF; abgerufen am 9. Juni 2022]).
- ↑ Lukas Struppek, Dominik Hintersdorf, Antonio De Almeida Correia, Antonia Adler, Kristian Kersting: Plug & Play Attacks: Towards Robust and Flexible Model Inversion Attacks. In: Proceedings of the 39th International Conference on Machine Learning (ICML). 2022 (arxiv.org [PDF; abgerufen am 9. Juni 2022]).
- ↑ Wei Li, Melvin Gauci und Roderich Gross: A Coevolutionary Approach to Learn Animal Behavior Through Controlled Interaction. In: Proceedings of the 15th Annual Conference on Genetic and Evolutionary Computation (GECCO 2013) Amsterdam, 6. Juli 2013, S. 223–230. doi:10.1145/2463372.2465801
- ↑ Wei Li, Melvin Gauci, Roderich Groß: Turing learning: a metric-free approach to inferring behavior and its application to swarms. In: Swarm Intelligence. 10, Nr. 3, 30. August 2016, S. 211–243. doi:10.1007/s11721-016-0126-1.