VAE(Variational Autoencoder)

[vu-a-e]

Tipo di rete che impara a comprimere dati in uno spazio latente continuo, da cui può generare campioni nuovi. Usata in Stable Diffusion.

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.