VAE
Jak działa
Trening: dla próbki x encoder zwraca parametry rozkładu q_φ(z|x) = 𝒩(μ_φ(x), σ²_φ(x)·I). Próbkujemy z = μ + σ·ε, gdzie ε ~ 𝒩(0,I) (reparametryzacja umożliwia gradient). Decoder daje p_θ(x|z) (Gauss albo Bernoulli). Funkcja kosztu: ℒ_ELBO = − ℒ_rekon (np. MSE lub BCE) − β·KL(q_φ(z|x) ∥ p(z)), gdzie β=1 to klasyczny VAE, β-VAE używa innych wag. Generacja: próbkujemy z ~ p(z) = 𝒩(0,I), przepuszczamy przez decoder. Warianty: β-VAE (kontrola disentanglement), VQ-VAE (dyskretne kody przez vector quantization), KL-VAE (kontynuacyjne, używane w SD), conditional VAE (warunkowanie), hierarchical VAE (NVAE, VDVAE). W pipeline'ach LDM trening VAE jest wzbogacony o LPIPS i adversarial loss dla lepszej rekonstrukcji percepcyjnej.
Rozwiązany problem
Klasyczne autoenkodery uczą się dowolnej (deterministycznej) przestrzeni latentnej, która nie nadaje się do generacji nowych próbek. VAE rozwiązuje ten problem, narzucając probabilistyczną strukturę i regularyzację KL — przestrzeń latentna staje się gładka i próbkowalna, co umożliwia generację nowych obrazów/sekwencji oraz interpretowalne interpolacje.
Komponenty
Sieć neuronowa wyznaczająca parametry rozkładu posteriornego (zwykle μ i log σ² Gaussa). Dla obrazów: CNN. Dla sekwencji: RNN/Transformer.
Sieć przekształcająca z w rekonstrukcję / próbkę x̂. Decoder definiuje rozkład warunkowy obserwacji.
z = μ + σ·ε, ε ~ 𝒩(0,I). Pozwala propagować gradient przez stochastyczny węzeł, kluczowe dla SGD na ELBO.
Oficjalna
KL(q_φ(z|x) ∥ p(z)) — analitycznie liczone dla Gaussa. Reguliryzacja zapobiegająca degeneracji do zwykłego autoenkodera.
Klasycznie 𝒩(0,I). Hierarchical VAE używa wielopoziomowych priorów; VQ-VAE używa kategorycznego priora uczonego osobno (PixelCNN, Transformer).
Implementacja
Posterior q_φ(z|x) zapada się do priora p(z), decoder ignoruje z, model traci zdolność reprezentacji.
Loss MSE/BCE prowadzi do uśredniania → rozmyte obrazy.
Większość kodów w słowniku przestaje być używana — efektywny rozmiar słownika spada drastycznie.
Próbkowanie z p(z) generuje próbki z obszarów, których agregowany posterior unika → niska jakość.
Ewolucja
Kingma & Welling formalizują VAE z reparametryzacją; równolegle Rezende, Mohamed & Wierstra publikują „Stochastic Backpropagation".
Higgins i in. wprowadzają β-VAE, kontrolując disentanglement reprezentacji przez wagę KL.
van den Oord i in. wprowadzają vector quantization w przestrzeni latentnej; fundament DALL·E 1, MUSE, Parti.
Razavi i in. uzyskują wysokorozdzielcze próbki przez hierarchię kodów.
Hafner i in. używają wariacyjnej dynamiki latentnej do model-based RL z pikseli.
Vahdat & Kautz oraz Child pokazują, że bardzo głębokie hierarchiczne VAE konkurują z dyfuzją w jakości.
Rombach i in. używają KL-VAE z LPIPS + adversarial loss jako pierwszego stopnia LDM.
Stability AI rozszerza VAE z 4 na 16 kanałów dla znacząco lepszej rekonstrukcji w SD3.
Hiperparametry (konfigurowalne osie)
Rozmiar przestrzeni latentnej. Za mała → utrata informacji; za duża → trudność próbkowania.
Współczynnik wagi KL w β-VAE. β>1 → silniejszy disentanglement, β<1 → lepsza rekonstrukcja.
Stopniowe podnoszenie wagi KL przeciw posterior collapse, szczególnie w sekwencyjnych VAE.
Próg poniżej którego KL nie jest karany, zapobiega zapadaniu się posterioru.
Gauss diagonalny / Gauss z pełną kowariancją / VQ (kategoryczny) / hierarchiczny.
MSE / BCE / LPIPS + adversarial (jak w SD VAE) — silnie wpływa na jakość percepcyjną.
Paradygmat wykonania
Cały encoder i decoder są aktywne w każdym kroku.
Równoległość
Encoder, decoder i obliczenia ELBO są w pełni równoległe w batchu. Brak rekurencji w czasie (poza wariantami sekwencyjnymi jak RSSM).
Wymagania sprzętowe
Encoder i decoder to w większości CNN/Transformer — idealnie pasują do tensor cores. KL i ELBO to tania arytmetyka tensorowa.
Treningi VAE w JAX/TPU są dobrze wspierane (Diffusers, Flax).