Latent Space
Ein komprimierter, gelernter Repräsentationsraum, in dem ein Modell die wesentlichen Merkmale von Daten kodiert – die 'innere Vorstellung' eines neuronalen Netzes.
Eine generative Modellarchitektur, die Daten in einen latenten Raum komprimiert und daraus neue, ähnliche Daten generieren kann – Grundlage für viele generative KI-Systeme.
Ein VAE besteht aus zwei Teilen: Encoder (komprimiert Daten) und Decoder (rekonstruiert Daten). Das Besondere: Der latente Raum dazwischen ist eine Wahrscheinlichkeitsverteilung, nicht nur Punkte.
Warum ist das wichtig?
Normaler Autoencoder:
Bild → [Encoder] → Punkt im Raum → [Decoder] → Rekonstruktion
(Kann nur rekonstruieren, nicht generieren)
VAE:
Bild → [Encoder] → Verteilung (μ, σ) → Sample → [Decoder] → Rekonstruktion
(Kann aus der Verteilung neue Samples generieren!)
Anwendung in Stable Diffusion:
Bild (512×512×3) → VAE Encoder → Latent (64×64×4) → Diffusion → VAE Decoder → Bild
Der VAE macht die Diffusion 64× schneller, weil im komprimierten Raum gearbeitet wird.
Input x → Encoder → μ, σ → z = μ + σ·ε → Decoder → x̂
(Reparametrization Trick)
L = Rekonstruktions-Loss + KL-Divergenz
Rekonstruktion: ||x - x̂||² (Wie gut wird rekonstruiert?)
KL-Divergenz: KL(q(z|x) || p(z)) (Wie nah ist der latente Raum an N(0,1)?)
class VAE(nn.Module):
def __init__(self, latent_dim=20):
super().__init__()
self.encoder = nn.Sequential(...)
self.fc_mu = nn.Linear(hidden, latent_dim)
self.fc_var = nn.Linear(hidden, latent_dim)
self.decoder = nn.Sequential(...)
def reparameterize(self, mu, log_var):
std = torch.exp(0.5 * log_var)
eps = torch.randn_like(std)
return mu + eps * std
def forward(self, x):
h = self.encoder(x)
mu, log_var = self.fc_mu(h), self.fc_var(h)
z = self.reparameterize(mu, log_var)
return self.decoder(z), mu, log_var
| Aspekt | VAE | GAN | Diffusion |
|---|---|---|---|
| Training | Stabil | Instabil | Stabil |
| Qualität | Gut | Sehr gut | Exzellent |
| Latenter Raum | Strukturiert | Unstrukturiert | Keiner |
| Geschwindigkeit | Schnell | Schnell | Langsam |
Ein VAE ist wie ein Künstler, der Gesichter erst auf wesentliche Merkmale reduziert (Encoder) und dann aus diesen Merkmalen neue Gesichter zeichnet (Decoder) – ähnlich, aber nicht identisch zum Original.
Encoder komprimiert Daten in latenten Raum, Decoder rekonstruiert
Latenter Raum ist kontinuierlich – ermöglicht Interpolation und Generierung
Grundlage für Latent Diffusion Models (Stable Diffusion)
Bildgenerierung
Neue Bilder aus dem gelernten latenten Raum generieren
Latent Diffusion
VAE als Komponente in Stable Diffusion
Anomalieerkennung
Hoher Rekonstruktionsfehler = Anomalie
Ein normaler Autoencoder lernt eine deterministische Kompression. Ein VAE lernt eine Wahrscheinlichkeitsverteilung im latenten Raum – das macht ihn generativ und ermöglicht sinnvolle Interpolation.
Der VAE komprimiert Bilder (512×512) in einen kleineren latenten Raum (64×64). Die Diffusion findet im latenten Raum statt – das ist viel schneller als Pixel-Diffusion.
Ja, als Komponente (Latent Diffusion), für Anomalieerkennung, und in Bereichen wo schnelle Generierung wichtiger ist als maximale Qualität. Standalone werden sie aber oft von Diffusion Models übertroffen.