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πσ21),
jadi saya membatasi diri untuk , yang dapat saya tuliskan sebagai∫p(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)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⟩=σ21+μ21
dan maka dari itu
12log(2πσ2)+σ21+μ21−2μ1μ2+μ222σ22,
yang bisa saya masukkan sebagai
12log(2πσ22)+σ21+(μ1−μ2)22σ22.
Menyatukan semuanya, saya bisa
KL(p,q)=−∫p(x)logq(x)dx+∫p(x)logp(x)dx=12log(2πσ22)+σ21+(μ1−μ2)22σ22−12(1+log2πσ21)=logσ2σ1+σ21+(μ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+σ21+(μ1−μ2)22σ22−12