KL Divergenz zwischen zwei univariaten Gaußschen


79

Ich muss die KL-Divergenz zwischen zwei Gaußschen bestimmen. Ich vergleiche meine Ergebnisse mit diesen , aber ich kann ihr Ergebnis nicht reproduzieren. Mein Ergebnis ist offensichtlich falsch, weil die KL für KL nicht 0 ist (p, p).

Ich frage mich, wo ich einen Fehler mache und ob jemand ihn erkennen kann.

Sei und . Aus Bishops PRML weiß ich dasp(x)=N(μ1,σ1)q(x)=N(μ2,σ2)

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

wo die Integration über die gesamte reale Linie erfolgt, und das auch noch

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

deshalb beschränke ich mich auf , als das ich schreiben kann∫p(x)log⁡q(x)dx

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

das kann in getrennt werden

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

Ich nehme das Protokoll, das ich bekomme

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

wo ich die Summen trenne und aus dem Integral erhalte .σ22

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

Wenn ich ⟨⟨den Erwartungsoperator unter bezeichnen ⟨⟩ , kann ich dies umschreiben alsp

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

Wir wissen, dass . Somitvar(x)=⟨x2⟩−⟨x⟩2

⟨x2⟩=σ12+μ12

und deshalb

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

das kann ich als

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

Alles zusammen fasse ich zusammen

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.
Das ist falsch, da es für zwei identische Gaußsche entspricht .1

Kann jemand meinen Fehler erkennen?

Aktualisieren

Vielen Dank an mpiktas für die Aufklärung. Die richtige Antwort ist:

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


Entschuldigung, dass Sie die falsche Antwort eingegeben haben. Ich habe mir gerade und sofort gedacht, dass das Integral Null ist. Der Punkt, dass es quadratisch war völlig verpasst meinen Verstand :)x−μ1
— mpiktas

Was ist mit dem Multi-Variate-Fall?

Ich habe gerade in einer Forschungsarbeit gesehen, dass kld $ KL (p, q) = ½ * ((μ₁-μ₂) ² + σ₁² + σ₂²) * ((1 / σ₁²) + (1 / σ₂²) - 2 sein sollte
— Skyde

1
Ich glaube, Ihre Frage enthält einen Tippfehler, da ich sie nicht validieren kann und Sie anscheinend später in Ihrer Frage die richtige Version verwendet haben: Ich denke, es sollte sein (beachten Sie das Minus): Ich habe versucht, Ihre Frage zu bearbeiten und wurde dafür gesperrt, also machen Sie es vielleicht selbst.
∫p(x)log⁡p(x)dx=12(1+log⁡2πσ12)
∫p(x)log⁡p(x)dx=−12(1+log⁡2πσ12)
— Y-Spreen

Die Antwort findet sich auch in meiner Arbeit von 1996 über innere Verluste .
— Xi'an

Antworten:


59

OK, mein Schlimmes. Der Fehler ist in der letzten Gleichung:

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 Ich meinte die Frage wirklich - bayerj Ist ein gut veröffentlichter Forscher und ich bin ein Undergrad. Schön zu sehen, dass selbst die Schlauen manchmal auf Fragen im Internet zurückgreifen :)
— 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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.