Heim > Artikel > Technologie-Peripheriegeräte > Detaillierter Vergleich der generativen Modelle VAE, GAN und flussbasierter Modelle
Zwei Jahre nachdem Ian Goodfellow und andere Forscher in einem Artikel generative gegnerische Netzwerke vorgestellt hatten, bezeichnete Yann LeCun das gegnerische Training als „die interessanteste Idee in ML im letzten Jahrzehnt“. Obwohl GANs interessant und vielversprechend sind, sind sie nur ein Teil einer Familie generativer Modelle, die traditionelle KI-Probleme aus einer völlig anderen Perspektive lösen. In diesem Artikel werden wir drei gängige generative Modelle vergleichen.
Wenn wir an maschinelles Lernen denken, fällt uns wahrscheinlich als Erstes der Diskriminanzalgorithmus ein. Unter diskriminierenden Modellen versteht man die Vorhersage von Bezeichnungen oder Kategorien von Eingabedaten auf der Grundlage ihrer Eigenschaften und ist das Herzstück aller Klassifizierungs- und Vorhersagelösungen. Im Gegensatz zu diesen Modellen helfen uns generative Algorithmen dabei, Geschichten über die Daten zu erzählen und mögliche Erklärungen dafür zu liefern, wie die Daten generiert wurden. Im Gegensatz zu diskriminierenden Algorithmen, die Merkmale Etiketten zuordnen, versuchen generative Modelle, Merkmale vorherzusagen, denen ein Etikett gegeben wurde.
Unterscheiden Sie die Beziehung zwischen der Bezeichnung y und dem durch das Modell definierten Merkmal x und generieren Sie das Modell, um die Frage „Wie erhalten Sie y“ zu beantworten. Das generative Modellmodell ist P (Beobachtung/Ursache) und verwendet dann den Satz von Bayes, um P (Ursache/Beobachtung) zu berechnen. Auf diese Weise können sie p(x|y), die Wahrscheinlichkeit von x bei gegebenem y oder die Wahrscheinlichkeit eines Merkmals bei gegebener Bezeichnung oder Klasse erfassen. Tatsächlich können generative Algorithmen also auch als Klassifikatoren verwendet werden, wahrscheinlich weil sie die Verteilung einzelner Klassen modellieren.
Es gibt viele generative Algorithmen, aber die beliebtesten Modelle, die in die Kategorie der tiefen generativen Modelle fallen, sind Variational Autoencoder (VAE), Gan und flussbasierte Modelle.
Ein Variational Autoencoder (VAE) ist ein generatives Modell, das „eine probabilistische Beschreibung von Beobachtungen in einem latenten Raum liefert“. Vereinfacht ausgedrückt bedeutet dies, dass VAE latente Attribute als Wahrscheinlichkeitsverteilungen speichert.
Die Idee von Variations-Autoencodern (Kingma & Welling, 2014) oder VAEs ist tief in Variations-Bayes'schen und grafischen Modellmethoden verwurzelt.
Ein Standard-Autoencoder besteht aus zwei ähnlichen Netzwerken, einem Encoder und einem Decoder. Der Encoder nimmt die Eingabe und wandelt sie in eine kleinere Darstellung um, die der Decoder verwenden kann, um sie wieder in die ursprüngliche Eingabe umzuwandeln. Der latente Raum, in den sie die Eingabe transformieren, und der Raum, in dem ihre Codierungsvektoren liegen, sind möglicherweise nicht kontinuierlich. Dies ist ein Problem für generative Modelle, da wir alle zufällig Stichproben aus einem latenten Raum entnehmen oder Variationen des Eingabebildes aus einem kontinuierlichen latenten Raum generieren möchten.
Der Variations-Autoencoder verfügt über einen kontinuierlichen latenten Raum, der die Zufallsstichprobe und Interpolation bequemer macht. Um dies zu erreichen, gibt der verborgene Knoten des Encoders nicht den Codierungsvektor aus, sondern zwei Vektoren gleicher Größe: einen Mittelwertvektor und einen Standardabweichungsvektor. Jeder verborgene Knoten betrachtet sich selbst als Gaußverteilt. Das i-te Element des Mittelwert- und Standardabweichungsvektors entspricht hier dem Mittelwert- und Standardabweichungswert der i-ten Zufallsvariablen. Wir nehmen eine Stichprobe aus diesem Verteilungsvektor und der Decoder entnimmt zufällig Stichproben aus der Wahrscheinlichkeitsverteilung des Eingabevektors. Bei diesem Prozess handelt es sich um eine Zufallsgenerierung. Das bedeutet, dass sich die tatsächliche Codierung selbst bei derselben Eingabe bei konstantem Mittelwert und Standardabweichung in jedem Durchgang unterscheidet.
Der Verlust des Autoencoders dient dazu, den Rekonstruktionsverlust (wie ähnlich die Ausgabe der Eingabe ist) und den potenziellen Verlust (die Differenz zwischen dem) zu minimieren versteckte Knoten und die Normalverteilung) Nähe). Je kleiner der potenzielle Verlust ist, desto weniger Informationen können codiert werden, sodass der Rekonstruktionsverlust zunimmt, sodass ein Kompromiss zwischen dem potenziellen Verlust und dem Rekonstruktionsverlust besteht. Wenn der potenzielle Verlust gering ist, ist das generierte Bild dem Trainingsbild zu ähnlich, was zu einer schlechten Leistung führt. Wenn der Rekonstruktionsverlust gering ist, ist der Effekt des rekonstruierten Bildes während des Trainings besser, aber das generierte neue Bild unterscheidet sich erheblich vom rekonstruierten Bild, sodass ein gutes Gleichgewicht gefunden werden muss.
VAEs können verschiedene Arten von Daten verarbeiten, sequentiell und nicht sequentiell, kontinuierlich oder diskret, sogar beschriftet oder unbeschriftet, was sie zu sehr leistungsstarken Generierungswerkzeugen macht.
Aber ein großer Nachteil von VAEs ist die verschwommene Ausgabe, die sie erzeugen. Wie Dosovitskiy und Brox betonten, erzeugen VAE-Modelle oft unrealistische und mehrdeutige Stichproben. Dies liegt an der Art und Weise, wie die Datenverteilung wiederhergestellt und die Verlustfunktion berechnet wird. In einem Artikel von Zhao et al. aus dem Jahr 2017 wurde vorgeschlagen, VAEs ohne Verwendung von Variations-Bayes-Methoden zu modifizieren, um die Ausgabequalität zu verbessern.
Generative Adversarial Networks (GANs) sind ein generatives Modell, das auf Deep Learning basiert und neue Inhalte generieren kann . Die GAN-Architektur wurde erstmals 2014 in einem Artikel mit dem Titel „Generative Adversarial Networks“ von Ian Goodfellow et al. beschrieben.
GANs verwenden einen überwachten Lernansatz mit zwei Untermodellen: einem Generatormodell, das neue Beispiele generiert, und einem Diskriminatormodell, das versucht, Beispiele als echt oder gefälscht (generiert) zu klassifizieren.
Generator: Ein Modell zum Generieren neuer plausibler Beispiele aus der Problemdomäne.
Diskriminator: Ein Modell, das verwendet wird, um Beispiele als echt (aus der Domäne) oder gefälscht (generiert) zu klassifizieren.
Die beiden Models werden als Konkurrentinnen ausgebildet. Generatoren erzeugen Beispieldaten direkt. Sein Gegenspieler, der Diskriminator, versucht, zwischen aus den Trainingsdaten gezogenen Stichproben und aus dem Generator gezogenen Stichproben zu unterscheiden. Dieser Wettbewerbsprozess setzt sich während des Trainings fort, bis das Diskriminatormodell mehr als die Hälfte der Zeit nicht wahr oder falsch erkennen kann, was bedeutet, dass das Generatormodell sehr realistische Daten generiert.
Wenn der Diskriminator erfolgreich eine echte und eine gefälschte Probe identifiziert, wird er belohnt, während seine Parameter unverändert bleiben. Wenn der Generator einen Fehler macht, wird er bestraft und seine Parameter werden aktualisiert. In einer idealen Welt kann der Generator immer dann, wenn der Diskriminator den Unterschied nicht erkennen kann und „unsicher“ vorhersagt (z. B. 50 % wahr oder falsch), eine perfekte Kopie aus der Eingabedomäne erstellen.
Aber hier kann jedes Modell das andere übertrumpfen. Wenn der Diskriminator zu gut ist, gibt er Werte zurück, die sehr nahe bei 0 oder 1 liegen, und der Generator hat Probleme, aktualisierte Farbverläufe zu erhalten. Wenn der Generator zu gut ist, nutzt er die Schwächen des Diskriminators aus und führt zu falsch negativen Ergebnissen. Daher müssen die beiden neuronalen Netze durch ihre jeweilige Lernrate ein ähnliches „Fähigkeitsniveau“ aufweisen. Dies ist auch einer der Gründe, warum GAN schwierig zu trainieren ist.
Der Generator verwendet einen Zufallsvektor fester Länge als Eingabe und generiert eine Stichprobe innerhalb des definierten Bereichs. Dieser Vektor wird zufällig aus einer Gaußschen Verteilung gezogen. Nach dem Training entsprechen die Punkte in diesem mehrdimensionalen Vektorraum den Punkten in der Problemdomäne und bilden eine komprimierte Darstellung der Datenverteilung. Dieser Schritt ähnelt VAE. Dieser Vektorraum wird als latenter Raum oder Vektor bezeichnet Raum bestehend aus latenten Variablen. Der GAN-Generator mittelt ausgewählte Punkte im latenten Raum. Neue aus dem latenten Raum extrahierte Punkte können als Eingabe für das Generatormodell bereitgestellt und zur Generierung neuer und unterschiedlicher Ausgabebeispiele verwendet werden. Nach dem Training bleibt das Generatormodell erhalten und wird zum Generieren neuer Proben verwendet.
Das Diskriminatormodell verwendet ein Beispiel als Eingabe (entweder eine echte Stichprobe aus dem Trainingsdatensatz oder von einem Generatormodell generiert) und sagt eine binäre Klassenbezeichnung von echt oder falsch (generiert) voraus. Der Diskriminator ist ein normales (und leicht verständliches) Klassifizierungsmodell.
Nach dem Trainingsprozess wird der Diskriminator verworfen, da wir am Generator interessiert sind. Natürlich kann der Diskriminator auch für andere Zwecke verwendet werden
GANs können brauchbare Proben erzeugen, aber das ursprüngliche GAN hat auch Mängel:
Flussbasierte generative Modelle sind exakte Log-Likelihood-Modelle mit nachvollziehbarer Stichprobe und latenter Variableninferenz. Flussbasierte Modelle wenden eine Reihe reversibler Transformationen auf Stichproben aus einem früheren Zeitpunkt an, sodass die genaue Log-Likelihood einer Beobachtung berechnet werden kann. Im Gegensatz zu den beiden vorherigen Algorithmen lernt dieses Modell explizit die Datenverteilung, sodass die Verlustfunktion eine negative Log-Likelihood hat.
Bei der nichtlinearen unabhängigen Komponentenanalyse wird das Strömungsmodell f als reversible Transformation konstruiert, die eine hochdimensionale Zufallsvariable x auf eine standardmäßige Gaußsche latente Variable z=f(x) abbildet. Der Schlüsselgedanke beim Entwurf des Strömungsmodells besteht darin, dass es eine beliebige bijektive Funktion sein und durch Überlagerung einfacher reversibler Transformationen gebildet werden kann. Zusammenfassend lässt sich sagen, dass das Strömungsmodell f aus einer Reihe reversibler Strömungen wie f(x) =f1◦···◦fL(x) besteht, wobei jedes fi eine nachvollziehbare Umkehrung und eine nachvollziehbare Jacobi-Matrix aufweist.
Es gibt zwei Hauptkategorien flussbasierter Modelle: Modelle mit normalisiertem Fluss und Modelle mit autoregressivem Fluss, die versuchen, die Leistung des Basismodells zu verbessern.
Für viele Probleme des maschinellen Lernens ist die Fähigkeit, eine gute Dichteschätzung durchzuführen, von entscheidender Bedeutung. Aber es ist von Natur aus komplex: Wenn wir Backpropagation in einem Deep-Learning-Modell durchführen müssen, muss die eingebettete Wahrscheinlichkeitsverteilung einfach genug sein, damit die Ableitungen effizient berechnet werden können. Die traditionelle Lösung besteht darin, Gaußsche Verteilungen in Modellen zur Generierung latenter Variablen zu verwenden, obwohl die meisten Verteilungen in der realen Welt viel komplexer sind. Modelle mit normalisiertem Fluss (NF) wie RealNVP oder Glow bieten eine robuste Näherung der Verteilung. Sie wandeln eine einfache Verteilung in eine komplexe Verteilung um, indem sie eine Reihe reversibler Transformationsfunktionen anwenden. Durch eine Reihe von Transformationen können gemäß dem Variablentransformationssatz die ursprünglichen Variablen wiederholt durch neue Variablen ersetzt werden und schließlich die Wahrscheinlichkeitsverteilung der endgültigen Zielvariablen erhalten.
Wenn eine Flusstransformation in einem normalisierten Fluss als autoregressives Modell dargestellt wird, bei dem jede Dimension in einer Vektorvariablen von der vorherigen Dimension abhängig ist, wird diese Änderung im Flussmodell als autoregressiver Fluss bezeichnet. Es ist ein Fortschritt gegenüber Modellen mit standardisierten Prozessen.
Häufig verwendete autoregressive Flussmodelle sind PixelCNN für die Bilderzeugung und WaveNet für eindimensionale Audiosignale. Sie bestehen alle aus einer Reihe kausaler Faltungen – Faltungsoperationen, die die Reihenfolge berücksichtigen: Vorhersagen zu einem bestimmten Zeitstempel verwenden nur in der Vergangenheit beobachtete Daten. In PixelCNN wird die kausale Faltung durch einen maskierten Kernel durchgeführt. Und WaveNet verschiebt die Ausgabe um mehrere Zeitstempel in die Zukunft.
Flussbasierte Modelle eignen sich konzeptionell sehr gut für die Modellierung komplexer Verteilungen, sind jedoch im Vergleich zu autoregressiven Modellen auf dem neuesten Stand der Technik durch Leistungsprobleme bei der Dichteschätzung eingeschränkt. Obwohl Flussmodelle als Alternative zu GANs zunächst gute Ergebnisse liefern können, besteht zwischen ihnen eine erhebliche Lücke bei den Trainingsrechenkosten, da flussbasierte Modelle um ein Vielfaches länger brauchen, um Bilder mit der gleichen Auflösung zu erzeugen wie GANs.
Jeder Algorithmus hat seine Vorteile und Einschränkungen hinsichtlich Genauigkeit und Effizienz. Obwohl GANs und prozessbasierte Modelle im Allgemeinen bessere oder realitätsnähere Bilder erzeugen als VAE, bietet letzteres eine schnellere Zeit und eine bessere Parametereffizienz als prozessbasierte Modelle. Hier ist eine Vergleichszusammenfassung der drei Modelle:
Sie können Sehen Sie, dass GAN aufgrund seiner Parallelität sehr effizient ist, aber nicht umkehrbar ist. Im Gegensatz dazu sind Strömungsmodelle reversibel, aber nicht effizient, während vae reversibel und effizient ist, aber nicht parallel berechnet werden kann. Basierend auf diesen Merkmalen können wir Kompromisse zwischen Output, Trainingsprozess und Effizienz bei der tatsächlichen Nutzung eingehen.
Das obige ist der detaillierte Inhalt vonDetaillierter Vergleich der generativen Modelle VAE, GAN und flussbasierter Modelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!