Tôi cần xác định sự phân kỳ KL giữa hai Gaussian. Tôi đang so sánh kết quả của mình với những kết quả này , nhưng tôi không thể sao chép kết quả của chúng. Kết quả của tôi rõ ràng là sai, vì KL không phải là 0 đối với KL (p, p).
Tôi tự hỏi tôi đang làm sai ở đâu và hỏi liệu có ai có thể phát hiện ra nó không.
Đặt và . Từ PRML của Giám mục tôi biết rằngp(x)=N(μ1,σ1)q(x)=N(μ2,σ2)
KL(p,q)=−∫p(x)logq(x)dx+∫p(x)logp(x)dx
nơi tích hợp được thực hiện trên tất cả các dòng thực, và đó
∫p(x)logp(x)dx=−12(1+log2πσ21),
vì vậy tôi giới hạn bản thân ở , mà tôi có thể viết ra dưới dạng∫p(x)logq(x)dx
−∫p(x)log1(2πσ22)(1/2)e−(x−μ2)22σ22dx,
có thể được tách thành
12log(2πσ22)−∫p(x)loge−(x−μ2)22σ22dx.
Lấy nhật ký tôi nhận được
12log(2πσ22)−∫p(x)(−(x−μ2)22σ22)dx,
trong đó tôi tách các khoản tiền và lấy khỏi tích phân.σ22
12log(2πσ22)+∫p(x)x2dx−∫p(x)2xμ2dx+∫p(x)μ22dx2σ22
Để biểu thị toán tử kỳ vọng theo , tôi có thể viết lại này dưới dạng⟨⟩p
12log(2πσ22)+⟨x2⟩−2⟨x⟩μ2+μ222σ22.
Chúng tôi biết rằng . Do vậyvar(x)=⟨x2⟩−⟨x⟩2
⟨x2⟩=σ21+μ21
và do đó
12log(2πσ2)+σ21+μ21−2μ1μ2+μ222σ22,
mà tôi có thể đặt
12log(2πσ22)+σ21+(μ1−μ2)22σ22.
Đặt mọi thứ lại với nhau, tôi nhận được
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.
Điều này sai vì nó bằng cho hai Gaussian giống hệt nhau.1
Bất cứ ai có thể phát hiện ra lỗi của tôi?
Cập nhật
Cảm ơn mpiktas vì đã làm sáng tỏ mọi thứ. Đáp án đúng là:
KL(p,q)=logσ2σ1+σ21+(μ1−μ2)22σ22−12