jak zważyć utratę KLD vs utratę rekonstrukcji w wariacyjnym auto-enkoderze

26

w prawie wszystkich przykładach kodu, które widziałem w VAE, funkcje utraty są zdefiniowane w następujący sposób (jest to kod tensorflow, ale widziałem podobne dla theano, latarki itp. To także dla konwektu, ale to też nie jest zbyt istotne , wpływa tylko na osie, w których sumy są przejmowane):

# latent space loss. KL divergence between latent space distribution and unit gaussian, for each batch.
# first half of eq 10. in https://arxiv.org/abs/1312.6114
kl_loss = -0.5 * tf.reduce_sum(1 + log_sigma_sq - tf.square(mu) - tf.exp(log_sigma_sq), axis=1)

# reconstruction error, using pixel-wise L2 loss, for each batch
rec_loss = tf.reduce_sum(tf.squared_difference(y, x), axis=[1,2,3])

# or binary cross entropy (assuming 0...1 values)
y = tf.clip_by_value(y, 1e-8, 1-1e-8) # prevent nan on log(0)
rec_loss = -tf.reduce_sum(x * tf.log(y) + (1-x) * tf.log(1-y), axis=[1,2,3])

# sum the two and average over batches
loss = tf.reduce_mean(kl_loss + rec_loss)

Jednak zakres liczbowy kl_loss i rec_loss są bardzo zależne, odpowiednio, od ukrytych ciemności przestrzeni i wielkości elementu wejściowego (np. Rozdzielczości pikseli). Czy rozsądnie byłoby zastąpić sumy_zmniejszania wartością_redukcji, aby uzyskać wartość KLD dla z-dim i wartość LSE lub BCE na piksel (lub cechę)? Co ważniejsze, w jaki sposób łączymy straty utajone z utratą odbudowy, sumując się razem do ostatecznej straty? Czy to tylko próba i błąd? czy jest jakaś teoria (lub przynajmniej ogólna zasada)? Nigdzie nie mogłem znaleźć żadnych informacji na ten temat (w tym oryginalnego papieru).


Problem polega na tym, że jeśli równowaga między wymiarami mojej cechy wejściowej (x) a wymiarami utajonej przestrzeni (z) nie jest „optymalna”, albo moje rekonstrukcje są bardzo dobre, ale wyuczona utajona przestrzeń jest nieustrukturyzowana (jeśli wymiary x jest bardzo wysoki, a błąd rekonstrukcji dominuje nad KLD) lub odwrotnie (rekonstrukcje nie są dobre, ale wyuczona utajona przestrzeń ma dobrą strukturę, jeśli dominuje KLD).

Czuję, że muszę znormalizować utratę rekonstrukcji (dzielenie przez wielkość elementu wejściowego) i KLD (dzielenie przez wymiary Z), a następnie ręczne ważenie terminu KLD za pomocą dowolnego współczynnika wagi (normalizacja polega na tym, że mogę użyć tego samego lub podobna waga niezależna od wymiarów x lub z ). Empirycznie znalazłem około 0,1, aby zapewnić dobrą równowagę między rekonstrukcją a ustrukturyzowaną utajoną przestrzenią, która wydaje mi się być „ulubionym miejscem”. Szukam wcześniejszej pracy w tej dziedzinie.


Na życzenie notacja matematyczna powyżej (koncentrując się na utracie L2 z powodu błędu rekonstrukcji)

L.lzatmint(ja)=-12)jot=1jot(1+log(σjot(ja))2)-(μjot(ja))2)-(σjot(ja))2))

L.rmidoon(ja)=-k=1K.(yk(ja)-xk(ja))2)

L.(m)=1M.ja=1M.(L.lzatmint(ja)+L.rmidoon(ja))

gdzie jest wymiarowością utajonego wektora (i odpowiadającą średnią i wariancją ), jest wymiarowością cech wejściowych, jest rozmiarem mini-partii, indeks górny oznacza te dane point i to strata dla tej mini-partii.jotzμ K Mσ2)K.M.(ja)jaL.(m)m

notatka
źródło

Odpowiedzi:

17

Dla każdego, kto natknie się na ten post i szuka odpowiedzi, ten wątek na Twitterze dodał wiele bardzo przydatnych informacji.

Mianowicie:

beta-VAE: Nauka podstawowych pojęć wizualnych z ograniczonymi ramami wariacyjnymi

omawia moje dokładne pytanie za pomocą kilku eksperymentów. Co ciekawe, wydaje się, że ich (która jest podobna do mojej znormalizowanej masy KLD) jest również wyśrodkowana wokół 0,1, przy czym wyższe wartości dają bardziej ustrukturyzowaną utajoną przestrzeń kosztem gorszej rekonstrukcji, a niższe wartości zapewniają lepszą rekonstrukcję przy mniejszej strukturze utajona przestrzeń (choć ich celem jest w szczególności nauka wyodrębnionych reprezentacji).βnorm

i powiązane czytanie (gdzie omawiane są podobne problemy)

notatka
źródło
7

Chciałbym dodać jeszcze jeden artykuł na ten temat (nie mogę komentować z powodu mojej niskiej reputacji w tej chwili).

W podrozdziale 3.1 artykułu autorzy stwierdzili, że nie wyszkolili prostej implementacji VAE, która w równym stopniu wpłynęła na prawdopodobieństwo i rozbieżność KL. W ich przypadku strata KL została niepożądanie zmniejszona do zera, chociaż oczekiwano, że będzie miała niewielką wartość. Aby temu zaradzić, zaproponowali zastosowanie „wyżarzania kosztu KL”, który powoli zwiększał współczynnik wagi składnika dywergencji KL (krzywa niebieska) z 0 do 1.

Ryc. 2. Waga składnika dywergencji KL wariancyjnej dolnej granicy zgodnie z typowym sigmoidalnym harmonogramem wyżarzania wykreślonym obok (nieważonej) wartości terminu dywergencji KL dla naszej VAE na Penn TreeBank.

To obejście jest również stosowane w Ladder VAE.

Papier:

Bowman, SR, Vilnis, L., Vinyals, O., Dai, AM, Józefowicz, R. and Bengio, S., 2015. Generowanie zdań z ciągłej przestrzeni . nadruk arXiv arXiv: 1511.06349.

Cuong
źródło