Phân kỳ KL giữa hai Gaussian đơn biến


79

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πσ12),

vì vậy tôi giới hạn bản thân ở , mà tôi có thể viết ra dưới dạngp(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)x2dxp(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ạngp

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

Chúng tôi biết rằng . Do vậyvar(x)=x2x2

x2=σ12+μ12

và do đó

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

mà tôi có thể đặt

12log(2πσ22)+σ12+(μ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)+σ12+(μ1μ2)22σ2212(1+log2πσ12)=logσ2σ1+σ12+(μ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+σ12+(μ1μ2)22σ2212


xin lỗi vì đã đăng câu trả lời sai ở vị trí đầu tiên Tôi chỉ nhìn vào và ngay lập tức nghĩ rằng tích phân bằng không. Điểm mà nó bình phương hoàn toàn bỏ lỡ tâm trí của tôi :)xμ1
mpiktas

những gì về trường hợp đa biến?

Tôi vừa thấy trong một bài nghiên cứu rằng kld nên là $ KL (p, q) = ½ * ((μ₁ - μ₂) ² + σ₁² + ²) * ((1 / σ₁²) + (1 / σ₂²)) - 2
skyde

1
Tôi nghĩ rằng có một lỗi đánh máy trong câu hỏi của bạn, vì tôi không thể xác thực nó và dường như bạn đã sử dụng phiên bản chính xác sau câu hỏi của mình: Tôi nghĩ rằng nó nên (lưu ý dấu trừ): Tôi đã cố chỉnh sửa câu hỏi của bạn và bị cấm vì vậy, có thể tự làm điều đó.
p(x)logp(x)dx=12(1+log2πσ12)
p(x)logp(x)dx=12(1+log2πσ12)
y-spreen

Câu trả lời cũng nằm trong bài viết năm 1996 của tôi về tổn thất nội tại .
Tây An

Câu trả lời:


59

OK, xấu của tôi. Lỗi là trong phương trình cuối cùng:

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

Lưu ý thiếu . Dòng cuối cùng trở thành số không khi và .12μ1=μ2σ1=σ2


@mpiktas Ý tôi là câu hỏi thực sự - bayerj Là một nhà nghiên cứu được xuất bản tốt và tôi là một sinh viên chưa tốt nghiệp. Rất vui khi thấy rằng ngay cả những kẻ thông minh cũng quay lại hỏi trên internet đôi khi :)
N. McA.

3
là p hoặcμ1σ1μ2σ2
Kong

@Kong p là , như đã lưu ý trong câu hỏi. N(u1,σ1)
zplizzi

31

Tôi không nhìn vào tính toán của bạn nhưng đây là của tôi với rất nhiều chi tiết. Giả sử là mật độ của một biến ngẫu nhiên bình thường với trung bình và phương sai và là mật độ của một biến ngẫu nhiên bình thường với trung bình và phương sai . Khoảng cách Kullback-Leibler từ đến là: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

(Bây giờ lưu ý rằng )(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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.