Variational Autoencoders (VAEs) verwenden die Autoencoder-Architektur zur Kodierung des latenten Raums in einer Weise, die für generative Aufgaben wie die Bildgenerierung verwendet werden kann.
Im Gegensatz zu den meisten Autoencodern, bei denen es sich um „deterministische“ Modelle handelt, die einen einzelnen Vektor diskreter Werte für jede latente Variable der Trainingsdaten kodieren, sind VAES „probabilistische“ Modelle, die den latenten Raum als einen Bereich von Möglichkeiten kodieren. Durch Interpolation aus diesem Bereich der kodierten Möglichkeiten können VAEs neue Datenproben synthetisieren, die zwar einzigartig und originell sind, aber den ursprünglichen Trainingsdaten ähneln.
Um die Generierung völlig neuer Datenmuster zu ermöglichen (anstatt einfach nur Stichproben aus Trainingsdaten neu zu erstellen oder zu kombinieren), muss der latente Raum zwei Arten der Regelmäßigkeit aufweisen:
- Kontinuität: Nahe gelegene Punkte im latenten Raum sollten bei der Dekodierung ähnliche Inhalte liefern.
- Vollständigkeit: Jeder Punkt, der aus dem latenten Raum entnommen wird, sollte bei der Dekodierung aussagekräftige Inhalte liefern.
Eine einfache Möglichkeit zur Erzwingung von Kontinuität und Vollständigkeit im latenten Raum ist die Normalverteilung (Gaußsche Verteilung). Daher kodieren VAEs 2 verschiedene Vektoren für jedes latente Attribut von Trainingsdaten: einen Mittelwertvektor, „μ“ und einen Vektor der Standardabweichungen, „σ“. Im Wesentlichen stellen diese 2 Vektoren den Bereich der Möglichkeiten für jede latente Variable und die erwartete Varianz innerhalb jedes Bereichs von Möglichkeiten dar.
VAEs erreichen dies durch Hinzufügen einer zusätzlichen Verlustfunktion neben dem Rekonstruktionsverlust: Kullback-Leibler-Divergenz (oder KL-Divergenz). Genauer gesagt wird die VAE so trainiert, dass die Divergenz zwischen einer Standard-Gauß-Verteilung und dem erlernten latenten Raum durch Minimierung des Rekonstruktionsverlustes minimiert wird.