Wikipedia · einfach zusammengefasst · Stand
Generative Adversarial Networks
Generative Adversarial Networks (GAN, zu deutsch etwa „erzeugende gegnerische Netzwerke“) sind ein Konzept aus dem Maschinellen Lernen und beschreiben ein …
Inhalt5 Abschnitte
Grundprinzip und Aufbau
Generative Adversarial Networks (GANs; deutsch etwa „erzeugende gegnerische Netzwerke“) sind ein Framework des maschinellen Lernens für generatives beziehungsweise unüberwachtes Lernen. Ein GAN besteht aus zwei künstlichen neuronalen Netzwerken: dem Generator und dem Diskriminator. Sie werden in einem Nullsummenspiel gegeneinander trainiert.
Der Generator erzeugt neue Daten, die einem vorgegebenen Datensatz möglichst ähnlich sein sollen. Der Diskriminator bewertet diese Daten und versucht, echte Daten aus der ursprünglichen Verteilung von den künstlich erzeugten Daten zu unterscheiden. Der Generator hat damit das Ziel, den Diskriminator zu täuschen, während der Diskriminator möglichst zuverlässig zwischen „echt“ und „erzeugt“ unterscheiden soll.
Typischerweise bildet der Generator einen Vektor aus zufällig gewählten latenten Variablen, also verborgenen Einflussgrößen, auf den gewünschten Ergebnisraum ab. Er soll lernen, Ergebnisse nach einer bestimmten Datenverteilung zu erzeugen. Der Diskriminator sieht sowohl echte als auch generierte Daten. Die echten Daten stammen aus einem ausreichend großen Trainingsdatensatz; dieser wird nur vom Diskriminator direkt gesehen. Nach ausreichendem Training soll die erzeugte Verteilung so stark an die echte angeglichen sein, dass echte und generierte Daten nicht mehr unterscheidbar sind.
Training und mathematische Definition
Das ursprüngliche GAN wird als Spiel auf einem Wahrscheinlichkeitsraum (Ω, μ_ref) definiert. Dabei ist μ_ref die Referenzverteilung der echten Daten. Es gibt zwei Spieler:
- Die Strategiemenge des Generators ist 𝒫(Ω), die Menge aller Wahrscheinlichkeitsmaße μ_G auf Ω.
- Die Strategiemenge des Diskriminators ist die Menge der Markov-Kerne μ_D: Ω → 𝒫[0,1]. Dabei bezeichnet 𝒫[0,1] die Menge der Wahrscheinlichkeitsmaße auf dem Intervall [0,1].
Das GAN-Spiel ist ein Nullsummenspiel mit der Zielfunktion L(μ_G, μ_D) := 𝔼_{x∼μ_ref, y∼μ_D(x)}[ln y] + 𝔼_{x∼μ_G, y∼μ_D(x)}[ln(1−y)].
Der Generator versucht, diese Zielfunktion zu minimieren, der Diskriminator versucht, sie zu maximieren. Anschaulich soll der Generator seine Ausgangsverteilung μ_G möglichst an die Referenzverteilung μ_ref angleichen. Der Diskriminator soll einen Wert nahe 1 ausgeben, wenn eine Eingabe aus der Referenzverteilung zu stammen scheint, und einen Wert nahe 0, wenn sie wie eine Eingabe aus der Generatorverteilung aussieht.
Im praktischen Training erzeugt der Generator in jedem Schritt Daten auf Grundlage zufälliger latenter Variablen. Der Diskriminator erhält echte und generierte Daten und schätzt für jede Eingabe ihre Herkunft. Anschließend werden die Gewichte beider Netzwerke durch Backpropagation angepasst. Beim Diskriminator misst die Verlustfunktion, wie richtig er die Daten einsortiert hat. Beim Generator misst sie, wie stark seine erzeugten Daten vom Diskriminator als echt missverstanden wurden. Beide Netzwerke verbessern sich dadurch gegenseitig.
Probleme und Grenzen
Die Konvergenz von GANs, also das stabile Annähern des Trainings an ein gutes Ergebnis, ist häufig problematisch. Während des Trainings kann ein Moduskollaps auftreten. Dabei erzeugt der Generator nur noch eine begrenzte Anzahl hinreichend unterschiedlicher Stichproben, anstatt die Vielfalt der echten Datenverteilung abzubilden.
Außerdem reagieren GANs typischerweise empfindlich auf die Initialisierung der Gewichte und auf die gewählten Hyperparameter. Hyperparameter sind vor dem Training festgelegte Einstellungen des Lernverfahrens. Diese Empfindlichkeit kann das Training erschweren und dazu führen, dass die gewünschte Konvergenz nicht zuverlässig erreicht wird.
Anwendungen
GANs werden in verschiedenen Bereichen eingesetzt. Dazu gehören:
- die Erstellung photorealistischer Bilder zur Visualisierung verschiedener Gegenstände;
- die Modellierung von Bewegungsmustern in Videos;
- die Erstellung von 3D-Modellen von Objekten aus 2D-Bildern;
- die Bildbearbeitung astronomischer Bilder;
- eine natürlichere Gestaltung der Nutzerinteraktion mit Chatbots;
- die Beschleunigung zeitaufwendiger Detektorsimulationen in der Teilchenphysik.
Mit Werkzeugen wie Real-ESRGAN können eigene Bilder und Fotos mithilfe von GANs hochskaliert werden. Die Qualität hängt von der Ausgangsstruktur ab: Systematische oder geometrische Strukturen lassen sich gut hochskalieren, während diffuse Texturen oder organische Strukturen weiterhin Probleme bereiten.
GANs werden außerdem bei Angriffen auf neuronale Netze eingesetzt. Dazu zählen unter anderem Unrestricted Adversarial Examples und Model Inversion Attacks. Solche Angriffe versuchen, aus einem trainierten Modell Informationen über die Trainingsdaten oder die vom Modell gelernten Klassen zu extrahieren.
Geschichte und alternative Modelle
Die Verwendung kompetitiver neuronaler Netzwerke wurde erstmals 2013 von Wei Li, Melvin Gauci und Roderich Gross vorgeschlagen. 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. In Anlehnung an den Turing-Test wird die Methode auch „Turing-Lernen“ (englisch „Turing learning“) genannt.
2014 wurden GANs von der Arbeitsgruppe um Ian Goodfellow vorgestellt. Seitdem entstanden zahlreiche Varianten, beispielsweise StyleGAN. In der aktuellen Forschung wird der GAN-Ansatz häufig mit anderen Verfahren kombiniert. So nutzt Stable Diffusion eine diskriminative Verlustfunktion im Training der first stage.
Alternative generative Modelle sind Variational Autoencoder, energiebasierte Modelle und Modelle auf Grundlage von Normalizing Flows.