Bir VAE uyguluyorum ve basitleştirilmiş tek değişkenli gauss KL sapmasının çevrimiçi olarak iki farklı uygulamasını fark ettim. Uygun olarak, orijinal diverjans burada bir
bir birim gaussian olduğunu varsayarsak, ve , bu
İşte karışıklığım burada. Yukarıdaki uygulama ile birkaç belirsiz github depoları bulmuş olmama rağmen, daha yaygın olarak kullandığım şey:
KLloss=log(σ2σ1)+σ21+(μ1−μ2)22σ22−12
μ2=0σ2=1KLloss=−log(σ1)+σ21+μ212−12
KLloss=−12(2log(σ1)−σ21−μ21+1)
=−12(log(σ1)−σ1−μ21+1)
Örneğin resmi
Keras otomatik kodlayıcı eğitiminde . Benim sorum şu, bu ikisi arasında ne eksik? Temel fark log teriminde 2 faktörünü düşürmek ve varyansı kareye almamaktır. Analitik olarak ikincisini başarı ile kullandım, ne için. Herhangi bir yardım için şimdiden teşekkürler!