Chcę oszacować rozbieżność KL między dwoma ciągłymi rozkładami f i g. Nie mogę jednak zapisać gęstości dla f lub g. Mogę próbkować zf i g za pomocą jakiejś metody (na przykład markov chain Monte Carlo).
Rozbieżność KL od f do g jest zdefiniowana w następujący sposób
To jest oczekiwanie na w odniesieniu do f, abyście mogli sobie wyobrazić jakieś oszacowanie Monte Carlo
Gdzie i indeksuje N próbek pobranych z f (tj. dla i = 1, ..., N)
Ponieważ jednak nie znam f () i g (), nie mogę nawet użyć tego oszacowania Monte Carlo. Jaki jest standardowy sposób oszacowania KL w tej sytuacji?
EDYCJA: NIE znam nietypowej gęstości dla f () lub g ()
kullback-leibler
frelk
źródło
źródło
Odpowiedzi:
Zakładam, że możesz to ocenićfa i sol aż do stałej normalizującej. Oznaczaćfa( x ) =fau( x ) /dofa i sol( x ) =solu( x ) /dosol .
Spójnym estymatorem, który można zastosować, jest
Więc pozwól{xja} ∼πfa , {yja} ∼πsol , i {zja} ∼πr . Licznik (1) jest zbieżny zdofa . Mianownik jest zbieżny zdosol . Współczynnik jest spójny z twierdzeniem o ciągłym odwzorowaniu. Rejestr współczynnika jest spójny poprzez ponowne mapowanie ciągłe.
Jeśli chodzi o drugą część estymatora,
Moja motywacja jest następująca:
Aby uzyskać więcej pomysłów na temat symulacji współczynnika wiarygodności, znalazłem artykuł, który ma kilka: https://projecteuclid.org/download/pdf_1/euclid.aos/1031594732
źródło
Tutaj zakładam, że możesz próbkować tylko z modeli; nietypowa funkcja gęstości nie jest dostępna.
Ty to piszesz
gdzie zdefiniowałem stosunek prawdopodobieństwar . Alex Smola pisze, choć w innym kontekście , że można oszacować te współczynniki „łatwo”, po prostu trenując klasyfikatora. Załóżmy, że uzyskałeś klasyfikatorp ( f| x) , co może powiedzieć prawdopodobieństwo, że obserwacja x został wygenerowany przez fa . Zauważ, żep ( g| x)=1-p(f| x) . Następnie:
gdzie pierwszy krok należy do Bayesa, a ostatni wynika z założenia, żep ( g) = p ( f) .
Uzyskanie takiego klasyfikatora może być dość łatwe z dwóch powodów.
Po pierwsze, możesz wykonać aktualizacje stochastyczne. Oznacza to, że jeśli używasz optymalizatora opartego na gradiencie, co jest typowe dla regresji logistycznej lub sieci neuronowych, możesz po prostu pobrać próbki z każdegofa i sol i dokonaj aktualizacji.
Po drugie, ponieważ masz praktycznie nieograniczoną liczbę danych - możesz po prostu próbkowaćfa i sol na śmierć - nie musisz się martwić o nadmierne dopasowanie itp.
źródło
Oprócz metody klasyfikatora probabilistycznego wspomnianej przez @bayerj, możesz również użyć dolnej granicy dywergencji KL uzyskanej w [1-2]:
Aby oszacować rozbieżność KL pomiędzyf i g , maksymalizujemy dolną granicę wrt do funkcji T(x) .
Bibliografia:
[1] Nguyen, X., Wainwright, MJ i Jordan, MI, 2010. Oszacowanie funkcjonałów dywergencji i współczynnika prawdopodobieństwa poprzez minimalizację ryzyka wypukłości. Transakcje IEEE dotyczące teorii informacji, 56 (11), s. 5847–5861.
[2] Nowozin, S., Cseke, B. and Tomioka, R., 2016. f-gan: Trening generatywnych próbników neuronowych z wykorzystaniem minimalizacji dywergencji wariacyjnej. W postępach w neuronowych systemach przetwarzania informacji (str. 271–279).
źródło