Il VAE (Variational Autoencoder) è un tipo di autoencoder che, oltre a comprimere e decomprimere, impara una distribuzione probabilistica nello spazio latente. Dalla quale puoi generare campioni nuovi simili ai dati di training.
Differenza con l'autoencoder normale: l'AE classico mappa ogni input in un punto preciso. Il VAE lo mappa in una distribuzione (media + varianza). Questa stocasticità + un termine di regolarizzazione (KL divergence) ti dà uno spazio latente liscio, dove puoi campionare a caso e ottenere output sensati.
Inventato nel 2013 (Kingma e Welling). Per anni il VAE ha generato immagini sfocate ma usabili, surclassato per qualità dalle GAN e dai diffusion model.
Ma attenzione: i VAE sono tornati in grande stile come componente dei diffusion model.
- Stable Diffusion usa un VAE per comprimere immagini 512x512 in tensori latenti molto più piccoli (64x64x4). Il diffusion lavora nel latente, non nei pixel: 1000x più veloce.
- Sora, Flux: stessa idea, VAE come encoder/decoder.
Loss del VAE: due pezzi. Reconstruction loss (l'output deve assomigliare all'input) + KL divergence (lo spazio latente deve assomigliare a una gaussiana). Bilanciare i due è arte fine.
Limiti: senza decoder potente, le ricostruzioni del VAE sono sfocate. Per questo i VAE puri sono stati superati. Come blocco di un diffusion, sono perfetti.