Saya akan menggunakan KL divergence dalam kode python saya dan saya mendapatkan tutorial ini .
Pada tutorial itu, untuk mengimplementasikan KL divergence cukup sederhana.
kl = (model * np.log(model/actual)).sum()
Seperti yang saya pahami, distribusi probabilitas model
dan actual
harus <= 1.
Pertanyaan saya adalah, apa nilai maksimum k / terikat maksimum? Saya perlu tahu nilai maksimum yang mungkin dari jarak kl untuk batas maksimum dalam kode saya.
machine-learning
distance
kullback-leibler
pengguna46543
sumber
sumber
Jawaban:
Atau bahkan dengan dukungan yang sama, ketika satu distribusi memiliki ekor yang jauh lebih gemuk dari yang lainnya. Ambil K L ( P | | Q ) = ∫ p ( x ) log ( p ( x )q ( x ) )d x
sumber
Untuk distribusi yang tidak memiliki dukungan yang sama, perbedaan KL tidak dibatasi. Lihatlah definisi:
K L ( P | | Q ) = ∫ ∞ - ∞ p ( x ) ln ( p ( x )q ( x ) )dx
jika P dan Q tidak memiliki dukungan yang sama, ada beberapa titik x ′ di mana p ( x ′ ) ≠ 0 dan q ( x ′ ) = 0 , membuat KL menjadi tak terhingga. Ini juga berlaku untuk distribusi diskrit, yang merupakan kasus Anda.x′ p(x′)≠0 q(x′)=0
Sunting: Mungkin pilihan yang lebih baik untuk mengukur divergensi antara distribusi probabilitas adalah apa yang disebut jarak Wasserstein yang merupakan metrik dan memiliki sifat yang lebih baik daripada divergensi KL. Ini telah menjadi sangat populer karena penerapannya dalam pembelajaran mendalam (lihat jaringan WGAN)
sumber
Untuk menambah jawaban yang sangat baik oleh Carlos dan Xi'an , juga menarik untuk dicatat bahwa kondisi yang cukup untuk divergensi KL menjadi terbatas adalah untuk kedua variabel acak memiliki dukungan kompak yang sama, dan untuk kepadatan referensi yang akan dibatasi. . Hasil ini juga menetapkan batas implisit untuk maksimum divergensi KL (lihat teorema dan bukti di bawah).
Teorema: Jika kepadatan p dan q memiliki dukungan kompak X yang sama dan kepadatan p terikat pada dukungan itu (yaitu, memiliki batas atas terbatas) maka K L ( P | | Q ) < ∞ .p q X p KL(P||Q)<∞
Bukti: Karena q memiliki dukungan kompak X ini berarti ada beberapa nilai positif maksimum:q X
q _ ≡ inf x ∈ X q(x)>0.
Demikian pula, karena p memiliki dukungan kompak X ini berarti ada beberapa nilai supremum positif:p X
ˉ p ≡supx∈ X p(x)>0.
Selain itu, karena ini adalah kepadatan pada dukungan yang sama, dan yang terakhir dibatasi, kami memiliki 0 < q _ ⩽ ˉ p < ∞ . Ini berarti:0<q–⩽p¯<∞
sup x ∈ X ln ( p ( x )q ( x ) )⩽ln( ˉ p )-ln(q_).
Sekarang, membiarkan L _ ≡ ln ( ˉ p ) - ln ( q _ ) menjadi batas atas yang terakhir, kita jelas memiliki 0 ⩽ L _ < ∞ sehingga:L––≡ln(p¯)−ln(q–) 0⩽L––<∞
K L ( P | | Q )= ∫ X ln ( p ( x )q ( x ) )p(x)dx⩽ sup x ∈ X ln ( p ( x )q ( x ) )∫ X p(x)dx⩽ ( ln ( ˉ p ) - ln ( q _ ) ) ∫ X p ( x ) d x= L _ < ∞ .
Ini menetapkan batas atas yang diperlukan, yang membuktikan teorema. ◼■
sumber