Sofortantwort
VAE einfach erklärt
Generatives Modell, das Daten komprimiert und neu generiert.
- Kurz gesagt
- Encoder komprimiert Daten in latenten Raum, Decoder rekonstruiert
- Typischer Einsatz
- Bildgenerierung, Latent Diffusion, Anomalieerkennung
- Wichtig zu wissen
- Grundlage für Latent Diffusion Models (Stable Diffusion)
VAE im Überblick
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.
Technisch betrachtet
Architektur
Input x → Encoder → μ, σ → z = μ + σ·ε → Decoder → x̂
(Reparametrization Trick)
Loss Function
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)?)
PyTorch Beispiel
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
VAE vs. GAN vs. Diffusion
| Aspekt | VAE | GAN | Diffusion |
|---|---|---|---|
| Training | Stabil | Instabil | Stabil |
| Qualität | Gut | Sehr gut | Exzellent |
| Latenter Raum | Strukturiert | Unstrukturiert | Keiner |
| Geschwindigkeit | Schnell | Schnell | Langsam |