Jak działa sztuczka reparametryzacji dla wariacyjnych autoencoderów (VAE)? Czy istnieje intuicyjne i łatwe wyjaśnienie bez uproszczenia podstawowej matematyki? A dlaczego potrzebujemy „sztuczki”?
Jak działa sztuczka reparametryzacji dla wariacyjnych autoencoderów (VAE)? Czy istnieje intuicyjne i łatwe wyjaśnienie bez uproszczenia podstawowej matematyki? A dlaczego potrzebujemy „sztuczki”?
Odpowiedzi:
Po przeczytaniu slajdów warsztatowych NIPS 2015 firmy Kingma , zdałem sobie sprawę, że potrzebujemy sztuczki polegającej na ponownej parametryzacji, aby cofnąć propagację przez losowy węzeł.
Intuicyjnie, w oryginalnej formie, VAE pobierają próbkę z losowego węzła który jest aproksymowany przez parametryczny model q ( z ∣ ϕ , x ) prawdziwego tylnego. Backprop nie może przepływać przez losowy węzeł.
Wprowadzenie nowego parametru pozwala nam ponownie sparametryzować z w sposób, który pozwala przepływowi wstecznego przepływać przez węzły deterministyczne.
Załóżmy, że mamy rozkład normalny który jest parametryzowany przez θ , a konkretnie q θ ( x ) = N ( θ , 1 ) . Chcemy rozwiązać poniższy problem min θ Jest to oczywiście dość głupiutki problem, a optymalne θ jest oczywiste. Jednak tutaj chcemy tylko zrozumieć, w jaki sposób sztuczka reparametryzacji pomaga w obliczeniu gradientu tego celu E q [ x 2 ] .
Oto napisany przeze mnie notatnik IPython, który analizuje wariancję tych dwóch sposobów obliczania gradientów. http://nbviewer.jupyter.org/github/gokererdogan/Notebooks/blob/master/Reparameterization%20Trick.ipynb
Rozsądny przykład matematyki „sztuczki reparametryzacji” podano w odpowiedzi gokera, ale pewna motywacja może być pomocna. (Nie mam uprawnień do komentowania tej odpowiedzi; dlatego tutaj jest osobna odpowiedź).
, która może być daleka od optymalnej (np. dowolnie wybrana wartość początkowa). To trochę jak historia pijanego, który szuka swoich kluczy w pobliżu latarni (bo tam właśnie widzi / próbkuje), a nie w pobliżu, gdzie je upuścił.
Mam nadzieję że to pomogło.
Pozwól mi najpierw wyjaśnić, dlaczego potrzebujemy sztuczki reparametryzacji w VAE.
VAE ma koder i dekoder. Dekoder losowo pobiera próbki z prawdziwej tylnej Z ~ q (z∣ϕ, x) . Aby zaimplementować koder i dekoder jako sieć neuronową, musisz przesłuchać ponownie za pomocą losowego próbkowania i to jest problem, ponieważ propagacja wsteczna nie może przepływać przez losowy węzeł; aby pokonać tę przeszkodę, stosujemy sztuczkę reparametryzacji.
Teraz chodźmy oszukać. Ponieważ nasz tylny jest zwykle rozłożony, możemy przybliżać go innym rozkładem normalnym. Przybliżamy Z z normalnie rozłożonym ε .
Ale jak to ma znaczenie?
Teraz zamiast powiedzieć, że Z jest próbkowane z q (z∣ϕ, x) , możemy powiedzieć, że Z jest funkcją, która przyjmuje parametr (ε, (µ, L)), a te µ, L pochodzi z górnej sieci neuronowej (kodera) . Dlatego podczas gdy wsteczna propozycja wszystko, czego potrzebujemy, to pochodne cząstkowe wrt µ, L i ε nie mają znaczenia dla przyjmowania pochodnych.
Myślałem, że wyjaśnienie znalezione w kursie Stanford CS228 na probabilistycznych modelach graficznych było bardzo dobre. Można go znaleźć tutaj: https://ermongroup.github.io/cs228-notes/extras/vae/
Dla wygody / własnego zrozumienia streściłem / skopiowałem tutaj ważne części (chociaż zdecydowanie zalecam po prostu sprawdzenie oryginalnego linku).
Jeśli znasz estymatory funkcji punktacji (uważam, że REINFORCE to tylko specjalny przypadek tego), zauważysz, że jest to problem, który rozwiązują. Jednak estymator funkcji punktowej ma dużą zmienność, co prowadzi do trudności w uczeniu się modeli przez większość czasu.
Jako przykład użyjmy bardzo prostego q, z którego próbkujemy.
Ma to mniejszą wariancję, z powodów imo, niebanalnych. Wyjaśnienie znajduje się w części D załącznika: https://arxiv.org/pdf/1401.4082.pdf
Mamy nasz model probablistyczny. I chcesz odzyskać parametry modelu. Ograniczamy nasze zadanie do optymalizacji wariacyjnej dolnej granicy (VLB). Aby to zrobić, powinniśmy być w stanie zrobić dwie rzeczy:
Autorzy sugerują użycie Estimatora Monte Carlo w obu przypadkach. I faktycznie wprowadzają tę sztuczkę, aby uzyskać bardziej precyzyjny estymator gradientu Monte Carlo VLB.
To tylko ulepszenie metody numerycznej.
Sztuczka reparametryzacji radykalnie zmniejsza wariancję estymatora MC dla gradientu. Jest to technika redukcji wariancji :