Was ist ein GAN?
Ein generatives gegnerisches Netzwerk (GAN) ist eine Deep-Learning-Architektur. Es trainiert zwei neuronale Netzwerke, miteinander zu konkurrieren, um authentischere neue Daten aus einem bestimmten Trainingsdatensatz zu generieren. Sie können beispielsweise neue Bilder aus einer vorhandenen Bilddatenbank oder Originalmusik aus einer Liederdatenbank generieren. Ein GAN wird als kontradiktorisch bezeichnet, weil es zwei verschiedene Netzwerke trainiert und sie gegeneinander ausspielt. Ein Netzwerk generiert neue Daten, indem es ein Eingabedatenmuster nimmt und es so weit wie möglich modifiziert. Das andere Netzwerk versucht vorherzusagen, ob die generierte Datenausgabe in den ursprünglichen Datensatz gehört. Mit anderen Worten, das Prognosenetzwerk bestimmt, ob die generierten Daten falsch oder echt sind. Das System erzeugt neue, verbesserte Versionen gefälschter Datenwerte, bis das Prognosenetzwerk nicht mehr zwischen Fälschung und Original unterscheiden kann.
Was sind einige Anwendungsfälle generativer gegnerischer Netzwerke?
Die GAN-Architektur hat mehrere Anwendungen in verschiedenen Branchen. Im Folgenden geben wir einige Beispiele.
Generieren von Bildern
Generative,miteinander konkurrierende (adversarische) Netze erzeugen realistische Bilder durch textbasierte Eingabeaufforderungen oder durch Veränderung vorhandener Bilder. Sie können dazu beitragen, realistische und eindringliche visuelle Erlebnisse in Videospielen und digitaler Unterhaltung zu schaffen.
GAN kann auch Bilder bearbeiten, z. B. ein Bild mit niedriger Auflösung in eine hohe Auflösung konvertieren oder ein Schwarzweißbild in Farbe umwandeln. Sie kann auch realistische Gesichter, Charaktere und Tiere für Animationen und Videos erstellen.
Generieren von Trainingsdaten für andere Modelle
Beim Machine Learning (ML) wird die Trainingsmenge künstlich vergrößert, indem aus vorhandenen Daten modifizierte Kopien eines Datensatzes erstellt werden.
Sie können generative Modelle zur Datenerweiterung verwenden, um synthetische Daten mit allen Attributen realer Daten zu erstellen. So können Sie beispielsweise betrügerische Transaktionsdaten generieren, die Sie dann zum Trainieren eines anderen ML-Systems zur Betrugserkennung verwenden. Diese Daten können dem System beibringen, genau zwischen verdächtigen und echten Transaktionen zu unterscheiden.
Vervollständigen von fehlenden Informationen
Manchmal möchte man, dass das generative Modell einige fehlende Informationen in einem Datensatz genau errät und ergänzt.
Sie können GAN beispielsweise trainieren, um Bilder von der unterirdischen Bodenbeschaffenheit zu erzeugen, indem Sie die Korrelation zwischen Oberflächendaten und unterirdischen Strukturen verstehen. Durch die Untersuchung bekannter Bilder des Untergrunds können neue Bilder erstellt werden, wobei Geländekarten für Energieanwendungen wie die Kartierung der Geothermie oder die Kohlenstoffabscheidung und -speicherung verwendet werden.
Generieren von 3D-Modelle aus 2D-Daten
GAN kann 3D-Modelle aus 2D-Fotos oder gescannten Bildern generieren. Im Gesundheitswesen kombiniert GAN beispielsweise Röntgenstrahlen und andere Körperscans, um realistische Bilder von Organen für die chirurgische Planung und Simulation zu erstellen.
Wie funktioniert ein generatives gegnerisches Netzwerk?
Ein generatives gegnerisches Netzwerksystem besteht aus zwei tiefen neuronalen Netzwerken — dem Generatornetzwerk und dem Diskriminatornetzwerk. Beide Netze trainieren in einem kontradiktorischen Spiel, bei dem das eine versucht, neue Daten zu generieren, und das andere versucht vorherzusagen, ob es sich bei der Ausgabe um gefälschte oder echte Daten handelt.
Technisch gesehen funktioniert das GAN wie folgt. Eine komplexe mathematische Gleichung bildet die Grundlage für den gesamten Rechenprozess, aber dies ist nur ein vereinfachter Überblick:
- Das neuronale Generatornetzwerk analysiert den Trainingssatz und identifiziert Datenattribute
- Das neuronale Diskriminatornetz analysiert auch die anfänglichen Trainingsdaten und unterscheidet unabhängig voneinander zwischen den Attributen
- Der Generator modifiziert einige Datenattribute, indem er bestimmten Attributen Rauschen (oder zufällige Änderungen) hinzufügt
- Der Generator leitet die modifizierten Daten an den Diskriminator weiter
- Der Diskriminator berechnet die Wahrscheinlichkeit, dass die erzeugte Ausgabe zum Originaldatensatz gehört.
- Der Diskriminator gibt dem Generator einige Hinweise, um die Randomisierung des Rauschvektors im nächsten Zyklus zu reduzieren
Der Generator versucht, die Fehlerwahrscheinlichkeit des Diskriminators zu maximieren, der Diskriminator hingegen versucht, die Fehlerwahrscheinlichkeit zu minimieren. In den Trainingsiterationen entwickeln sich sowohl der Generator als auch der Diskriminator kontinuierlich weiter und konfrontieren sich gegenseitig, bis sie einen Gleichgewichtszustand erreichen. Im Gleichgewichtszustand kann der Diskriminator synthetisierte Daten nicht mehr erkennen. Zu diesem Zeitpunkt ist der Trainingsprozess abgeschlossen.
Beispiel für ein GAN-Training
Lassen Sie uns das Obige anhand eines Beispiels für das GAN-Modell bei der Bild-zu-Bild-Übersetzung kontextualisieren.
Bedenken Sie, dass das Eingabebild ein menschliches Gesicht ist, das das GAN zu modifizieren versucht. Bei den Attributen kann es sich beispielsweise um Augen- oder Ohrenformen handeln. Nehmen wir an, der Generator ändert die realen Bilder, indem er ihnen eine Sonnenbrille hinzufügt. Der Diskriminator erhält eine Reihe von Bildern, einige von echten Menschen mit Sonnenbrille und einige generierte Bilder, die so modifiziert wurden, dass sie Sonnenbrillen enthalten.
Wenn der Diskriminator zwischen falsch und echt unterscheiden kann, aktualisiert der Generator seine Parameter, um noch bessere gefälschte Bilder zu erzeugen. Wenn der Generator Bilder erzeugt, die den Diskriminator täuschen, aktualisiert der Diskriminator seine Parameter. Der Wettbewerb verbessert beide Netzwerke, bis ein Gleichgewicht erreicht ist.
Was sind die Arten von generativen gegnerischen Netzwerken?
Abhängig von den verwendeten mathematischen Formeln und der unterschiedlichen Art und Weise, wie Generator und Diskriminator miteinander interagieren, gibt es verschiedene Arten von GAN-Modellen.
Im Folgenden werden einige häufig verwendete Modelle vorgestellt, die Liste ist jedoch nicht vollständig. Es gibt zahlreiche andere GAN-Typen — wie StyleGAN, CycleGAN und DiscoGAN —, die verschiedene Arten von Problemen lösen.
Vanille-GAN
Dies ist das grundlegende GAN-Modell, das Datenvariationen mit wenig oder keiner Rückkopplung vom Diskriminatornetzwerk erzeugt. Ein Vanille-GAN erfordert in der Regel Erweiterungen für die meisten realen Anwendungsfälle.
Bedingtes GAN
Ein bedingtes GAN (cGAN) führt das Konzept der Konditionalität ein und ermöglicht eine gezielte Datengenerierung. Der Generator und der Diskriminator erhalten zusätzliche Informationen, typischerweise in Form von Klassenbezeichnungen oder einer anderen Form von Konditionierungsdaten.
Bei der Erstellung von Bildern könnte die Bedingung beispielsweise eine Bezeichnung sein, die den Bildinhalt beschreibt. Durch die Konditionierung kann der Generator Daten erzeugen, die bestimmte Bedingungen erfüllen.
Tiefes konvolutionales GAN
Das tiefe konvolutionale GAN (DCGAN) hat die Leistungsfähigkeit von konvolutionalen neuronalen Netzwerken (CNNs) in der Bildverarbeitung erkannt und integriert CNN-Architekturen in GANs.
Bei DCGAN verwendet der Generator transponierte Faltungen zur Hochskalierung der Datenverteilung, und der Diskriminator verwendet ebenfalls Faltungsschichten zur Klassifizierung der Daten. Das DCGAN führt auch architektonische Richtlinien ein, um das Training stabiler zu gestalten.
GAN mit superhoher Auflösung
GANS mit superhoher Auflösung (SRGANs) konzentrieren sich auf die Hochskalierung von Bildern mit niedriger Auflösung auf hohe Auflösung. Ziel ist es, Bilder auf eine höhere Auflösung zu verbessern und gleichzeitig die Bildqualität und die Details beizubehalten.
Laplacian Pyramid GANs (LAPGANs) lösen die Herausforderung, hochauflösende Bilder zu erzeugen, indem sie das Problem in Stufen aufteilen. Sie verwenden einen hierarchischen Ansatz mit mehreren Generatoren und Diskriminatoren, die in verschiedenen Maßstäben oder Auflösungen des Bildes arbeiten. Der Prozess beginnt mit der Erzeugung eines Bildes mit niedriger Auflösung, dessen Qualität sich im Laufe der einzelnen GAN-Stufen verbessert.
Wie kann AWS Ihre generativen gegnerischen Netzwerkanforderungen unterstützen?
Amazon Web Services (AWS) bietet viele Services zur Unterstützung Ihrer GAN-Anforderungen.
Amazon SageMaker ist ein vollständig verwalteter Service, mit dem Sie Daten aufbereiten und Machine-Learning-Modelle erstellen, trainieren und bereitstellen können. Diese Modelle können in vielen Szenarien verwendet werden und SageMaker bietet eine vollständig verwaltete Infrastruktur, Tools und Workflows. Er verfügt über eine Vielzahl von Features, um die Entwicklung und das Training von GAN für jede Anwendung zu beschleunigen.
Amazon Bedrock ist ein vollständig verwalteter Service. Sie können damit auf Basismodelle (FMs) oder trainierte tiefe neuronale Netze von Amazon und führenden Startups für künstliche Intelligenz (KI) zugreifen. Diese FMs sind über APIs verfügbar. Sie können also aus verschiedenen Optionen wählen, um das beste Modell für Ihre Bedürfnisse zu finden. Sie können diese Modelle in Ihren eigenen GAN-Anwendungen verwenden. Mit Amazon Bedrock können Sie schneller skalierbare, zuverlässige und sichere generative KI-Anwendungen entwickeln und bereitstellen. Und Sie müssen sich nicht um die Infrastruktur kümmern.
AWS DeepComposer bietet Ihnen eine kreative Möglichkeit, mit ML zu beginnen. Sie können ein musikalisches Keyboard und die neuesten ML-Techniken ausprobieren, um Ihre ML-Fähigkeiten zu erweitern. Unabhängig von ihrem Hintergrund in ML oder Musik können Ihre Entwickler mit GANs loslegen. Und sie können GAN-Modelle trainieren und optimieren, um Originalmusik zu erstellen.
Beginnen Sie mit generativen gegnerischen Netzwerken auf AWS, indem Sie noch heute ein Konto erstellen.
Nächste Schritte in AWS
Sie erhalten sofort Zugriff auf das kostenlose Kontingent von AWS.
Starten Sie mit der Entwicklung in der AWS-Managementkonsole.