Generative Adversarial Networks
Generative Adversarial Networks (GAN, zu deutsch etwa „erzeugende gegnerische Netzwerke“) sind ein Konzept aus dem Maschinellen Lernen und beschreiben ein Framework für das Training von Netzwerken im Kontext von generativem Lernen bzw. unüberwachtem Lernen. Hierbei werden zwei Netzwerke, der Generator und der Diskriminator gegeneinander trainiert, wobei der Generator versucht Daten zu generieren, die einem ursprünglichen Datensatz sehr ähnlich sind, und der Diskriminator versucht echte und falsche Daten zu unterscheiden. Nach dem Training kann der Generator genutzt werden um Daten zu generieren die den ursprünglichen Daten sehr ähnlich sind.
GANs wurden 2014 von der Arbeitsgruppe um Ian Goodfellow vorgestellt[1] und waren ein sehr prominenter Ansatz im generativen Lernen mit vielen Varianten wie z. B. StyleGAN. In der aktuellen Forschung wird der GAN-Ansatz oft zusätzlich mit anderen Ansätzen genutzt. So nutzt z. B. Stable Diffusion eine diskriminative Verlustfunktion im Training der first stage.
Eigenschaften
BearbeitenGenerative 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.
Das Training der beiden Netzwerke erfolgt gleichzeitig. Wie im maschinellen Lernen üblich, wird für das Training eine ausreichend großer Datensatz benötigt, der aus echten Daten besteht. Dieser Datensatz wird nur vom Diskriminator gesehen. Während des Trainings erzeugt der Generator Vektoren im Zielbereich der Daten basierend auf zufällig gewählten latenten Variablen. Der Diskriminator erhält sowohl die generierten als auch die echten Daten und versucht zu raten aus welcher Gruppe die jeweiligen Daten kommen. In jedem Trainingsschritt werden dann die Gewichte des Diskriminators und des Generators durch Backpropagation verbessert, wobei die Verlustfunktion für den Diskriminator ist, wie richtig der Diskriminator die Daten einsortiert hat, und die Verlustfunktion des Generators ist, wie sehr die generierten Daten vom Diskriminator als echte Daten missverstanden wurden. Durch dieses Vorgehen verbessern sich der Diskriminator und der Generator konstant gegenseitig, was bei einer ausreichenden Trainingszeit zu generierten Verteilungen führt, die nicht von echten zu unterscheiden sind.
Mathematische Definition
BearbeitenDas ursprüngliche GAN ist als das folgende Spiel definiert:[1]
- Jeder Wahrscheinlichkeitsraum definiert ein GAN-Spiel.
- Es gibt 2 Spieler: Generator und Diskriminator.
- Die Strategiemenge des Generators ist , die Menge aller Wahrscheinlichkeitsmaße auf .
- Die Strategiemenge des Diskriminators ist die Menge der Markov-Kerne , wobei die Menge der Wahrscheinlichkeitsmaße auf .
- Das GAN-Spiel ist ein Nullsummenspiel, mit der Zielfunktion
- 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 , 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
BearbeitenDie 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
BearbeitenGANs 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
BearbeitenDie 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
BearbeitenVariational Autoencoder, Energiebasierte Modelle oder Normalizing-Flow-basierte Modelle sind alternative generative Modelle.
Literatur
Bearbeiten- Ian Goodfellow, Yoshua Bengio und Aaron Courville: Deep Learning (Adaptive Computation and Machine Learning), MIT Press, Cambridge (USA), 2016. ISBN 978-0-262-03561-3.
Einzelnachweise
Bearbeiten- ↑ a b c d 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. Archiviert vom am 27. Oktober 2019; abgerufen am 23. Juli 2017. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ 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. Jahrgang, 2017, S. 4, doi:10.1007/s41781-017-0004-6, arxiv:1701.05927, bibcode:2017arXiv170105927D.
- ↑ 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. Jahrgang, 2019, S. 4, doi:10.1007/s41781-018-0019-7, arxiv:1807.01954.
- ↑ 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. Jahrgang, Nr. 3, 30. August 2016, S. 211–243, doi:10.1007/s11721-016-0126-1.