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)log⁡q(x)dx+∫p(x)log⁡p(x)dx

di mana integrasi dilakukan melalui semua garis nyata, dan itu

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

jadi saya membatasi diri untuk , yang dapat saya tuliskan sebagai∫p(x)log⁡q(x)dx

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

yang dapat dipisahkan menjadi

12log⁡(2πσ22)−∫p(x)log⁡e−(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)x2dx−∫p(x)2xμ2dx+∫p(x)μ22dx2σ22

Membiarkan menunjukkan operator ekspektasi di bawah , saya dapat menulis ulang ini sebagai⟨⟩p

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

Kita tahu bahwa . Jadivar(x)=⟨x2⟩−⟨x⟩2

⟨x2⟩=σ12+μ12

dan maka dari itu

12log⁡(2πσ2)+σ12+μ12−2μ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)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.
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σ22−12


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)log⁡p(x)dx=12(1+log⁡2πσ12)
∫p(x)log⁡p(x)dx=−12(1+log⁡2πσ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)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

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


@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σ22−12

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.