Ein variational autoencoder (VAE) ist eine Architektur künstlicher neuronaler Netze, die 2013 von Diederik P. Kingma und Max Welling eingeführt wurde. Sie gehört zu den Familien der probabilistischen graphischen Modelle und der variationalen Bayesschen Methoden. VAEs sind generative Modelle, die lernen, Daten in einem komprimierten latenten Raum zu repräsentieren und neue Stichproben aus diesem Raum zu erzeugen. Im Gegensatz zu Standard-Autoencodern, die Eingaben auf feste Punkte in einem latenten Raum abbilden, bilden VAEs Eingaben auf eine Wahrscheinlichkeitsverteilung ab, typischerweise eine multivariate Gauß-Verteilung, was hilft, Überanpassung zu vermeiden und eine glatte Interpolation und Erzeugung zu ermöglichen.
Die Architektur besteht aus zwei neuronalen Netzen: einem Encoder und einem Decoder. Der Encoder bildet jeden Eingabedatenpunkt (z. B. ein Bild) auf Parameter einer variationalen Verteilung im latenten Raum ab, wie einen Mittelwert- und Varianzvektor. Der Decoder bildet vom latenten Raum zurück auf den Eingaberaum ab und erzeugt Rekonstruktionen oder neue Stichproben. Beide Netze werden gemeinsam unter Verwendung des Reparametrisierungstricks trainiert, der die Rückpropagation durch stochastisches Sampling ermöglicht. VAEs wurden ursprünglich für unüberwachtes Lernen entwickelt, haben sich aber auch für halbüberwachte und überwachte Lernaufgaben als wirksam erwiesen.
Überblick über Architektur und Funktionsweise
Ein variational autoencoder ist ein generatives Modell mit einer Prior-Verteilung über latente Variablen und einer Rauschverteilung für die Daten. Traditionelle generative Modelle wie probabilistische PCA oder Sparse Coding werden mit dem Erwartungs-Maximierungs-Meta-Algorithmus (EM) trainiert. EM optimiert eine untere Schranke für die Datenwahrscheinlichkeit, die oft rechnerisch unlösbar ist, und erfordert das Finden von q-Verteilungen (variationale Posteriori) für jeden Datenpunkt in einem separaten Optimierungsprozess. Im Gegensatz dazu verwenden VAEs ein neuronales Netz als amortisierten Ansatz, um gemeinsam über alle Datenpunkte zu optimieren. Dies bedeutet, dass dieselben Netzwerkparameter für mehrere Datenpunkte wiederverwendet werden, was zu erheblichen Speicherersparnissen führt.
Das Encoder-Netzwerk nimmt Eingabedatenpunkte entgegen und gibt Parameter für die variationale Verteilung aus. Da es von einem bekannten Eingaberaum auf einen niedrigdimensionalen latenten Raum abbildet, wird es als Encoder bezeichnet. Der Decoder ist das zweite neuronale Netz; er bildet vom latenten Raum auf den Eingaberaum ab und gibt typischerweise die Mittelwerte der Rauschverteilung aus. Obwohl es möglich ist, ein weiteres Netzwerk zur Ausgabe der Varianz zu verwenden, wird dies oft aus Einfachheitsgründen weggelassen, und die Varianz kann über Gradientenabstieg optimiert werden.
Um das Modell zu optimieren, werden zwei Terme benötigt: der Rekonstruktionsfehler und die Kullback-Leibler-Divergenz (KL-D). Beide Terme werden aus dem Freie-Energie-Ausdruck des probabilistischen Modells abgeleitet und unterscheiden sich je nach Rauschverteilung und angenommener Prior der Daten (p-Verteilung). Beispielsweise nimmt eine Standard-VAE-Aufgabe wie ImageNet typischerweise Gaußsches Rauschen an, während Aufgaben wie binarisiertes MNIST Bernoulli-Rauschen erfordern. Der KL-D-Term maximiert die Wahrscheinlichkeitsmasse der q-Verteilung, die mit der p-Verteilung überlappt, was zu modus-suchendem Verhalten führen kann. Der Rekonstruktionsterm ist der Rest des Freie-Energie-Ausdrucks und erfordert eine Sampling-Approximation, um seinen Erwartungswert zu berechnen. Neuere Ansätze ersetzen die KL-D durch verschiedene statistische Distanzen, wie im Abschnitt über statistische Distanz-VAE-Varianten diskutiert.
Formulierung
Aus einer probabilistischen Modellierungsperspektive besteht das Ziel darin, die Wahrscheinlichkeit der Daten x unter einer gewählten parametrisierten Wahrscheinlichkeitsverteilung p_θ(x) = p(x|θ) zu maximieren. Diese Verteilung wird oft als Gauß-Verteilung N(x|μ, σ) gewählt, parametrisiert durch Mittelwert μ und Varianz σ, die als Mitglied der Exponentialfamilie einfach zu handhaben ist. Einfache Verteilungen sind unkompliziert zu maximieren, aber wenn eine Prior über latente Variablen z angenommen wird, werden die resultierenden Integrale unlösbar. Um p_θ(x) zu finden, marginalisiert man über z:
p_θ(x) = ∫ p_θ(x, z) dz,
wobei p_θ(x, z) die gemeinsame Verteilung der beobachtbaren Daten x und der latenten Kodierung z unter p_θ ist. Unter Verwendung der Kettenregel kann dies umgeschrieben werden als:
p_θ(x) = ∫ p_θ(x|z) p_θ(z) dz.
Dieses Integral ist im Allgemeinen unlösbar, da der latente Raum hochdimensional ist und die Wahrscheinlichkeit p_θ(x|z) komplex sein kann. Variationale Inferenz approximiert die wahre Posteriori p_θ(z|x) mit einer einfacheren Verteilung q_φ(z|x), die durch das Encoder-Netzwerk parametrisiert wird. Die Evidenz-Untergrenze (ELBO) wird abgeleitet, um das Modell zu optimieren:
log p_θ(x) ≥ E_{q_φ(z|x)}[log p_θ(x|z)] - KL(q_φ(z|x) || p_θ(z)).
Der erste Term ist die Rekonstruktionswahrscheinlichkeit, und der zweite Term ist die KL-Divergenz zwischen der approximierten Posteriori und der Prior. Der Reparametrisierungstrick ermöglicht das Sampling aus q_φ(z|x), indem z als μ + σ * ε ausgedrückt wird, wobei ε aus einer Standardnormalverteilung gezogen wird, was eine gradientenbasierte Optimierung ermöglicht.
Encoder- und Decoder-Netzwerke
Das Encoder-Netzwerk, oft als q_φ(z|x) bezeichnet, nimmt eine Eingabe x entgegen und gibt die Parameter einer variationalen Verteilung aus, typischerweise den Mittelwert μ und die Log-Varianz log σ² einer Gauß-Verteilung. Diese Verteilung repräsentiert die latente Kodierung der Eingabe. Das Decoder-Netzwerk, bezeichnet als p_θ(x|z), nimmt eine latente Stichprobe z entgegen und gibt Parameter für die Datenverteilung aus, wie den Mittelwert einer Gauß-Verteilung für kontinuierliche Daten oder die Wahrscheinlichkeiten für Bernoulli-Daten.
Beide Netzwerke werden typischerweise gemeinsam unter Verwendung des Reparametrisierungstricks trainiert. Der Encoder und der Decoder werden üblicherweise als mehrschichtige Perzeptren (MLPs) oder faltende neuronale Netze (CNNs) implementiert, abhängig vom Datentyp. Für Bilddaten sind CNNs üblich, wie in Modellen wie dem faltenden VAE zu sehen. Die Wahl der Netzwerkarchitektur beeinflusst die Kapazität und Leistung des Modells.
Training und der Reparametrisierungstrick
Das Training eines VAE beinhaltet die Maximierung der ELBO, die die Summe aus dem Rekonstruktionsterm und dem KL-Divergenzterm ist. Der Rekonstruktionsterm ermutigt den Decoder, die Eingabe aus der latenten Stichprobe genau zu rekonstruieren, während der KL-Divergenzterm die approximierte Posteriori dazu ermutigt, nahe an der Prior zu liegen, typischerweise einer Standardnormalverteilung N(0, I). Dieses Gleichgewicht verhindert Überanpassung und gewährleistet einen glatten latenten Raum.
Der Reparametrisierungstrick ist entscheidend für das Training, da er es ermöglicht, dass Gradienten durch den stochastischen Sampling-Prozess fließen. Anstatt z direkt aus q_φ(z|x) zu sampeln, was nicht differenzierbar ist, gibt der Encoder μ und σ aus, und z wird als z = μ + σ * ε berechnet, wobei ε ~ N(0, I). Dies macht die Sampling-Operation differenzierbar in Bezug auf die Parameter und ermöglicht eine Standard-Rückpropagation.
Während des Trainings kann die Varianz des Rauschmodells separat gelernt oder festgelegt werden. In einigen Implementierungen gibt der Decoder sowohl Mittelwert als auch Varianz aus, während in anderen die Varianz ein Hyperparameter ist oder separat optimiert wird. Der Trainingsprozess verwendet typischerweise stochastischen Gradientenabstieg (SGD) oder Varianten wie Adam, mit Lernratenplänen.
Verlustfunktion und KL-Divergenz
Die Verlustfunktion für einen VAE ist die negative ELBO, die aus zwei Termen besteht: dem Rekonstruktionsverlust und der KL-Divergenz. Der Rekonstruktionsverlust misst, wie gut der Decoder die Eingabe aus der latenten Stichprobe rekonstruiert. Für kontinuierliche Daten mit Gaußschem Rauschen ist dies oft der mittlere quadratische Fehler (MSE) zwischen der Eingabe und der rekonstruierten Ausgabe. Für binäre Daten ist es die binäre Kreuzentropie.
Der KL-Divergenzterm wird zwischen der approximierten Posteriori q_φ(z|x) und der Prior p(z) berechnet. Für Gauß-Verteilungen hat dies einen geschlossenen Ausdruck:
KL(q_φ(z|x) || p(z)) = -0.5 * (1 + log σ² - μ² - σ²),
unter der Annahme, dass die Prior N(0, I) ist. Dieser Term bestraft die latente Verteilung für Abweichungen von der Prior und ermutigt zu einem kompakten und kontinuierlichen latenten Raum.
Die KL-Divergenz kann zu modus-suchendem Verhalten führen, bei dem sich das Modell auf wenige Modi der Datenverteilung konzentriert. Um dies zu adressieren, wurden verschiedene Alternativen vorgeschlagen, wie die Verwendung anderer statistischer Distanzen wie der Wasserstein-Distanz oder der Maximum Mean Discrepancy (MMD).
Varianten und Erweiterungen
Seit der Einführung von VAEs wurden zahlreiche Varianten entwickelt, um ihre Leistung zu verbessern und Einschränkungen zu adressieren. Einige bemerkenswerte Varianten umfassen:
- β-VAE: Führt einen Gewichtungsfaktor β auf den KL-Divergenzterm ein, um stärker entwirrte Repräsentationen zu fördern. Dies wird oft im unüberwachten Lernen interpretierbarer Faktoren verwendet.
- Conditional VAE (CVAE): Konditioniert sowohl den Encoder als auch den Decoder auf zusätzliche Informationen, wie Klassenlabels, was eine kontrollierte Erzeugung ermöglicht.
- VQ-VAE: Verwendet Vektorquantisierung im latenten Raum, wodurch diskrete latente Codes erzeugt werden, die für Aufgaben wie Bilderzeugung und Repräsentationslernen nützlich sind.
- Statistische Distanz-VAE-Varianten: Ersetzen die KL-Divergenz durch andere statistische Distanzen, wie die Wasserstein-Distanz, um die Trainingsstabilität und die Stichprobenqualität zu verbessern.
Diese Varianten wurden in verschiedenen Bereichen angewendet, einschließlich Bilderzeugung, Texterzeugung und Anomalieerkennung.
Anwendungen und Bedeutung
Variational autoencoder haben eine breite Palette von Anwendungen im maschinellen Lernen und in der künstlichen Intelligenz. Sie werden für generatives Modellieren verwendet, wo sie neue Datenstichproben erzeugen können, die den Trainingsdaten ähnlich sind, wie Bilder, Audio und Text. VAEs werden auch für Repräsentationslernen verwendet, wo der latente Raum aussagekräftige Merkmale der Daten erfasst, was Aufgaben wie Clustering und Dimensionsreduktion ermöglicht.
Im halbüberwachten Lernen können VAEs unbeschriftete Daten nutzen, um nützliche Repräsentationen zu lernen und die Leistung bei Aufgaben mit begrenzten beschrifteten Daten zu verbessern. Im überwachten Lernen können VAEs als Merkmalsextraktoren oder zur Datenaugmentierung verwendet werden. VAEs wurden auch in der Anomalieerkennung angewendet, wo der Rekonstruktionsfehler oder die Wahrscheinlichkeit eines Datenpunkts anzeigt, ob er normal oder anomal ist.
Die Bedeutung von VAEs liegt in ihrer Fähigkeit, probabilistische latente Repräsentationen auf unüberwachte Weise zu lernen und einen prinzipiellen Rahmen für generatives Modellieren bereitzustellen. Sie haben viele nachfolgende Entwicklungen im Deep Learning beeinflusst, einschließlich des breiteren Feldes der generativen KI, und bleiben ein aktives Forschungsgebiet.
Beziehung zu anderen generativen Modellen
VAEs sind eine von mehreren prominenten Familien generativer Modelle, neben generativen adversarischen Netzen (GANs) und Diffusionsmodellen. Während GANs sich auf die Erzeugung realistischer Stichproben durch einen adversarischen Trainingsprozess konzentrieren, betonen VAEs probabilistische Inferenz und einen glatten latenten Raum. Diffusionsmodelle, die in letzter Zeit an Popularität gewonnen haben, erzeugen Daten durch Umkehrung eines Rauschprozesses. Jeder Ansatz hat seine Stärken und Schwächen; VAEs bieten stabiles Training und einen wohldefinierten latenten Raum, können aber im Vergleich zu GANs unscharfere Stichproben erzeugen. Die Wahl des Modells hängt von der spezifischen Anwendung und den Anforderungen ab.
Im Kontext des Deep Learning werden VAEs oft als Bausteine in größeren Architekturen verwendet, wie in variational autoencoder-basierten Transformatoren oder als Komponenten in multimodalen Modellen. Sie sind auch für die Entwicklung großer Sprachmodelle relevant, obwohl diese typischerweise auf autoregressiven oder Transformer-Architekturen basieren und nicht auf VAEs.
Siehe auch
- Autoencoder
- Generative KI
- Deep Learning
- Probabilistische graphische Modelle
- Variationale Bayessche Methoden