Was sind GANs (Generative Adversarial Networks)?

Generative Adversarial Networks (GANs) sind eine Art von Deep-Learning-Architektur, bei der zwei konkurrierende neuronale Netzwerke verwendet werden, um neue Daten zu generieren. Diese beiden Netzwerke, der Generator und der Diskriminator, trainieren als Gegner, um eine genauere Ausgabe zu erzeugen. GANs können in verschiedenen Bereichen eingesetzt werden, darunter Computer Vision, Robotik, Bildgenerierung, Videosynthese und Natural Language Processing.

Wie funktionieren GANs?

Am besten lässt sich die Funktionsweise von GANs anhand einer Analogie erklären: einem Wettbewerb zwischen einem Kunstfälscher (dem Generator) und einem Kunstkritiker (dem Diskriminator).

  • Der Fälscher (Generator): Das Ziel des Fälschers ist es, Gemälde zu erstellen, die von echten Meisterwerken nicht zu unterscheiden sind. Anfangs sind die Versuche noch grob und offensichtlich gefälscht. Dabei wird zuerst ein zufälliges Bild erstellt (als ob man Farbe auf eine Leinwand werfen würde).
  • Der Kritiker (Diskriminator): Der Kritiker muss echte Gemälde von Fälschungen unterscheiden. Anfangs ist das einfach. Der Kritiker sieht sich sowohl das echte Kunstwerk als auch die Fälschung an und gibt Feedback, das im Wesentlichen lautet: „Das ist eine Fälschung.“
  • Die Feedbackschleife: Der Fälscher nutzt dieses Feedback, um sich zu verbessern. Es lernt, was ein echtes Gemälde ausmacht, und passt seine Technik entsprechend an. Auch der Kritiker wird besser und lernt, subtilere Unvollkommenheiten zu erkennen, während die Fälschungen besser werden.

Dieses „Spiel“ geht weiter und beide Netzwerke werden immer intelligenter. Irgendwann ist der Fälscher so geschickt, dass der Kritiker den Unterschied nicht mehr zuverlässig erkennen kann. An diesem Punkt ist das GAN trainiert und kann neue, sehr realistische Daten generieren.

CNNs im Vergleich zu GANs

Convolutional Neural Networks (CNNs) und Generative Adversarial Networks (GANs) sind beides Deep-Learning-Architekturen, die sich jedoch in ihren Stärken und Anwendungsbereichen unterscheiden. CNNs werden häufig für die Bildklassifizierung und Objekterkennung verwendet, während GANs in der Regel für die Generierung neuer Dateninstanzen konzipiert sind.

Feature

CNNs

GANs

Datennutzung

Weitgehend mit Labels versehene Datasets

Datasets mit oder ohne Label

Ausgabe

Klassifizierung, Featureextraktion

Vielfältige, neue Dateninstanzen

Modelltyp

Diskriminativ

Generativ

Primäre Aufgaben

Bildklassifizierung, Objekterkennung

Bildgenerierung, Datenaugmentation, Erstellung synthetischer Daten

Feature

CNNs

GANs

Datennutzung

Weitgehend mit Labels versehene Datasets

Datasets mit oder ohne Label

Ausgabe

Klassifizierung, Featureextraktion

Vielfältige, neue Dateninstanzen

Modelltyp

Diskriminativ

Generativ

Primäre Aufgaben

Bildklassifizierung, Objekterkennung

Bildgenerierung, Datenaugmentation, Erstellung synthetischer Daten

Es ist wichtig zu wissen, dass CNNs häufig in GAN-Architekturen eingesetzt werden, meist als Diskriminatornetzwerk. Die Aufgabe des Diskriminators, echte Bilder von gefälschten zu unterscheiden, ist ein Bildklassifizierungsproblem, für das sich CNNs mit ihren starken Fähigkeiten zur Feature-Extraktion in der Regel gut eignen.

Häufige GAN-Typen

Alle GANs haben zwar die gleiche Generator-Diskriminator-Struktur, aber es wurden verschiedene Varianten entwickelt, um spezifische Probleme zu lösen. Hier sind einige der wichtigsten Arten:

  • Conditional GAN (cGAN): Was, wenn Sie steuern möchten, was das GAN erstellt? Mit einem cGAN können Sie eine Bedingung hinzufügen. Statt einfach nur „ein zufälliges Gesicht“ zu generieren, können Sie Gemini anweisen, „eine lächelnde Frau mit blonden Haaren“ zu erstellen. Das ist entscheidend für Text-zu-Bild-Anwendungen.
  • CycleGAN: Was, wenn Sie ein Bild von einem Stil in einen anderen transformieren möchten, ohne perfekt passende Bildpaare für das Training zu haben (z. B. ein Foto eines Pferdes in ein Zebra verwandeln)? CycleGAN wurde für diese „entkoppelte Bild-zu-Bild-Transformation“ entwickelt und ist daher für Stilübertragung und Objektverwandlung bekannt.
  • StyleGAN: Dieser GAN-Typ konzentriert sich auf die Erstellung extrem hochwertiger, realistischer Bilder (insbesondere Gesichter) und ermöglicht Nutzern die detaillierte Kontrolle über den „Stil“ des Bildes, z. B. Alter, Haare oder Gesichtsausdruck.
  • Super-Resolution GAN (SRGAN): Dieses GAN ist darauf spezialisiert, ein niedrig aufgelöstes, unscharfes Bild zu nehmen und es in eine scharfe, hoch aufgelöste Version zu konvertieren, indem realistische Details hinzugefügt werden.

Das grundlegende Konzept, zwei gegnerische Netzwerke zu verwenden, ist bei allen Varianten von GANs gleich. Forschende haben jedoch eine Vielzahl von Architektur- und Trainingsmodifikationen untersucht, um Einschränkungen zu beheben und die Leistung für bestimmte Anwendungen zu verbessern.

Wofür werden GANs verwendet?

GANs haben in vielen Branchen neue Möglichkeiten eröffnet. Ihre Anwendungen lassen sich in der Regel in diese Hauptbereiche einteilen:

Inhalte erstellen und bearbeiten

Dies ist die bekannteste Anwendung von GANs. Sie umfasst das Erstellen realistischer Bilder von Menschen, Orten und Objekten, das Erstellen digitaler Kunst und Musik sowie leistungsstarke Bildbearbeitungstools wie Stilübertragung (ein Foto sieht aus wie ein Gemälde), Superauflösung (unscharfe Bilder werden schärfer) und Text-zu-Bild-Synthese.

Datenaugmentation und Datenschutz

Hochwertige Daten sind der Treibstoff des maschinelle Lernens, können aber selten, teuer oder privat sein. GANs helfen, dieses Problem zu lösen, indem sie synthetische Daten generieren. Im Gesundheitswesen können GANs realistische, aber anonyme medizinische Scans erstellen, um Diagnosemodelle zu trainieren, ohne die Privatsphäre der Patienten zu verletzen. Im Finanzwesen können sie synthetische Transaktionsdaten generieren, um bessere Systeme zur Betrugserkennung zu trainieren. Dies hilft dabei, Datenknappheiten zu überwinden und ausgeglichene Datasets zu erstellen.

Simulation und Vorhersage

GANs können die Muster in komplexen Systemen erlernen, um realistische Simulationen zu erstellen. So lassen sich vielfältige Szenarien für das Training selbstfahrender Autos generieren, die nächsten Frames in einem Video vorhersagen oder sogar vielversprechende Molekülstrukturen bei der Arzneimittelentwicklung entdecken.

Anomalie- und Bedrohungserkennung

Wenn eine GAN mit „normalen“ Daten trainiert wird, wird sie sehr gut darin, Dinge zu erkennen, die nicht in das Muster passen. Damit lassen sich betrügerische Finanzaktivitäten erkennen, Netzwerkeinbrüche im Bereich der Internetsicherheit identifizieren und Fehler in der Fertigung finden.

Mit GANs in Google Cloud entwickeln

Die Entwicklung und Bereitstellung von GANs erfordert erhebliche Rechenleistung und eine robuste MLOps-Plattform. Google Cloud bietet Tools, die den gesamten Workflow unterstützen:

  • Für das Erstellen und Verwalten von Modellen: Vertex AI ist eine verwaltete Plattform für maschinelles Lernen, die das Erstellen, Trainieren und Bereitstellen von komplexen Modelle (z. B. GANs) vereinfacht. Es bietet eine einheitliche Umgebung für die Verwaltung Ihrer Daten und Experimente.
  • Für leistungsstarkes Training: Das Training von GANs ist rechenintensiv. Cloud TPUs sind von Google entwickelte Hardwarebeschleuniger, die das Training von Deep-Learning-Modellen erheblich beschleunigen. So können Sie komplexe GAN-Architekturen viel schneller iterieren.
  • Für ein skalierbares Deployment: Sobald Ihr Modell trainiert ist, bietet die Google Kubernetes Engine (GKE) eine leistungsstarke, skalierbare Umgebung für das Deployment containerisierter GANs als Teil einer größeren Anwendung.

Gleich loslegen

Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 „Immer kostenlos“-Produkte kennenzulernen.

Google Cloud