Was ist ein Generatives Adversariales Netzwerk? Ein einfacher Leitfaden

Was ist ein Generatives Adversariales Netzwerk? Ein einfacher Leitfaden
Künstliche Intelligenz (KI) erlebt derzeit eine Art[ Kambrische Explosion] (https://www.pbs.org/wgbh/evolution/library/03/4/l_034_02.html). Was noch vor kurzem wie Science-Fiction aussah, hat sich in den letzten Jahren zur Realität entwickelt. Und das Interesse wächst dank der Veröffentlichung von Tools wie ChatGPT weiter. Aber genau wie bei der kambrischen Explosion ist das, was sich aus dem Evolutionssprung der KI ergibt, nicht nur eine Sache. Es gibt tatsächlich viele Bereiche, in denen wir die KI-Software gleichzeitig weiterentwickeln.
In diesem Beitrag werden wir über eine dieser Arten von KI sprechen: generative adversarische Netzwerke, ein effektives KI-Modell, das für eine Vielzahl von Aufgabentypen verwendet wird.
Diskriminierend vs. Generativ
So wie wir Tierfossilien in Domänen, Königreiche und Stämme einteilen, so klassifizieren wir auch KI-Netzwerke. Auf der höchsten Ebene klassifizieren wir KI-Netzwerke als "diskriminativ" und "generativ". Ein generatives neuronales Netzwerk ist eine KI, die etwas Neues schafft. Dies unterscheidet sich von einem diskriminativen Netzwerk, das etwas bereits Vorhandenes in bestimmte Kategorien einteilt. So wie wir es gerade tun, indem wir generative adversarische Netze (GANs) in entsprechende Klassifizierungen einordnen.
Wenn Sie also in einer Situation sind, in der Sie Text-Tags verwenden möchten, um ein neues visuelles Bild zu erstellen, wie bei Midjourney, würden Sie ein generatives Netzwerk verwenden. Wenn Sie jedoch einen riesigen Haufen Daten haben, die Sie klassifizieren und mit Tags versehen müssen, würden Sie ein diskriminatives Modell verwenden.
Wo fällt das generative adversarische Netzwerk hin?
Der Name impliziert, dass ein GAN generativ ist. Aber das zweite Wort ist auch wichtig. Ein GAN ist eine geschickte Anwendung sowohl diskriminativer als auch generativer Modelle. Ein GAN-Modell wird mit einer anfänglichen Gruppe von klassifizierten Trainingsdaten trainiert. Dann versucht das generative Modell, neue Instanzen zu erzeugen, von denen es glaubt, dass sie in das Modell passen. In einer zweiten Runde erhält das diskriminative Modell sowohl den generierten Inhalt als auch den Inhalt des Trainingssets. Es wird versuchen, den Inhalt entweder als generiert oder als Teil des Trainingssatzes zu klassifizieren.
Dies ist der adversarische Teil des Akronyms GAN. Der generative Teil des Modells versucht, immer bessere und besser generierte Inhalte zu erstellen, bis er das diskriminative Modell zuverlässig "täuschen" kann. Das grundlegende Ziel eines GAN ist es, ein generatives Modell zu trainieren, das qualitativ hochwertige Inhalte erzeugt, aber es verwendet sowohl generative als auch diskriminative Modelle, um dieses Ziel zu erreichen.
Überwacht vs. Unüberwacht
Nach unserer Domänenklassifizierung von diskriminativ versus generativ ist unsere nächste Klassifizierung, ob ein Modell "überwacht" oder "unbeaufsichtigt" ist. Diese Klassifizierung kann ein wenig unklarer sein. Die Klassifizierung "überwacht/unüberwacht" ist zwar aufschlussreich, aber viele Arten von KI-Modellen verwenden einen hybriden Ansatz. Ein überwachtes Modell wird, wie der Name schon sagt, in der Regel während der Trainingsphase von einem Menschen überwacht. Die Trainingsphase eines überwachten Modells umfasst mehrere Runden mit Anfangseingaben und gewünschten Ausgaben.
Unüberwachte Modelle arbeiten, wie der Name schon sagt, mit weniger oder gar keinem menschlichen Input. Das Ziel besteht darin, dass das Modell aus einem ursprünglichen Trainingssatz mehrere Runden mit zunehmend besserem Training durchläuft, um nach jeder Runde bessere Inhalte zu erzeugen.
Welcher Typ ist ein Generatives Adversariales Netzwerk?
Ein GAN ist ein unbeaufsichtigtes KI-Modell. Das Hin und Her der adversarischen Trainingszyklen dient der kontinuierlichen Verbesserung der generierten Inhalte. Als Entwickler, der mit einem GAN arbeitet, müssen Sie hochwertige Klassifizierungen Ihrer anfänglichen Trainingsdaten bereitstellen und die nötige Rechenleistung für die Durchführung mehrerer Iterationen bereitstellen. Sobald Sie jedoch die erforderlichen Ressourcen bereitgestellt haben, können Sie das GAN mit minimaler menschlicher Interaktion ausführen.
Generative Adversarial Network vs. Convolutional Neural Network
Eine häufige Frage für neue Entwickler, die mit einem GAN arbeiten, ist die nach dem Verhältnis zu einem Convolutional Neural Network (CNN). Ein CNN ist eine Art von diskriminierendem Modell, das zur Klassifizierung von Daten auf der Grundlage vorhandener gelabelter Inhalte verwendet wird. Viele GANs verwenden ein CNN als Unterscheidungsmodell, das die generierten Inhalte beim ersten Start des Trainingszyklus überprüft. CNNs werden sehr häufig zur Klassifizierung von Bildern für die Verwendung in Computer-Bilderkennungsarchitekturen verwendet.
CNNs werden manchmal auch als generativer Schritt in der GAN-Architektur verwendet. Die Verwendung eines CNN zur Generierung von Inhalten als Ausgabe des Generierungsschritts erfordert in der Regel die Hinzufügung einer zusätzlichen Logik, wie z. B. eines[ variationalen Autoencoders] (https://www.e2enetworks.com/blog/how-to-implement-convolutional-variational-autoencoder-in-pytorch-with-cuda), anstatt ein herkömmliches CNN zu verwenden. Wenn Sie dieses Tool in Kombination mit einem traditionellen CNN verwenden, können Sie einen CNN sowohl für den Generations- als auch für den Adversarial-Schritt des GAN-Trainingsverfahrens einsetzen.
Häufig gestellte Fragen
Nachdem wir nun eine ziemlich gute Vorstellung davon haben, was ein GAN ist und was es tut, wollen wir uns nun mit einer Handvoll häufig gestellter Fragen zu GANs beschäftigen und warum Sie sich für ein GAN für Ihr Projekt entscheiden sollten.
Was sind einige häufige Verwendungen von GANs?
Einer der Hauptvorteile eines GANs ist, dass es realistische Beispiele für eine Vielzahl von Inhalten generieren kann. Mit der richtigen Art von Trainingsdaten können Sie textbasierte Eingabeaufforderungen verwenden, um eine der folgenden Arten von Inhalten zu erzeugen:
- Bilder
- Audio-Inhalte (wie Musik)
- Konvertierung von Schwarz-Weiß-Bildern in Farbe
- Konvertierung von handgezeichneten Skizzen in fotorealistische Darstellungen
- Vorhersage zukünftiger Frames eines Videos auf der Grundlage vorheriger Frames
- Erstellen von Deepfakes
Warum sollten Sie sich für ein Generatives Adversariales Netzwerk entscheiden?
Wir haben viel darüber gesprochen, wie GANs klassifiziert werden, wie sie funktionieren und was sie leisten können. Aber wir haben eine einfache Frage noch nicht beantwortet: Warum sollte man ein GAN verwenden? Ein Grund für den Einsatz eines GAN ist, dass Sie mit Problemen zu tun haben, bei denen Sie nicht über einen großen Datensatz verfügen, den Sie zum Training verwenden können. Das Wesen eines GAN besteht darin, dass man mit einer begrenzten Menge an Trainingsdaten arbeiten kann und dann das GAN weitere Daten generieren lässt, die wieder in die Trainingsroutine eingespeist werden. Viele maschinelle Lernsysteme müssen mit einer beträchtlichen Menge an vormarkierten Daten trainiert werden. Bei der Verwendung eines GAN besteht diese Anforderung nicht.
GANs sind auch besonders stark bei der Arbeit mit und der Erzeugung von Bildern. Egal, ob es sich um die Erstellung neuer Bilder aus Textaufforderungen oder die Aktualisierung eines Eingabebildes mit generierten Inhalten handelt, GANs sind spannend, weil sie visuell beeindruckende Ergebnisse liefern.
Warum sollte man ein Generatives Adversariales Netzwerk nicht verwenden?
Wenn Sie mit dem Gedanken spielen, ein GAN zu verwenden, sollten Sie einige Nachteile bedenken. Zunächst einmal sind GANs nicht gut geeignet, wenn Sie versuchen, Ihr Modell kostengünstig zu trainieren. Die Ausbildung von GANs ist aufgrund des mehrstufigen Ausbildungszyklus und der Notwendigkeit, mehrere Ausbildungsrunden zu durchlaufen, besonders teuer. Wenn Sie also versuchen, ein striktes Budget einzuhalten, ist die Einführung eines GANs möglicherweise keine gute Wahl.
Außerdem kommt es bei GANs manchmal zu einem so genannten[ mode collapse] (https://pub.towardsai.net/gan-mode-collapse-explanation-fa5f9124ee73), bei dem der Inhalt der Ausgabe eine begrenzte Teilmenge der Trainingsdaten ist und nicht die Vielfalt, die Sie sich erhoffen.
GANs bieten großen Nutzen, wenn sie passen
Um zu unserer evolutionären Metapher zurückzukehren: Ein GAN ist keine Krabbe oder Schildkröte. Es handelt sich nicht um ein Tier, das auch in Jahren noch dieselbe Rolle spielen wird. Stattdessen entwickeln sich GANs weiter. Die Forscher sind immer noch dabei herauszufinden, was GANs können und wie man sie am besten entwickelt und trainiert. Wenn Sie darüber nachdenken, maschinelles Lernen für Ihre Arbeitsabläufe zu nutzen, ist die Untersuchung von GANs sehr sinnvoll, aber vielleicht sind sie nicht das richtige Werkzeug für Ihre Arbeit. Wenn das nicht der Fall zu sein scheint, sollten Sie nicht versuchen, sie in eine Aufgabe zu pressen, für die sie nicht geeignet sind. Wenn Sie jedoch Arbeiten ausführen, die für ein GAN geeignet sind, insbesondere Bildbearbeitung oder -erstellung, dann wird die Einführung und Schulung eines GAN wahrscheinlich große Vorteile für Ihre Arbeitsabläufe bringen.
Sehen Sie sich Zilliz an, einen kostengünstigen Algorithmus für Vektordatenbanken.
- Diskriminierend vs. Generativ
- Überwacht vs. Unüberwacht
- Generative Adversarial Network vs. Convolutional Neural Network
- Häufig gestellte Fragen
- GANs bieten großen Nutzen, wenn sie passen
Inhalte
Kostenlos starten, einfach skalieren
Testen Sie die vollständig verwaltete Vektordatenbank, die für Ihre GenAI-Anwendungen entwickelt wurde.
Zilliz Cloud kostenlos ausprobieren