Generative Adversarial Networks (GANs) sind eine der modernen Technologien, die in vielen Anwendungsfällen viel Potenzial bieten, von der Erstellung Ihrer gealterten Bilder und der Erweiterung Ihrer Stimme bis hin zur Bereitstellung verschiedener Anwendungen in der Medizin und anderen Branchen.
Diese fortschrittliche Technologie kann Ihnen dabei helfen, Ihre Produkte und Dienstleistungen zu gestalten. Es kann auch zur Verbesserung der Bildqualität verwendet werden, um Erinnerungen zu bewahren.
Während GANs für viele ein Segen sind, finden es manche besorgniserregend.
Aber was ist diese Technologie genau?
In diesem Artikel werde ich erörtern, was ein GAN ist, wie es funktioniert und welche Anwendungen es hat.
Also, lass uns gleich eintauchen!
Inhaltsverzeichnis
Was ist ein Generative Adversarial Network?
Ein Generative Adversarial Network (GAN) ist ein Framework für maschinelles Lernen, das aus zwei neuronalen Netzwerken besteht, die miteinander konkurrieren, um genauere Vorhersagen wie Bilder, einzigartige Musik, Zeichnungen usw. zu erstellen.
GANs wurde 2014 von einem Informatiker und Ingenieur, Ian Goodfellow, und einigen seiner Kollegen entworfen. Sie sind einzigartige tiefe neuronale Netze, die in der Lage sind, neue Daten zu generieren, die denen ähneln, auf denen sie trainiert werden. Sie treten in einem Nullsummenspiel an, bei dem ein Agent das Spiel verliert, während der andere gewinnt.
Ursprünglich wurden GANs als generatives Modell für maschinelles Lernen vorgeschlagen, hauptsächlich für unüberwachtes Lernen. Aber GANs sind auch hilfreich für vollständig überwachtes Lernen, halbüberwachtes Lernen und bestärkendes Lernen.
Die beiden konkurrierenden Blöcke in einem GAN sind:
Der Generator: Es ist ein konvolutionelles neuronales Netzwerk, das künstlich Ausgaben erzeugt, die den tatsächlichen Daten ähneln.
Der Diskriminator: Es ist ein dekonvolutionelles neuronales Netzwerk, das die künstlich erzeugten Ausgaben identifizieren kann.
Schlüssel Konzepte
Um das Konzept von GAN besser zu verstehen, wollen wir kurz einige wichtige verwandte Konzepte verstehen.
Maschinelles Lernen (ML)
Maschinelles Lernen ist ein Teil der künstlichen Intelligenz (KI), bei dem es darum geht, Modelle zu lernen und zu erstellen, die Daten nutzen, um die Leistung und Genauigkeit zu verbessern, während Aufgaben ausgeführt oder Entscheidungen oder Vorhersagen getroffen werden.
ML-Algorithmen erstellen Modelle basierend auf Trainingsdaten und verbessern sich durch kontinuierliches Lernen. Sie werden in zahlreichen Bereichen eingesetzt, darunter Computer Vision, automatisierte Entscheidungsfindung, E-Mail-Filterung, Medizin, Bankwesen, Datenqualität, Cybersicherheit, Spracherkennung, Empfehlungssysteme und mehr.
Diskriminierendes Modell
Beim Deep Learning und maschinellen Lernen fungiert das Unterscheidungsmodell als Klassifikator, um zwischen einer Reihe von Ebenen oder zwei Klassen zu unterscheiden.
Zum Beispiel zwischen verschiedenen Früchten oder Tieren unterscheiden.
Generatives Modell
In generativen Modellen werden Stichproben berücksichtigt, um neue realistische Bilder zu erstellen. Es lernt aus realen Bildern einiger Objekte oder Lebewesen, um seine eigenen realistischen, aber nachgeahmten Ideen zu entwickeln. Diese Modelle sind von zwei Arten:
Variationale Autoencoder: Sie verwenden Encoder und Decoder, die separate neuronale Netze sind. Dies funktioniert, weil ein gegebenes realistisches Bild einen Encoder durchläuft, um diese Bilder als Vektoren in einem latenten Raum darzustellen.
Als nächstes wird ein Decoder verwendet, um diese Interpretationen zu nehmen, um einige realistische Kopien dieser Bilder zu erzeugen. Anfangs kann die Bildqualität niedrig sein, aber sie wird sich verbessern, nachdem der Decoder voll funktionsfähig ist, und Sie können den Encoder ignorieren.
Generative Adversarial Networks (GANs): Wie oben erläutert, ist ein GAN ein tiefes neuronales Netzwerk, das in der Lage ist, neue, ähnliche Daten aus den ihm bereitgestellten Daten zu generieren. Es fällt unter unüberwachtes maschinelles Lernen, das eine der unten diskutierten Arten des maschinellen Lernens ist.
Überwachtes Lernen
Beim überwachten Training wird eine Maschine mit gut gekennzeichneten Daten trainiert. Das bedeutet, dass einige Daten bereits mit der richtigen Antwort markiert sind. Hier werden der Maschine einige Daten oder Beispiele gegeben, damit der überwachte Lernalgorithmus die Trainingsdaten analysieren und aus diesen gekennzeichneten Daten ein genaues Ergebnis erzeugen kann.
Unbeaufsichtigtes Lernen
Beim unüberwachten Lernen wird eine Maschine mit Hilfe von Daten trainiert, die weder gekennzeichnet noch klassifiziert sind. Es ermöglicht dem maschinellen Lernalgorithmus, diese Daten ohne Anleitung zu bearbeiten. Bei dieser Art des Lernens besteht die Aufgabe der Maschine darin, unsortierte Daten anhand von Mustern, Ähnlichkeiten und Unterschieden ohne vorheriges Datentraining zu kategorisieren.
GANs sind also mit der Durchführung von unüberwachtem Lernen in ML verbunden. Es verfügt über zwei Modelle, die die Muster aus Eingabedaten automatisch aufdecken und lernen können. Diese beiden Modelle sind Generator und Diskriminator.
Lassen Sie uns sie ein bisschen besser verstehen.
Teile eines GAN
Der Begriff „Gegner“ ist in GAN enthalten, weil er aus zwei Teilen besteht – dem konkurrierenden Generator und dem konkurrierenden Nenner. Dies geschieht, um Datenvariationen in einem Datensatz zu erfassen, zu untersuchen und zu replizieren. Lassen Sie uns diese beiden Teile eines GAN besser verstehen.
Generator
Ein Generator ist ein neuronales Netzwerk, das lernen und gefälschte Datenpunkte wie Bilder und Audio erzeugen kann, die realistisch aussehen. Es wird im Training verwendet und wird durch kontinuierliches Lernen besser.
Die vom Generator generierten Daten dienen als Negativbeispiel für den anderen Teil – den Nenner, den wir als nächstes sehen werden. Der Generator nimmt einen Zufallsvektor fester Länge als Eingabe, um eine Abtastausgabe zu erzeugen. Es zielt darauf ab, die Ausgabe vor dem Diskriminator zu präsentieren, damit dieser klassifizieren kann, ob es echt oder gefälscht ist.
Mit diesen Komponenten wird der Generator trainiert:
- Verrauschte Eingabevektoren
- Ein Generatornetzwerk, um eine zufällige Eingabe in die Dateninstanz umzuwandeln
- Ein Diskriminatornetzwerk zur Klassifizierung der generierten Daten
- Ein Generatorverlust, um den Generator zu bestrafen, da er den Diskriminator nicht täuschen kann
Der Generator arbeitet wie ein Dieb, um realistische Daten zu replizieren und zu erstellen, um den Diskriminator zu täuschen. Es zielt darauf ab, mehrere durchgeführte Überprüfungen zu umgehen. Obwohl es in der Anfangsphase schrecklich scheitern kann, wird es immer besser, bis es mehrere realistische, qualitativ hochwertige Daten generiert und die Tests vermeiden kann. Nachdem diese Fähigkeit erreicht ist, können Sie nur den Generator verwenden, ohne einen separaten Diskriminator zu benötigen.
Diskriminator
Ein Diskriminator ist auch ein neuronales Netzwerk, das zwischen einem gefälschten und einem echten Bild oder anderen Datentypen unterscheiden kann. Wie ein Generator spielt es während der Trainingsphase eine wichtige Rolle.
Es handelt wie die Polizei, um den Dieb zu fangen (gefälschte Daten durch den Generator). Es zielt darauf ab, falsche Bilder und Anomalien in einer Dateninstanz zu erkennen.
Wie bereits erwähnt, lernt der Generator und verbessert sich ständig, um einen Punkt zu erreichen, an dem er selbstständig qualitativ hochwertige Bilder erzeugt, die keinen Diskriminator erfordern. Wenn die hochwertigen Daten des Generators durch den Diskriminator geleitet werden, kann dieser nicht mehr zwischen echtem und gefälschtem Bild unterscheiden. Sie können also nur mit dem Generator fahren.
Wie funktioniert GAN?
In einem Generative Adversarial Network (GAN) gibt es drei Dinge:
- Ein generatives Modell zur Beschreibung der Art und Weise, wie Daten generiert werden.
- Eine gegnerische Umgebung, in der ein Modell trainiert wird.
- Deep Neural Networks als KI-Algorithmen für das Training.
Die beiden neuronalen Netze von GAN – Generator und Diskriminator – werden eingesetzt, um ein gegnerisches Spiel zu spielen. Der Generator verwendet die Eingabedaten, wie etwa Audiodateien, Bilder usw., um eine ähnliche Dateninstanz zu erzeugen, während der Diskriminator die Authentizität dieser Dateninstanz validiert. Letzteres bestimmt, ob die von ihm überprüfte Dateninstanz echt ist oder nicht.
Sie möchten beispielsweise überprüfen, ob ein bestimmtes Bild echt oder gefälscht ist. Sie können manuell generierte Dateneingaben verwenden, um den Generator zu speisen. Als Ausgabe werden neue, replizierte Bilder erstellt.
Dabei zielt der Generator darauf ab, dass alle von ihm generierten Bilder als authentisch angesehen werden, obwohl sie gefälscht sind. Es möchte passable Ergebnisse erzielen, um zu lügen und nicht erwischt zu werden.
Als nächstes geht diese Ausgabe zusammen mit einer Reihe von Bildern aus echten Daten an den Diskriminator, um zu erkennen, ob diese Bilder authentisch sind oder nicht. Es wirkt sich nachteilig auf den Generator aus, egal wie sehr er versucht, es nachzuahmen; Der Diskriminator hilft dabei, tatsächliche Daten von gefälschten zu unterscheiden.
Der Diskriminator verwendet sowohl gefälschte als auch echte Daten, um eine Wahrscheinlichkeit von 0 oder 1 zurückzugeben. Hier steht 1 für Authentizität, während 0 für Fälschung steht.
In diesem Prozess gibt es zwei Rückkopplungsschleifen:
- Der Generator verbindet eine Rückkopplungsschleife mit einem Diskriminator
- Der Diskriminator schließt sich einer weiteren Rückkopplungsschleife mit einem Satz realer Bilder an
Ein GAN-Training funktioniert, weil sowohl Generator als auch Diskriminator im Training sind. Der Generator lernt kontinuierlich, indem er falsche Eingaben weitergibt, während der Diskriminator lernt, die Erkennung zu verbessern. Hier sind beide dynamisch.
Der Diskriminator ist ein Faltungsnetzwerk, das in der Lage ist, ihm zugeführte Bilder zu kategorisieren. Es funktioniert als binomialer Klassifikator, um Bilder als gefälscht oder echt zu kennzeichnen.
Andererseits ist der Generator wie ein inverses Faltungsnetzwerk, das zufällige Datenproben nimmt, um Bilder zu erzeugen. Aber der Diskriminator verifiziert Daten mit Hilfe von Downsampling-Techniken wie Max-Pooling.
Beide Netzwerke versuchen, eine gegensätzliche und unterschiedliche Verlust- oder Zielfunktion in einem kontradiktorischen Spiel zu optimieren. Ihre Verluste ermöglichen es ihnen, noch härter gegeneinander vorzugehen.
Arten von GANs
Generative Adversarial Networks sind je nach Implementierung unterschiedlich. Hier sind die wichtigsten GAN-Typen, die aktiv verwendet werden:
- Bedingtes GAN (CGAN): Es handelt sich um eine Deep-Learning-Technik, die spezifische bedingte Parameter umfasst, um die Unterscheidung zwischen echten und gefälschten Daten zu erleichtern. Es enthält auch einen zusätzlichen Parameter – „y“ in der Generatorphase, um entsprechende Daten zu erzeugen. Außerdem werden dieser Eingabe Labels hinzugefügt und dem Diskriminator zugeführt, damit er überprüfen kann, ob die Daten echt oder gefälscht sind.
- Vanilla GAN: Es ist ein einfacher GAN-Typ, bei dem der Diskriminator und der Generator einfachere und mehrschichtige Perceptrons sind. Seine Algorithmen sind einfach und optimieren die mathematische Gleichung mit Hilfe des stochastischen Gradientenabstiegs.
- Deep Convolutional GAN (DCGAN): Es ist beliebt und gilt als die erfolgreichste GAN-Implementierung. DCGAN besteht eher aus ConvNets als aus mehrschichtigen Perceptrons. Diese ConvNets werden angewendet, ohne Techniken wie Max-Pooling oder vollständiges Verbinden der Schichten zu verwenden.
- Super Resolution GAN (SRGAN): Dies ist eine GAN-Implementierung, die neben einem gegnerischen Netzwerk ein tiefes neuronales Netzwerk verwendet, um Bilder von hoher Qualität zu erzeugen. SRGAN ist besonders nützlich beim effizienten Hochskalieren von Originalbildern mit niedriger Auflösung, sodass ihre Details verbessert und Fehler minimiert werden.
- Laplace-Pyramiden-GAN (LAPGAN): Dies ist eine invertierbare und lineare Darstellung, die mehrere Bandpassbilder enthält, die acht Zwischenräume voneinander entfernt mit niederfrequenten Resten platziert sind. LAPGAN verwendet mehrere Diskriminator- und Generatornetzwerke und mehrere Ebenen der Laplace-Pyramide.
LAPGAN ist weit verbreitet, da es eine erstklassige Bildqualität erzeugt. Diese Bilder werden zuerst auf jeder Pyramidenebene heruntergesampelt und dann auf jeder Ebene hochskaliert, wobei die Ideen mit etwas Rauschen versehen werden, bis sie die ursprüngliche Größe erreichen.
Anwendungen von GANs
Generative Adversarial Networks werden in verschiedenen Bereichen eingesetzt, wie zum Beispiel:
Wissenschaft
GANs können eine genaue und schnellere Möglichkeit bieten, die Bildung von Hochenergiestrahlen zu modellieren und physikalische Experimente durchzuführen. Diese Netzwerke können auch trainiert werden, um Engpässe bei der Durchführung von Simulationen für die Teilchenphysik abzuschätzen, die große Ressourcen verbrauchen.
GANs können die Simulation beschleunigen und die Simulationstreue verbessern. Darüber hinaus können GANs helfen, dunkle Materie zu untersuchen, indem sie Gravitationslinsen simulieren und astronomische Bilder verbessern.
Videospiele
Die Welt der Videospiele hat auch GANs genutzt, um zweidimensionale Daten mit niedriger Auflösung hochzuskalieren, die in älteren Videospielen verwendet werden. Es hilft Ihnen, solche Daten durch Bildtraining in 4k- oder sogar höheren Auflösungen neu zu erstellen. Als Nächstes können Sie die Daten oder Bilder herunterrechnen, um sie für die tatsächliche Auflösung des Videospiels geeignet zu machen.
Bieten Sie Ihren GAN-Modellen eine angemessene Schulung. Sie können im Vergleich zu den nativen Daten schärfere und klarere 2D-Bilder von beeindruckender Qualität bieten, während die Details des echten Bildes, wie z. B. Farben, erhalten bleiben.
Zu den Videospielen, die GANs genutzt haben, gehören Resident Evil Remake, Final Fantasy VIII und IX und mehr.
Kunst und Mode
Sie können GANs verwenden, um Kunst zu erzeugen, z. B. um Bilder von Personen zu erstellen, die nie existiert haben, In-Paint-Fotografien, Bilder von unwirklichen Models zu erstellen und vieles mehr. Es wird auch in Zeichnungen verwendet, die virtuelle Schatten und Skizzen erzeugen.
Werbung
Die Verwendung von GANs zum Erstellen und Produzieren Ihrer Anzeigen spart Zeit und Ressourcen. Wie oben gezeigt, können Sie, wenn Sie Ihren Schmuck verkaufen möchten, mit Hilfe von GAN ein imaginäres Modell erstellen, das wie ein echter Mensch aussieht.
Auf diese Weise können Sie das Model dazu bringen, Ihren Schmuck zu tragen und ihn Ihren Kunden zu präsentieren. Es erspart Ihnen, ein Model zu mieten und dafür zu bezahlen. Sie können sogar die zusätzlichen Ausgaben wie die Bezahlung des Transports, die Anmietung eines Studios, die Vermittlung von Fotografen, Maskenbildnern usw. eliminieren.
Dies wird erheblich helfen, wenn Sie ein wachsendes Unternehmen sind und es sich nicht leisten können, ein Model einzustellen oder eine Infrastruktur für Werbeaufnahmen zu beherbergen.
Audiosynthese
Mithilfe von GANs können Sie Audiodateien aus einer Reihe von Audioclips erstellen. Dies wird auch als generatives Audio bezeichnet. Bitte verwechseln Sie dies nicht mit Amazon Alexa, Apple Siri oder anderen KI-Stimmen, bei denen Stimmfragmente gut zusammengefügt und bei Bedarf produziert werden.
Stattdessen verwendet generatives Audio neuronale Netze, um die statistischen Eigenschaften einer Audioquelle zu untersuchen. Als nächstes reproduziert es diese Eigenschaften direkt in einem bestimmten Kontext. Hier stellt die Modellierung dar, wie sich die Sprache nach jeder Millisekunde ändert.
Lernen übertragen
Fortgeschrittene Studien zum Transferlernen nutzen GANs, um die neuesten Funktionsräume wie Deep Reinforcement Learning auszurichten. Dazu werden die Einbettungen der Quelle und die angestrebte Aufgabe dem Diskriminator zugeführt, um den Kontext zu bestimmen. Als nächstes wird das Ergebnis über den Encoder zurück propagiert. Auf diese Weise lernt das Modell weiter.
Andere Anwendungen von GANs umfassen:
- Diagnose des vollständigen oder teilweisen Sehverlusts durch Erkennung von Glaukombildern
- Visualisieren Sie Industriedesign, Innenarchitektur, Kleidungsstücke, Schuhe, Taschen und mehr
- forensische Gesichtszüge einer erkrankten Person rekonstruieren
- Erstellen Sie 3D-Modelle eines Objekts aus einem Bild, erzeugen Sie neue Objekte als 3D-Punktwolke, modellieren Sie Bewegungsmuster in einem Video
- Präsentieren Sie das Aussehen einer Person mit wechselndem Alter
- Datenerweiterung wie die Erweiterung des DNN-Klassifikators
- Zeichnen Sie ein fehlendes Feature in eine Karte ein, verbessern Sie Straßenansichten, übertragen Sie Kartenstile und vieles mehr
- Bilder produzieren, ein Bildsuchsystem ersetzen etc.
- Generieren Sie Steuereingänge für ein nichtlineares dynamisches System mithilfe einer GAN-Variation
- Analysieren Sie die Auswirkungen des Klimawandels auf ein Haus
- Erstellen Sie das Gesicht einer Person, indem Sie ihre Stimme als Eingabe verwenden
- Erstellen Sie neue Moleküle für mehrere Proteinziele bei Krebs, Fibrose und Entzündungen
- Animieren Sie Gifs aus einem normalen Bild
Es gibt viele weitere Anwendungen von GANs in verschiedenen Bereichen, und ihre Verwendung nimmt zu. Es gibt jedoch auch mehrere Fälle von Missbrauch. GAN-basierte menschliche Bilder wurden für finstere Anwendungsfälle wie das Produzieren gefälschter Videos und Bilder verwendet.
GANs können auch verwendet werden, um realistische Fotos und Profile von Menschen in sozialen Medien zu erstellen, die es auf der Erde nie gegeben hat. Andere besorgniserregende Missbrauchsfälle von GNAs sind die Erstellung gefälschter Pornografie ohne Zustimmung der vorgestellten Personen, die Verbreitung gefälschter Videos von politischen Kandidaten und so weiter.
Obwohl GNAs in vielen Bereichen ein Segen sein können, kann ihr Missbrauch auch katastrophal sein. Daher müssen geeignete Richtlinien für seine Verwendung durchgesetzt werden.
Fazit
GANs sind ein bemerkenswertes Beispiel für moderne Technologie. Es bietet eine einzigartige und bessere Möglichkeit, Daten zu generieren und Funktionen wie visuelle Diagnose, Bildsynthese, Forschung, Datenerweiterung, Kunst und Wissenschaft und vieles mehr zu unterstützen.
Sie könnten auch an Low-Code- und No-Code-Plattformen für maschinelles Lernen zum Erstellen innovativer Anwendungen interessiert sein.