KL Strata z jednostką Gaussa


10

Wdrażam VAE i zauważyłem w Internecie dwie różne implementacje uproszczonej rozbieżności Gaussa KL dla jednej zmiennej. Oryginalna rozbieżność, jak tutaj, jest

K.L.loss=log(σ2)σ1)+σ12)+(μ1-μ2))2)2)σ2)2)-12)
Jeśli założymy, że nasz przeor jest jednostką gaussowską tj μ2)=0 i σ2)=1, upraszcza to do
K.L.loss=-log(σ1)+σ12)+μ12)2)-12)
K.L.loss=-12)(2)log(σ1)-σ12)-μ12)+1)
I tutaj leży moje zamieszanie. Chociaż znalazłem kilka niejasnych repozytoriów github z powyższą implementacją, najczęściej używam:

=-12)(log(σ1)-σ1-μ12)+1)
Na przykład w oficjalnym samouczku autokodera Keras . Moje pytanie brzmi zatem: czego mi brakuje między tymi dwoma? Główną różnicą jest upuszczenie współczynnika 2 na logarytmie i nie kwadrat wariancji. Analitycznie wykorzystałem to drugie z sukcesem, na ile to warte. Z góry dziękuję za wszelką pomoc!

Odpowiedzi:


7

Zauważ, że zastępując σ1 z σ12) w ostatnim równaniu odzyskujesz poprzednie (tj log(σ1)-σ12)log(σ1)-σ12)). Doprowadziło mnie to do wniosku, że w pierwszym przypadku koder służy do przewidywania wariancji, podczas gdy w drugim przypadku służy do przewidywania odchylenia standardowego.

Oba preparaty są równoważne, a cel pozostaje niezmieniony.


Nie sądzę, że może być tak, że są one równoważne. Tak, oba są zminimalizowane, gdy wynosi zeroμ i jednostka σ. Jednak w pierwotnym równaniu (zawierającym wariancję) kara za ruchσod jedności jest znacznie większa niż w drugim równaniu (na podstawie odchylenia standardowego). Kara za zmiany wμ jest taki sam dla obu, a błąd rekonstrukcji byłby taki sam, więc użycie drugiej wersji radykalnie zmienia względne znaczenie odlotów σz jedności. czego mi brakuje?
TheBamf

0

Uważam, że odpowiedź jest prostsza. W VAE ludzie zwykle używają wielowymiarowego rozkładu normalnego, który ma macierz kowariancjiΣ zamiast wariancji σ2). To wygląda na zagmatwane w kodzie, ale ma pożądaną formę.

Tutaj można znaleźć wyprowadzenie dywergencji KL dla wielowymiarowych rozkładów normalnych: Wyprowadzanie straty dywergencji KL dla VAE

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.