Saya ingin memperkirakan perbedaan KL antara dua distribusi kontinu f dan g. Namun, saya tidak bisa menuliskan kepadatan untuk f atau g. Saya dapat mengambil sampel dari kedua f dan g melalui beberapa metode (misalnya, rantai markov monte carlo).
Perbedaan KL dari f ke g didefinisikan seperti ini
Ini adalah harapan dari berkenaan dengan f sehingga Anda dapat membayangkan beberapa perkiraan monte carlo
Di mana saya mengindeks N sampel yang diambil dari f (yaitu untuk i = 1, ..., N)
Namun, karena saya tidak tahu f () dan g (), saya bahkan tidak bisa menggunakan estimasi monte carlo ini. Apa cara standar memperkirakan KL dalam situasi ini?
Suntingan: Saya TIDAK tahu kepadatan tidak normal untuk f () atau g ()
kullback-leibler
frelk
sumber
sumber
Jawaban:
Saya berasumsi Anda dapat mengevaluasi dan hingga konstan normalisasi. Nyatakan dan .g f ( x ) = f u ( x ) / c f g ( x ) = g u ( x ) / c gf g f( x ) = fkamu( x ) / cf g( x ) = gkamu( x ) / cg
Pengukur yang konsisten yang dapat digunakan adalah mana adalah penaksir pengambilan sampel penting untuk rasio . Di sini Anda menggunakan dan masing-masing sebagai densitas instrumental untuk dan , dan untuk menargetkan rasio log dari kepadatan yang tidak dinormalisasi. r = 1 / n
Jadi, biarkan , , dan . Pembilang (1) konvergen ke . Penyebut konvergen ke . Rasio ini konsisten dengan teorema pemetaan kontinu. Log rasio konsisten dengan pemetaan berkelanjutan lagi. { y i } ∼ π g { z i } ∼ π r c f c g{ xsaya} ∼ πf { ysaya} ∼ πg { zsaya} ∼ πr cf cg
Mengenai bagian lain dari estimator, berdasarkan hukum angka besar.
Motivasi saya adalah sebagai berikut:
Untuk ide-ide lebih lanjut tentang cara mensimulasikan rasio likelhood, saya menemukan sebuah makalah yang memiliki beberapa: https://projecteuclid.org/download/pdf_1/euclid.aos/1031594732
sumber
Di sini saya berasumsi bahwa Anda hanya dapat mencicipi dari model; fungsi kepadatan yang tidak normal tidak tersedia.
Anda menulis itu
di mana saya telah menetapkan rasio probabilitas menjadi . Alex Smola menulis, meskipun dalam konteks yang berbeda Anda dapat memperkirakan rasio ini "dengan mudah" hanya dengan melatih classifier. Mari kita asumsikan Anda telah memperoleh classifier , yang dapat memberi tahu Anda probabilitas bahwa observasi telah dihasilkan oleh . Perhatikan bahwa . Kemudian:r p ( f| x) x f p ( g| x)=1-p(f| x)
di mana langkah pertama adalah karena Bayes dan yang terakhir mengikuti dari asumsi bahwa .p ( g) = p ( f)
Mendapatkan penggolong seperti itu bisa sangat mudah karena dua alasan.
Pertama, Anda dapat melakukan pembaruan stokastik. Itu berarti bahwa jika Anda menggunakan pengoptimal berbasis gradien, seperti tipikal untuk regresi logistik atau jaringan saraf, Anda bisa menggambar sampel dari masing-masing dan dan membuat pembaruan.f g
Kedua, karena Anda memiliki data yang hampir tidak terbatas - Anda dapat mengambil sampel dan sampai mati - Anda tidak perlu khawatir tentang overfitting atau sejenisnya.f g
sumber
Selain metode klasifikasi probabilistik yang disebutkan oleh @bayerj, Anda juga dapat menggunakan batas bawah dari perbedaan KL yang diturunkan dalam [1-2]:
Untuk memperkirakan divergensi KL antara dan , kami memaksimalkan wrt batas bawah ke fungsi .f g T(x)
Referensi:
[1] Nguyen, X., Wainwright, MJ dan Jordan, MI, 2010. Memperkirakan fungsi divergensi dan rasio kemungkinan dengan minimalisasi risiko cembung. Transaksi IEEE tentang Teori Informasi, 56 (11), hlm.5847-5861.
[2] Nowozin, S., Cseke, B. dan Tomioka, R., 2016. f-gan: Melatih pengambil sampel saraf generatif menggunakan minimalisasi divergence variasional. Dalam Kemajuan dalam sistem pemrosesan informasi saraf (hal. 271-279).
sumber