Was ist ein Variational Autoencoder (VAE)?
Ein Variational Autoencoder (VAE) ist ein generatives neuronales Netz, das für jede Eingabe eine Wahrscheinlichkeitsverteilung im latenten Raum lernt. Der Decoder rekonstruiert daraus beispielsweise eine handgeschriebene Sieben. Soll eine neue Ziffer entstehen, zieht das Modell eine Stichprobe aus einer gemeinsamen Ausgangsverteilung. Dafür braucht der Decoder keine Vorlage.
Eine handgeschriebene Sieben mit Querstrich hat ein anderes Pixelmuster als eine Sieben ohne Querstrich. Ein VAE lernt an vielen solchen Bildern, welche Strichverläufe zusammenpassen. Für dieses unüberwachte Lernen genügen ungelabelte Trainingsdaten. Das Eingabebild liefert das Ziel für die Rekonstruktion und damit ein selbstüberwachtes Trainingssignal.
Was bedeutet „variational“?
„Variational“ bezeichnet die Variationsinferenz. Welche latenten Variablen erklären die Pixel einer beobachteten Sieben? Für ein Eingabebild kommen mehrere latente Vektoren infrage. Die Wahrscheinlichkeitsverteilung dieser möglichen Ursachen heißt Posterior. Sie für jedes Bild exakt zu berechnen, wäre bei einem tiefen neuronalen Netz meist zu aufwendig.
Beim verbreiteten Gauß-VAE nähert der Encoder den Posterior durch eine Normalverteilung an. Die Verteilungsfamilie steht fest, ihre Parameter hängen vom Eingabebild ab. Diederik P. Kingma und Max Welling beschrieben dieses Lernverfahren 2013 in Auto-Encoding Variational Bayes. Der trainierte Encoder schätzt den Posterior für eine neue Handschrift in einem Durchlauf. Diese Wiederverwendung desselben Inferenznetzes für alle Eingaben heißt amortisierte Inferenz.
Was unterscheidet Autoencoder und Variational Autoencoder?
| Frage | Klassischer Autoencoder | Variational Autoencoder |
|---|---|---|
| Was liefert der Encoder? | Für ein Eingabebild einen festen Code, etwa zwei Koordinaten. | Verteilungsparameter für das Eingabebild, etwa Mittelwert und Varianz. |
| Was lernt der Decoder? | Die Rekonstruktion der Eingabe aus ihrem Code. | Eine bedingte Verteilung der Bilddaten für jeden gezogenen Code. |
| Woher kommen neue Codes? | Die Rekonstruktion gibt keine Sampling-Verteilung vor. | Eine beim Training berücksichtigte Ausgangsverteilung liefert neue Stichproben. |
Wie funktioniert ein Variational Autoencoder?
Encoder und Decoder: Wie wird aus einem Bild wieder ein Bild?
Der Encoder liest die Helligkeit der Pixel. In einem neuronalen Netz mit Faltungsschichten können frühe Filter kurze Kanten erkennen. Spätere Schichten verbinden diese Merkmale zu Strichverläufen. Das Training bestimmt die Filtergewichte. Für die Rekonstruktion einer Acht ist die Lage der Schleifen wichtiger als die exakte Helligkeit eines Randpixels.
Das Bottleneck begrenzt den Platz für die interne Repräsentation. Der Decoder übersetzt den kurzen latenten Vektor zurück in Pixelwerte. Bei binären Eingabedaten kann der Decoder die Wahrscheinlichkeit eines schwarzen Pixels pro Bildposition liefern. Zeichnest du die Wahrscheinlichkeiten als Grauwerte, siehst du die mittlere Rekonstruktion. Ziehst du für jeden Pixel eine Stichprobe, erhältst du ein Schwarz-Weiß-Bild.
Eine passende Aktivierungsfunktion am Decoder-Ausgang ist die Sigmoidfunktion. Sie bildet jeden Ausgabewert auf eine Wahrscheinlichkeit zwischen null und eins ab. Ein binärer Pixel folgt in diesem Modell einer Bernoulli-Verteilung. Der Rekonstruktionsverlust bewertet die vorhergesagte Wahrscheinlichkeit am tatsächlich beobachteten Pixelwert.
Was ist der latente Raum?
Der latente Raum (englisch latent space) umfasst die möglichen Werte der verborgenen Variablen. Wählen wir zwei Dimensionen, lässt er sich wie ein Koordinatensystem zeichnen. Eine einzelne Handschrift belegt darin eine kleine Umgebung. Der Mittelwert markiert ihr Zentrum. Beim üblichen Gauß-VAE mit diagonaler Kovarianzmatrix sind die latenten Koordinaten im Posterior einer Eingabe unabhängig. Die Diagonale dieser Kovarianzmatrix enthält die Varianzen. Die Standardabweichung beschreibt für jede Achse, wie weit Stichproben um den Mittelwert streuen.
Bei Standardabweichungen von 0,2 und 0,8 streuen die Stichproben entlang der zweiten Koordinate viermal so stark wie entlang der ersten. Verändere nur diese zweite Koordinate und dekodiere jeden Punkt. Vielleicht wird der obere Strich länger, vielleicht ändern sich zugleich Breite und Neigung. Der Decoder macht sichtbar, welche Bildmerkmale eine Richtung im latenten Raum beeinflusst.
Wie erzeugt der VAE neue Daten?
Für eine Rekonstruktion schätzt der Encoder den Posterior eines Eingabebildes. Der Decoder erhält eine Stichprobe aus diesem Posterior. Möchtest du zwei Rekonstruktionen unter gleichen Bedingungen vergleichen, kannst du den Mittelwert als latenten Vektor wählen. Bei deterministischer Auswertung des Decoders entfällt dann die Streuung durch das Sampling.
Für eine neue Ziffer ziehst du den latenten Vektor aus dem Prior. Häufig verwendet der VAE unabhängige Standardnormalverteilungen mit Mittelwert null und Varianz eins. Der Prior liefert die Koordinaten, der trainierte Decoder liefert die Handschrift. Der Encoder bleibt bei dieser Art der Bildgenerierung unbenutzt.
Wie wird ein Variational Autoencoder trainiert?
Rekonstruktionsverlust und KL-Divergenz
Zeichnet der Decoder bei einer Sieben die obere Kante an der falschen Stelle, entsteht ein Rekonstruktionsverlust. Bei binären Bilddaten eignet sich als Verlustfunktion die binäre Kreuzentropie. Ein tatsächlich schwarzer Pixel, dem der Decoder nur ein Prozent Wahrscheinlichkeit zuweist, kostet mehr als ein schwarzer Pixel mit vorhergesagten 80 Prozent. Für kontinuierliche Messwerte mit angenommener Gaußverteilung und fester Varianz führt dieselbe probabilistische Herleitung zu einem quadratischen Fehler.
Ein Encoder könnte für jede Trainingsziffer eine winzige Insel im latenten Raum anlegen. Der Decoder erreichte einen niedrigen Rekonstruktionsverlust, doch Stichproben aus dem Prior könnten zwischen den Inseln landen. Die Kullback-Leibler-Divergenz (KL-Divergenz) bewertet deshalb für jede Eingabe die Abweichung ihres angenäherten Posteriors vom Prior. Das ist der Regularisierungsterm des VAE.
Bei identischen Normalverteilungen beträgt die KL-Divergenz null. Wie teuer wird eine Verschiebung des Mittelwerts? Nehmen wir einen standardnormalverteilten Prior und eine eindimensionale Normalverteilung als Posterior. Beide haben Varianz eins. Der natürliche Logarithmus liefert Divergenzen in der Einheit Nat.
Für diesen Spezialfall vereinfacht sich die Formel zu KL-Divergenz = μ² / 2. Bei Mittelwert eins beträgt die KL-Divergenz 0,5 Nat, bei Mittelwert zwei beträgt sie 2 Nats. Die Verschiebung auf Mittelwert zwei lohnt sich, wenn sie den Rekonstruktionsverlust um mehr als zwei Nats senkt. Ändert der Encoder auch die Varianz, gilt die verkürzte Formel nicht mehr.
Was ist die ELBO?
Die Evidence Lower Bound (ELBO) ist eine berechenbare untere Schranke für die Log-Likelihood einer Eingabe. Wie wahrscheinlich ist dieses Bild unter dem generativen Modell? Die exakte Likelihood müsste die möglichen latenten Vektoren über den gesamten Prior integrieren. Statt dieses Integral für jedes Bild auszuwerten, optimiert der VAE die ELBO.
ELBO(x) = Eq(z|x)[log p(x|z)] − KL(q(z|x) ‖ p(z))
- x und z stehen für die beobachtete Eingabe und den latenten Vektor.
- q(z|x) ist der vom Encoder geschätzte Posterior. Er beschreibt, welche latenten Werte für diese Eingabe plausibel sind.
- p(x|z) ist die vom Decoder gelernte Verteilung der Bilddaten bei gegebenem Vektor. Der Erwartungswert im ersten Term mittelt die Log-Likelihood über Stichproben des Encoders.
- p(z) bezeichnet den Prior. Die KL-Divergenz im zweiten Term zieht große Abweichungen von dieser Verteilung von der ELBO ab.
Der Optimierer maximiert die ELBO oder minimiert die negative ELBO. Die Trainingsausgabe zeigt häufig Loss = Rekonstruktionsverlust + KL-Divergenz. Beobachte beide Verlustterme einzeln. Fällt die KL-Divergenz bei fast allen Eingaben auf null, enthält der latente Vektor wenig bildspezifische Information. Ignoriert der Decoder den latenten Code, spricht man von Posterior Collapse.
Quelle: datenbasiert.de
Wie funktioniert der Reparametrisierungstrick?
Die Backpropagation benötigt einen Gradienten vom Rekonstruktionsverlust bis zum Encoder. Der Reparametrisierungstrick trennt die trainierbaren Parameter vom Zufall. Für eine latente Dimension gilt z = μ + σ · ε. Der Encoder liefert Mittelwert μ und Standardabweichung σ. Nur der Zufallswert ε wird aus der Standardnormalverteilung gezogen.
Setze μ = 2, σ = 0,5 und ε = −1. Die Stichprobe für den Decoder ist z = 1,5. Erhöhe bei festem ε den Mittelwert um 0,1: z steigt auf 1,6. Erhöhe stattdessen die Standardabweichung um 0,1: z sinkt auf 1,4. Die Ableitungen sind hier 1 für den Mittelwert und −1 für die Standardabweichung. Über diese Gradienten erreicht die Fehlerrückführung die Gewichte des Encoders. Viele Encoder liefern eine Logvarianz. Das Exponenzieren der halben Logvarianz ergibt eine positive Standardabweichung.
Im Training reicht häufig eine Monte-Carlo-Stichprobe je Eingabe und Lernschritt. Ein Minibatch bündelt mehrere Eingabebilder. Der Optimierer mittelt ihre Verlustgradienten und aktualisiert die Modellgewichte von Encoder und Decoder gemeinsam. Bei der Generierung bleiben die Gewichte fest. Neue Stichproben aus dem Prior verändern den latenten Vektor.
Variational Autoencoder Beispiel: Handschriftliche Ziffern erzeugen
Wie werden aus 784 Pixeln zwei Koordinaten?
Ein MNIST-Bild hat 28 × 28 Pixel, also 784 Helligkeitswerte. Ein Encoder mit zwei latenten Dimensionen liefert zwei Mittelwerte und zwei Logvarianzen. Vier Parameter beschreiben die Verteilung. Zwei gezogene Koordinaten gehen an den Decoder. Diese Dimensionsreduktion kannst du an den Ausgaben des VAE ablesen.
Was passiert bei zehn Durchläufen mit demselben MNIST-Bild? Der Encoder liefert dieselben Mittelwerte und Logvarianzen. Zehn Stichproben aus diesem Posterior ergeben leicht unterschiedliche Rekonstruktionen. Bei zehn unabhängigen Stichproben aus dem Prior fehlt die Bindung an das Eingabebild. Der Decoder kann ebenso eine Drei oder eine Null zeichnen.
Quelle: datenbasiert.de
Was passiert zwischen zwei Ziffern im latenten Raum?
Kodiere eine schmale und eine breite Sieben. Die Mittelwerte ihrer Posteriorverteilungen seien A = (−1, 0) und B = (1, 2). Ihr Mittelpunkt ist (0, 1). Dekodiere beide Endpunkte und den Mittelpunkt. Hat der Decoder einen glatten Übergang gelernt, verändert sich der Strichverlauf schrittweise. Für eine längere Interpolation dekodierst du weitere Zwischenpunkte auf der Geraden.
Die Vektorrechnung funktioniert auch bei Gesichtern. Die Subtraktion B − A liefert eine Richtung. Die Addition eines Teils dieses Vektors zu einem dritten Gesicht zeigt, welche Merkmale bei der Rekonstruktion mitwandern. Eine Richtung kann regional die Neigung einer Handschrift verändern, anderswo den Querstrich. Ob ähnliche Bilder benachbarte Gruppen bilden, untersucht eine Clusteranalyse der latenten Vektoren.
Wofür werden Variational Autoencoder eingesetzt?
Anomalieerkennung mit einem VAE
Bei der industriellen Qualitätskontrolle trainiert man den VAE auf Bildern intakter Bauteile. Rekonstruiert der Decoder einen seltenen Kratzer als glatte Oberfläche, zeigt die Differenz zwischen Originalbild und Rekonstruktion seine Position. Eine Fehlerkarte pro Pixel erleichtert die Sichtprüfung. Der mittlere Rekonstruktionsfehler über das gesamte Bild kann einen schmalen Kratzer verdecken.
Kalibriere den Schwellenwert der Anomalieerkennung an separaten Prüfbildern. Auch intakte Oberflächen bei verändertem Licht gehören in die Validierungsdaten. Sonst kann ein Schatten denselben Alarm auslösen wie ein Kratzer. Bei Finanzbetrug oder ungewöhnlichem Netzwerkverkehr priorisiert der Anomaliewert entsprechend auffällige Buchungen oder Verbindungen für eine Prüfung.
Bildgenerierung und Bildrekonstruktion
Bei der Bildgenerierung aus Gesichterdaten erzeugt der Decoder neue Gesichter aus Stichproben des Priors. Bei der Bildrestauration lernt er eine andere Zuordnung. Zum Entrauschen erhält der Encoder beispielsweise ein gestörtes Foto einer Person, der Decoder übernimmt das saubere Original als Rekonstruktionsziel. Dieses Trainingspaar definiert, welches Rauschen die Rekonstruktion unterdrücken soll.
Zur Bildklassifikation kann ein separater Klassifikator die Mittelwertvektoren des Encoders auswerten. Der VAE lernt seine Repräsentation an ungelabelten Bildern. Der Klassifikator lernt anschließend anhand der Klassenlabel, welche Merkmalsvektoren beispielsweise zu einer Drei oder einer Acht gehören.
Anwendungen in Audio, Medizin und Materialforschung
| Aufgabe | Eingabedaten | Was das Modell liefert |
|---|---|---|
| Audioquellen trennen | Ein Spektrogramm einer Audioaufnahme mit Stimme und Instrument. | Ein auf Quellentrennung trainiertes Modell schätzt die Signalanteile der einzelnen Quellen. |
| Bild, Video und Audio restaurieren | Gestörte Bildfolgen oder Audiodaten und passende Referenzen. | Das restaurierte Signal. Bei sichtbaren Wasserzeichen auf eigenen Bildern zeigt der Vergleich mit dem Original, ob die Rekonstruktion verdeckte Details trifft oder neu erfindet. |
| Empfehlungen personalisieren | Nutzerverhalten, etwa eine Auswahl bereits gehörter Musiktitel. | Ein Empfehlungssystem bewertet weitere Titel danach, wie gut sie zum erlernten Hörprofil passen. |
| Medizinische Bilder auswerten | CT-Aufnahmen oder MRT-Bilder aus der Kernspintomografie. | Eine Rekonstruktion als Vergleichsbild. Regionale Rekonstruktionsfehler können auffällige Stellen für eine fachliche Prüfung markieren. |
| Moleküle und Materialien entwerfen | Darstellungen bekannter chemischer Verbindungen, gegebenenfalls mit gemessenen Eigenschaften. | Kandidaten für weitere Simulationen und Laborversuche. In der Forschung an personalisierten Medikamenten lässt sich so der Suchraum für Wirkstoffe eingrenzen. |
Welche Varianten des Variational Autoencoders gibt es?
Conditional VAE: Wie erzeugt das Modell eine bestimmte Ziffer?
Für zehn verschiedene Siebenen gibst du einem Conditional VAE (CVAE) das Klassenlabel „7“ vor. Beim Training erhalten Encoder und Decoder diese zusätzliche Bedingung. Beim bedingten Sampling bleibt das Klassenlabel fest. Jeder neue latente Vektor liefert dem Decoder eine mögliche Handschrift innerhalb derselben Klasse.
Der Gegenversuch beim CVAE: Halte den latenten Vektor fest und wechsle das Klassenlabel von „1“ auf „7“. Bleibt der Schreibstil ähnlich? Die rekonstruierten Bilder zeigen, wie gut der Decoder Klasseninformation und individuelle Strichmerkmale trennt.
β-VAE: Was verändert die Gewichtung der KL-Divergenz?
Beim β-VAE gewichtet der Faktor Beta die KL-Divergenz in der Verlustfunktion. β = 1 entspricht dem klassischen VAE. Bei β = 4 kostet dieselbe Abweichung vom Prior viermal so viel. Der Encoder muss bildspezifische Information im latenten Vektor sparsamer einsetzen. In der Rekonstruktion kann dadurch etwa der kurze Aufstrich einer Sieben fehlen.
Diese Regularisierung kann Disentanglement begünstigen. Damit ist die Trennung latenter Merkmale gemeint. Variiere jeweils eine latente Koordinate bei sonst festem Vektor. Verändert der Decoder nur die Strichbreite, lässt sich dieses Merkmal entlang dieser Richtung steuern. Ändert sich zugleich die Neigung, bleiben beide Merkmale dort gekoppelt.
Was unterscheidet VAE, GAN und Diffusionsmodell?
| Modellfamilie | Was lernt das Modell? | Wie entsteht ein neues Bild? |
|---|---|---|
| Variational Autoencoder | Der Encoder schätzt eine Verteilung für jede Eingabe. Der Decoder lernt die Rekonstruktion unter der Vorgabe eines gemeinsamen Priors. | Eine Stichprobe aus dem Prior durchläuft den Decoder. |
| Generative Adversarial Network (GAN) | Ein Diskriminator lernt, echte von erzeugten Bildern zu unterscheiden. Sein Urteil liefert dem Generator ein Lernsignal. | Der trainierte Generator übersetzt einen Zufallsvektor direkt in ein Bild. |
| Diffusionsmodell | Ein neuronales Netz lernt anhand unterschiedlich stark verrauschter Trainingsdaten, wie sich die Störung schrittweise zurücknehmen lässt. | Ausgehend von Rauschen verfeinert das Modell eine Stichprobe über mehrere Schritte. |
Ein Transformer ist eine Netzwerkarchitektur, die mit Attention Beziehungen zwischen Teilen einer Eingabe lernt. Transformer können Texte Token für Token erzeugen oder im Diffusionsmodell Bildmerkmale verarbeiten. Bei Videos kann ein Autoencoder Bildfolgen räumlich und zeitlich komprimieren. Ein Transformer modelliert dann Beziehungen zwischen den komprimierten Darstellungen.
Welche Rolle spielt der VAE bei Stable Diffusion?
Bei Stable Diffusion teilen sich Diffusionsmodell und VAE einen latenten Raum. Die Text-zu-Bild-Generierung startet mit Rauschen. Geleitet vom Textprompt entrauscht das Diffusionsmodell die latente Darstellung schrittweise. Erst der VAE-Decoder übersetzt das Ergebnis in sichtbare Pixel. Der VAE-Encoder kommt zum Einsatz, sobald ein vorhandenes Bild die Vorlage bildet.
Für die Bildbearbeitung komprimiert der VAE-Encoder das Eingabebild. Die Bearbeitungsstärke bestimmt mit, wie viel Rauschen die latente Repräsentation erhält. Danach übernimmt das Diffusionsmodell das Entrauschen und der VAE-Decoder die Bildrekonstruktion. Die Bildkompression bleibt so auch bei einer Bearbeitung vom eigentlichen Diffusionsprozess getrennt.






