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)logq(x)dx+p(x)logp(x)dx

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

p(x)logp(x)dx=12(1+log2πσ12),

deshalb beschränke ich mich auf , als das ich schreiben kannp(x)logq(x)dx

p(x)log1(2πσ22)(1/2)e(xμ2)22σ22dx,

das kann in getrennt werden

12log(2πσ22)p(x)loge(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)x2dxp(x)2xμ2dx+p(x)μ22dx2σ22

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

12log(2πσ22)+x22xμ2+μ222σ22.

Wir wissen, dass . Somitvar(x)=x2x2

x2=σ12+μ12

und deshalb

12log(2πσ2)+σ12+μ122μ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)logq(x)dx+p(x)logp(x)dx=12log(2πσ22)+σ12+(μ1μ2)22σ2212(1+log2πσ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σ2212

bayerj
quelle
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)logp(x)dx=12(1+log2πσ12)
p(x)logp(x)dx=12(1+log2πσ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)logq(x)dx+p(x)logp(x)dx=12log(2πσ22)+σ12+(μ1μ2)22σ2212(1+log2πσ12)=logσ2σ1+σ12+(μ1μ2)22σ2212

12μ1=μ2σ1=σ2

mpiktas
quelle
@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σ2212

Ocram
quelle