Rozbieżność KL między dwoma jednowymiarowymi gaussami


79

Muszę ustalić rozbieżność KL między dwoma Gaussami. Porównuję moje wyniki z tymi , ale nie mogę odtworzyć ich wyników. Mój wynik jest oczywiście błędny, ponieważ KL nie jest równe 0 dla KL (p, p).

Zastanawiam się, gdzie popełniam błąd i pytam, czy ktokolwiek może to zauważyć.

Niech p(x)=N(μ1,σ1) i q(x)=N(μ2,σ2) . Z PRML Bishopa wiem o tym

KL(p,q)=−∫p(x)log⁡q(x)dx+∫p(x)log⁡p(x)dx

gdzie integracja odbywa się na całej linii rzeczywistej i to

∫p(x)log⁡p(x)dx=−12(1+log⁡2πσ12),

więc ograniczam się do ∫p(x)log⁡q(x)dx , który mogę zapisać jako

−∫p(x)log⁡1(2πσ22)(1/2)e−(x−μ2)22σ22dx,

na które można podzielić

12log⁡(2πσ22)−∫p(x)log⁡e−(x−μ2)22σ22dx.

Biorę dziennik, który dostaję

12log⁡(2πσ22)−∫p(x)(−(x−μ2)22σ22)dx,

gdzie oddzielam sumy i otrzymuję σ22 z całki.

12log⁡(2πσ22)+∫p(x)x2dx−∫p(x)2xμ2dx+∫p(x)μ22dx2σ22

POZWALAĆ ⟨⟩ oznacza operator wartości oczekiwanej mocy p , można przepisać to jako

12log⁡(2πσ22)+⟨x2⟩−2⟨x⟩μ2+μ222σ22.

Wiemy, że var(x)=⟨x2⟩−⟨x⟩2 . A zatem

⟨x2⟩=σ12+μ12

i dlatego

12log⁡(2πσ2)+σ12+μ12−2μ1μ2+μ222σ22,

co mogę umieścić jako

12log⁡(2πσ22)+σ12+(μ1−μ2)22σ22.

Łącząc wszystko, dochodzę do

KL(p,q)=−∫p(x)log⁡q(x)dx+∫p(x)log⁡p(x)dx=12log⁡(2πσ22)+σ12+(μ1−μ2)22σ22−12(1+log⁡2πσ12)=log⁡σ2σ1+σ12+(μ1−μ2)22σ22.
Co jest złe, ponieważ wynosi1dla dwóch identycznych Gaussów.

Czy ktoś może zauważyć mój błąd?

Aktualizacja

Dzięki mpiktas za uporządkowanie sprawy. Poprawna odpowiedź to:

KL(p,q)=log⁡σ2σ1+σ12+(μ1−μ2)22σ22−12


x−μ1

co ze skrzynką z wieloma wariantami?

Właśnie widziałem w pracy badawczej, że kld powinien wynosić $ KL (p, q) = ½ * ((μ₁-μ₂) ² + σ₁² + σ₂²) * ((1 / σ₁²) + (1 / σ₂²)) - 2
— skyde

1
∫p(x)log⁡p(x)dx=12(1+log⁡2πσ12)
∫p(x)log⁡p(x)dx=−12(1+log⁡2πσ12)

Odpowiedź znajduje się również w mojej pracy z 1996 r. Na temat strat wewnętrznych .
— Xi'an

Odpowiedzi:


59

OK, mój zły. Błąd znajduje się w ostatnim równaniu:

KL(p,q)=−∫p(x)log⁡q(x)dx+∫p(x)log⁡p(x)dx=12log⁡(2πσ22)+σ12+(μ1−μ2)22σ22−12(1+log⁡2πσ12)=log⁡σ2σ1+σ12+(μ1−μ2)22σ22−12

−12μ1=μ2σ1=σ2


@mpiktas Naprawdę miałem na myśli pytanie - bayerj Jest dobrze opublikowanym badaczem i jestem studentem. Miło widzieć, że nawet sprytni faceci czasem wracają do pytania w Internecie :)
— N. McA.

3
μ1σ1μ2σ2

N(u1,σ1)

31

pμ1σ12qμ2σ22qp

∫[log⁡(p(x))−log(q(x))]p(x)dx

=∫[−12log⁡(2π)−log⁡(σ1)−12(x−μ1σ1)2+12log⁡(2π)+log⁡(σ2)+12(x−μ2σ2)2] ×12πσ1exp⁡[−12(x−μ1σ1)2]dx

=∫{log⁡(σ2σ1)+12[(x−μ2σ2)2−(x−μ1σ1)2]} ×12πσ1exp⁡[−12(x−μ1σ1)2]dx

=E1{log⁡(σ2σ1)+12[(x−μ2σ2)2−(x−μ1σ1)2]}

=log⁡(σ2σ1)+12σ22E1{(X−μ2)2}−12σ12E1{(X−μ1)2}

=log⁡(σ2σ1)+12σ22E1{(X−μ2)2}−12

(X−μ2)2=(X−μ1+μ1−μ2)2=(X−μ1)2+2(X−μ1)(μ1−μ2)+(μ1−μ2)2

=log⁡(σ2σ1)+12σ22[E1{(X−μ1)2}+2(μ1−μ2)E1{X−μ1}+(μ1−μ2)2]−12

=log⁡(σ2σ1)+σ12+(μ1−μ2)22σ22−12

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.