Ước tính phân kỳ Kullback Leibler (KL) với monte carlo


9

Tôi muốn ước tính độ phân kỳ KL giữa hai phân phối liên tục f và g. Tuy nhiên, tôi không thể ghi lại mật độ cho f hoặc g. Tôi có thể lấy mẫu từ cả f và g thông qua một số phương pháp (ví dụ: markov chain monte carlo).

Phân kỳ KL từ f đến g được định nghĩa như thế này

DKL(f||g)=f(x)log(f(x)g(x))dx

Đây là kỳ vọng của log(f(x)g(x))đối với f để bạn có thể tưởng tượng một số ước tính monte carlo

1NiNlog(f(xi)g(xi))

Trong đó i lập chỉ mục N mẫu được rút ra từ f (tức là xif() cho i = 1, ..., N)

Tuy nhiên, vì tôi không biết f () và g (), tôi thậm chí không thể sử dụng ước tính monte carlo này. Cách ước tính tiêu chuẩn của KL trong tình huống này là gì?

EDIT: Tôi KHÔNG biết mật độ không chuẩn hóa cho cả f () hoặc g ()


Bạn đã cân nhắc sử dụng ecdfs chưa?
Toby

điều này sẽ hoạt động nhưng nó có thể chậm tùy ý cho sự lựa chọn khó khăn của f và g (đóng, hoặc đóng đuôi). Nếu bạn quyết định bỏ qua các mẫu từ đuôi thì bạn có thể gặp nhiều may mắn hơn với giới hạn trên của roc.
enthdegree

Câu trả lời:


6

Ở đây tôi giả sử rằng bạn chỉ có thể lấy mẫu từ các mô hình; một hàm mật độ không chuẩn hóa là không có sẵn.

Bạn viết nó

DKL(f||g)=f(x)log(f(x)g(x)=:r)dx,

rp(f|x)xfp(g|x)=1p(f|x)

r=p(x|f)p(x|g)=p(f|x)p(x)p(g)p(g|x)p(x)p(f)=p(f|x)p(g|x),

p(g)=p(f)

Có được một phân loại như vậy có thể khá dễ dàng vì hai lý do.

fg

fg


6

fgf(x)=fu(x)/cfg(x)=gu(x)/cg

DKL^(f||g)=[n1jfu(xj)/πf(xj)]11NiN[log(fu(zi)gu(zi))fu(zi)πr(zi)]log(r^)
(1)r^=1/n1/njfu(xj)/πf(xj)jgu(yj)/πg(yj).
cf/cgπfπgfuguπr

{xi}πf{yi}πg{zi}πrcfcg

1NiN[log(fu(zi)gu(zi))fu(zi)πr(zi)]ascfE[log(fu(zi)gu(zi))]

Động lực của tôi là như sau:

DKL(f||g)=f(x)log(f(x)g(x))dx=f(x){log[fu(x)gu(x)]+log[cgcf]}dx=Ef[logfu(x)gu(x)]+log[cgcf]=cf1Eπr[logfu(x)gu(x)fu(x)πr(x)]+log[cgcf].

Để biết thêm ý tưởng về cách mô phỏng tỷ lệ thích, tôi đã tìm thấy một bài báo có một vài: https://projecteuclid.org/doad/pdf_1/euclid.aos/1031594732


(+1) Điều đáng chú ý ở đây là lấy mẫu quan trọng có thể có phương sai cực kỳ cao (thậm chí phương sai vô hạn) nếu phân phối mục tiêu có đuôi nhiều hơn so với phân phối mà bạn lấy mẫu từ và / hoặc số lượng kích thước đều lớn.
David J. Harris

@ DavidJ.Harris rất rất đúng
Taylor

0

Bên cạnh phương pháp phân loại xác suất được đề cập bởi @bayerj, bạn cũng có thể sử dụng giới hạn dưới của phân kỳ KL xuất phát trong [1-2]:

KL[fg]supT{Exf[T(x)]Exg[exp(T(x)1)]},
T:XR
T(x)=1+ln[f(x)g(x)]

Để ước tính độ phân kỳ KL giữa và , chúng ta tối đa hóa wrt giới hạn dưới cho hàm .fgT(x)

Người giới thiệu:

[1] Nguyen, X., Wainwright, MJ và Jordan, MI, 2010. Ước tính các hàm phân kỳ và tỷ lệ khả năng bằng cách giảm thiểu rủi ro lồi. Giao dịch của IEEE về Lý thuyết thông tin, 56 (11), tr.5847-5861.

[2] Nowozin, S., Cseke, B. và Tomioka, R., 2016. f-gan: Đào tạo các máy lấy mẫu thần kinh thế hệ bằng cách sử dụng tối thiểu hóa phân kỳ thay đổi. Trong những tiến bộ trong hệ thống xử lý thông tin thần kinh (trang 271-279).

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.