Apa perbedaan Cross-entropy dan KL divergence?

25

Kedua Cross-entropy dan KL divergence adalah alat untuk mengukur jarak antara dua distribusi probabilitas. Apa bedanya?

H(P,Q)=xP(x)logQ(x)
KL(P|Q)=xP(x)logP(x)Q(x)
Selain itu, minimalisasi KL setara dengan minimalisasi Cross-Entropy.

Saya ingin mengenal mereka secara naluriah.

Terima kasih banyak sebelumnya.

Jourd
sumber

Jawaban:

24

Anda akan memerlukan beberapa kondisi untuk mengklaim kesetaraan antara meminimalkan entropi silang dan meminimalkan divergensi KL. Saya akan meletakkan pertanyaan Anda di bawah konteks masalah klasifikasi menggunakan cross entropy sebagai fungsi kerugian.

Mari kita ingat bahwa entropi digunakan untuk mengukur ketidakpastian sistem, yang didefinisikan sebagai

S(v)=ip(vi)logp(vi),
untuk p(vi) sebagai probabilitas dari berbagai negara vidari sistem. Dari sudut pandang teori informasi,S(v) adalah jumlah informasi yang diperlukan untuk menghilangkan ketidakpastian.

Misalnya, acara A I will die eventuallyhampir pasti (mungkin kita dapat memecahkan masalah penuaan kata almost), oleh karena itu memiliki entropi rendah yang hanya memerlukan informasi the aging problem cannot be solveduntuk membuatnya yakin. Namun, peristiwa B The president will die in 50 yearsjauh lebih tidak pasti daripada A, sehingga perlu lebih banyak informasi untuk menghilangkan ketidakpastian.

Sekarang lihat definisi KL divergensi antara peristiwa A dan B

DKL(AB)=ipA(vi)logpA(vi)pA(vi)logpB(vi),
di mana istilah pertama dari sisi kanan adalah entropi peristiwa A, istilah kedua dapat diartikan sebagai harapan dari peristiwa B dalam hal peristiwa A. Dan DKL menggambarkan betapa berbedanya B dari A dari perspektif A.

Untuk menghubungkan cross entropy dengan entropy dan KL divergence, kami meresmikan cross entropy dalam hal peristiwa A dan B sebagai

H(A,B)=ipA(vi)logpB(vi).
Dari definisi, kita dapat dengan mudah melihat
H(A,B)=DKL(AB)+SA.
Jika SA adalah konstan, kemudian diminimalkan H(A,B) setara dengan meminimalkan DKL(AB).

Pertanyaan selanjutnya mengikuti secara alami bagaimana entropi dapat berupa konstanta. Dalam tugas pembelajaran mesin, kita mulai dengan dataset (dilambangkan sebagaiP(D)) yang merupakan masalah yang harus dipecahkan, dan tujuan pembelajaran adalah untuk membuat model estimasi distribusi (dilambangkan sebagai P(model)) sedekat mungkin dengan distribusi masalah yang sebenarnya (dilambangkan sebagai P(truth)). P(truth) tidak diketahui dan diwakili oleh P(D). Karena itu di dunia yang ideal, kami harapkan

P(model)P(D)P(truth)
dan meminimalkan DKL(P(D)P(model)). Dan untungnya, dalam latihanD diberikan, yang berarti entropinya S(D) ditetapkan sebagai konstanta.

ganda
sumber
Terima kasih atas jawaban Anda. Itu memperdalam pemahaman saya. Jadi ketika kita memiliki dataset, lebih efektif untuk meminimalkan cross-entropy daripada KL, kan? Namun, saya tidak dapat memahami penggunaannya yang tepat. Dengan kata lain, kapan saya harus meminimalkan KL atau cross entropy?
Jourd
1
Setelah membaca jawaban Anda, saya pikir tidak ada gunanya untuk meminimalkan KL karena kami selalu memiliki dataset, P (D).
Jourd
Idealnya, seseorang akan memilih KL divergence untuk mengukur jarak antara dua distribusi. Dalam konteks klasifikasi, kehilangan lintas-entropi biasanya muncul dari kemungkinan log negatif, misalnya, ketika Anda memilih distribusi Bernoulli untuk memodelkan data Anda.
doubllle
Anda mungkin ingin melihat pos hebat ini . Simetri bukan masalah dalam klasifikasi karena tujuan dari model pembelajaran mesin adalah untuk membuat distribusi yang diprediksi sedekat mungkin dengan P (D) tetap, meskipun regularisasi biasanya ditambahkan untuk menghindari overfitting.
doubllle
Saya mengerti asimetri KL. Namun, saya belum mengerti bagaimana menggunakan minimalisasi KL atau Cross-Entropy secara berbeda. Ini berarti bahwa kapan saya harus meminimalkan KL dan kapan saya harus meminimalkan Entropi Silang. kupikirSAselalu konstan, bukan?
Jourd
7

Saya kira itu karena model biasanya bekerja dengan sampel yang dikemas dalam mini-batch. Untuk KL divergence dan Cross-Entropy, relasinya dapat ditulis sebagai

H(q,p)=DKL(p,q)+H(p)=ipilog(qi)
Dari persamaan tersebut, kita dapat melihat bahwa divergensi KL dapat berangkat ke Entropi Silang p dan q (bagian pertama), dan entropi global kebenaran tanah p (bagian kedua).

Di banyak proyek pembelajaran mesin, minibatch terlibat untuk mempercepat pelatihan, di mana p dari minibatch mungkin berbeda dari global p. Dalam kasus seperti itu, Cross-Entropy relatif lebih kuat dalam praktiknya sementara divergensi KL membutuhkan H (p) yang lebih stabil untuk menyelesaikan pekerjaannya.

zewen liu
sumber
1
Jawaban inilah yang saya cari. Dalam pengalaman saya sendiri saat ini, yang melibatkan mempelajari probabilitas target, BCE jauh lebih kuat daripada KL. Pada dasarnya, KL tidak dapat digunakan. KL dan BCE bukan fungsi kerugian "setara".
Nicholas Leonard
Ketika Anda mengatakan "bagian pertama" dan "bagian kedua", yang mana yang mana?
Josh
1

Inilah yang saya pikirkan:

(1)DKL(p(yi|xi)||q(yi|xi,θ))=H(p(yi|xi,θ),q(yi|xi,θ))H(p(yi|xi,θ))

dimana p dan qadalah dua distribusi probabilitas. Dalam pembelajaran mesin, kita biasanya tahup, yang merupakan distribusi target. Misalnya, dalam masalah klasifikasi biner,Y={0,1}, jadi jika yi=1, p(yi=1|x)=1 dan p(yi=0|x)=0, dan sebaliknya. Diberikan masing-masingyii=1,2,,Ndimana N adalah jumlah total poin dalam dataset, kami biasanya ingin meminimalkan perbedaan KL DKL(p,q) antara distribusi target p(yi|x) dan perkiraan distribusi kami q(yi|x,θ), dirata-rata atas semua i. (Kami melakukannya dengan menyetel parameter model kamiθ. Jadi, untuk setiap contoh pelatihan, model ini memuntahkan distribusi di atas label kelas0 dan 1.) Untuk setiap contoh, karena target ditetapkan, distribusinya tidak pernah berubah. Jadi,H(p(yi|xi)) konstan untuk masing-masing i, terlepas dari apa parameter model kami saat ini θadalah. Jadi, minimizer dariDKL(p,q) sama dengan minimizer dari H(p,q).

Jika Anda punya situasi di mana p dan q keduanya variabel (katakanlah, di mana x1p dan x2q dua variabel laten) dan ingin mencocokkan kedua distribusi, maka Anda harus memilih antara meminimalkan DKL dan meminimalkan H(p,q). Ini karena meminimalkanDKL menyiratkan memaksimalkan H(p) sambil meminimalkan H(p,q) menyiratkan meminimalkan H(p). Untuk melihat yang terakhir, kita bisa menyelesaikan persamaan (1) untuk H(p,q):

(2)H(p,q)=DKL(p,q)+H(p)
Yang pertama akan menghasilkan distribusi yang luas untuk psedangkan yang terakhir akan menghasilkan yang terkonsentrasi dalam satu atau beberapa mode. Perhatikan bahwa itu adalah pilihan Anda sebagai praktisi ML apakah Anda ingin meminimalkanDKL(p,q) atau DKL(q,p). Diskusi kecil ini diberikan dalam konteks inferensi variasional (VI) di bawah ini.

Di VI, Anda harus memilih antara meminimalkan DKL(p,q) dan DKL(q,p), yang tidak sama karena divergensi KL tidak simetris. Jika kita sekali lagi mengobatip seperti diketahui, lalu meminimalkan DKL(p,q) akan menghasilkan distribusi q yang tajam dan fokus pada satu atau beberapa area sambil meminimalkan DKL(q,p) akan menghasilkan distribusi q yang luas dan mencakup berbagai domain q. Sekali lagi, yang terakhir adalah karena meminimalkanDKL(q,p) menyiratkan memaksimalkan entropi q.

Vivek Subramanian
sumber
Dalam persamaan (1) di sisi kiri Anda tidak punya θ di p(yi|xi), sedangkan di sisi kanan Anda miliki p(yi|xi,θ). Mengapa? Juga di baris ke-5 yang harus Anda gunakanxi dari pada x.
Rodvi
Juga, akan entropi H(p) biasanya konstan dalam kasus pengklasifikasi generatif q(y,x|θ), dalam kasus model regresi, dan dalam kasus model non-parametrik (tidak mengasumsikan kasus variabel laten)?
Rodvi