Perbedaan KL antara duaausa univariat

79

Saya perlu menentukan KL-divergence antara dua Gaussians. Saya membandingkan hasil saya dengan ini , tetapi saya tidak dapat mereproduksi hasilnya. Hasil saya jelas salah, karena KL bukan 0 untuk KL (p, p).

Saya bertanya-tanya di mana saya melakukan kesalahan dan bertanya apakah ada yang bisa menemukannya.

Biarkan dan . Dari PRML Uskup, saya tahu itup(x)=N(μ1,σ1)q(x)=N(μ2,σ2)

KL(p,q)=p(x)logq(x)dx+p(x)logp(x)dx

di mana integrasi dilakukan melalui semua garis nyata, dan itu

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

jadi saya membatasi diri untuk , yang dapat saya tuliskan sebagaip(x)logq(x)dx

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

yang dapat dipisahkan menjadi

12log(2πσ22)p(x)loge(xμ2)22σ22dx.

Mengambil log saya dapatkan

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

di mana saya memisahkan jumlah dan mendapatkan dari integral.σ22

12log(2πσ22)+p(x)x2dxp(x)2xμ2dx+p(x)μ22dx2σ22

Membiarkan menunjukkan operator ekspektasi di bawah , saya dapat menulis ulang ini sebagaip

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

Kita tahu bahwa . Jadivar(x)=x2x2

x2=σ12+μ12

dan maka dari itu

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

yang bisa saya masukkan sebagai

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

Menyatukan semuanya, saya bisa

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.
Yang salah karena sama dengan untuk dua Gaussi yang identik.1

Adakah yang bisa melihat kesalahan saya?

Memperbarui

Terima kasih kepada mpikta untuk membereskan semuanya. Jawaban yang benar adalah:

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

bayerj
sumber
maaf karena memposting jawaban yang salah sejak awal. Saya baru saja melihat dan langsung berpikir bahwa integralnya adalah nol. Poin yang kuadrat benar-benar merindukan pikiranku :)xμ1
mpiktas
bagaimana dengan case multi variate?
Saya baru saja melihat di sebuah makalah penelitian bahwa kld harus $ KL (p, q) = ½ * ((μ₁-μ₂) ² + σ₁² + σ₂²) * ((1 / σ₁²) + (1 / σ₂²)) - 2
skyde
1
Saya pikir ada kesalahan ketik dalam pertanyaan Anda, karena saya tidak dapat memvalidasinya dan tampaknya Anda juga menggunakan versi yang benar di pertanyaan Anda: Saya pikir seharusnya (perhatikan minusnya): Saya mencoba mengedit pertanyaan Anda dan dilarang melakukannya, jadi mungkin lakukan sendiri.
p(x)logp(x)dx=12(1+log2πσ12)
p(x)logp(x)dx=12(1+log2πσ12)
y-spreen
Jawabannya juga dalam makalah saya tahun 1996 tentang kerugian Intrinsik .
Xi'an

Jawaban:

59

OK, salahku. Kesalahan ada dalam persamaan terakhir:

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

Perhatikan yang hilang . Baris terakhir menjadi nol ketika dan .12μ1=μ2σ1=σ2

mpiktas
sumber
@mpiktas Saya maksudkan pertanyaan itu benar-benar - bayerj Adalah seorang peneliti yang dipublikasikan dengan baik dan saya adalah seorang mahasiswa. Senang melihat bahwa orang-orang pintar kadang-kadang kembali bertanya di internet :)
N. McA.
3
adalah p atauμ1σ1μ2σ2
Kong
@Kong p adalah , seperti yang tercantum dalam pertanyaan. N(u1,σ1)
zplizzi
31

Saya tidak melihat perhitungan Anda tetapi ini milik saya dengan banyak detail. Misalkan adalah kepadatan variabel acak normal dengan mean dan varians , dan adalah kepadatan variabel acak normal dengan mean dan varians . Jarak Kullback-Leibler dari ke adalah: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

(Sekarang perhatikan bahwa )(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

okram
sumber