Saya tahu ada banyak penjelasan tentang apa itu cross-entropy, tapi saya masih bingung.
Apakah ini hanya metode untuk menggambarkan fungsi kerugian? Bisakah kita menggunakan algoritma penurunan gradien untuk mencari nilai minimum menggunakan fungsi kerugian?
machine-learning
cross-entropy
teateist
sumber
sumber
Jawaban:
Entropi silang biasanya digunakan untuk mengukur perbedaan antara dua distribusi probabilitas. Biasanya distribusi "benar" (yang coba dicocokkan oleh algoritme pembelajaran mesin Anda) dinyatakan dalam istilah distribusi one-hot.
Misalnya, untuk contoh pelatihan tertentu, label sebenarnya adalah B (dari kemungkinan label A, B, dan C). Distribusi one-hot untuk contoh pelatihan ini adalah:
Anda dapat menafsirkan distribusi benar di atas sebagai berarti bahwa instance pelatihan memiliki probabilitas 0% untuk menjadi kelas A, 100% kemungkinan menjadi kelas B, dan 0% kemungkinan menjadi kelas C.
Sekarang, misalkan algoritme pembelajaran mesin Anda memprediksi distribusi probabilitas berikut:
Seberapa dekat distribusi prediksi dengan distribusi sebenarnya? Itulah yang ditentukan oleh kerugian cross-entropy. Gunakan rumus ini:
Di mana
p(x)
distribusi probabilitas sebenarnya, danq(x)
distribusi probabilitas yang diprediksi. Jumlahnya melebihi tiga kelas A, B, dan C. Dalam hal ini kerugiannya adalah 0,479 :Jadi, seberapa "salah" atau "jauh" prediksi Anda dari distribusi sebenarnya.
Entropi silang adalah salah satu dari banyak kemungkinan fungsi kerugian (yang populer lainnya adalah kerugian engsel SVM). Fungsi kerugian ini biasanya ditulis sebagai J (theta) dan dapat digunakan dalam penurunan gradien, yang merupakan algoritme berulang untuk memindahkan parameter (atau koefisien) ke nilai optimal. Pada persamaan di bawah ini, Anda akan mengganti
J(theta)
denganH(p, q)
. Tetapi perhatikan bahwa Anda perlu menghitung turunan dariH(p, q)
sehubungan dengan parameter terlebih dahulu.Jadi untuk menjawab pertanyaan asli Anda secara langsung:
Benar, cross-entropy menjelaskan kerugian antara dua distribusi probabilitas. Ini adalah salah satu dari banyak kemungkinan fungsi kerugian.
Ya, fungsi kerugian cross-entropy dapat digunakan sebagai bagian dari penurunan gradien.
Bacaan lebih lanjut: salah satu jawaban saya yang lain terkait dengan TensorFlow.
sumber
cosine (dis)similarity
untuk menggambarkan kesalahan melalui sudut dan kemudian mencoba meminimalkan sudut tersebut.p(x)
akan menjadi daftar probabilitas kebenaran dasar untuk setiap kelas, yang akan menjadi[0.0, 1.0, 0.0
. Demikian juga,q(x)
adalah daftar probabilitas yang diprediksi untuk masing-masing kelas[0.228, 0.619, 0.153]
,.H(p, q)
kemudian- (0 * log(2.28) + 1.0 * log(0.619) + 0 * log(0.153))
, menjadi 0,479. Perhatikan bahwa itu umum untuk menggunakannp.log()
fungsi Python , yang sebenarnya adalah log natural; tidak masalah.Singkatnya, cross-entropy (CE) adalah ukuran seberapa jauh nilai prediksi Anda dari label sebenarnya.
Persilangan di sini mengacu pada penghitungan entropi antara dua atau lebih fitur / label sebenarnya (seperti 0, 1).
Dan istilah entropi itu sendiri mengacu pada keacakan, begitu besar nilainya berarti prediksi Anda jauh dari label sebenarnya.
Jadi bobot diubah untuk mengurangi CE dan akhirnya menyebabkan berkurangnya perbedaan antara prediksi dan label sebenarnya dan dengan demikian akurasi lebih baik.
sumber
Menambahkan ke posting di atas, bentuk paling sederhana dari kehilangan lintas-entropi dikenal sebagai biner-lintas-entropi (digunakan sebagai fungsi kerugian untuk klasifikasi biner, misalnya, dengan regresi logistik), sedangkan versi umum adalah kategorikal-lintas-entropi (digunakan sebagai fungsi kerugian untuk masalah klasifikasi kelas jamak, misalnya, dengan jaringan saraf).
Idenya tetap sama:
ketika probabilitas kelas model-computed (softmax) menjadi mendekati 1 untuk label target untuk contoh pelatihan (diwakili dengan one-hot-encoding, misalnya,), kerugian CCE yang sesuai berkurang menjadi nol
jika tidak, itu meningkat karena probabilitas yang diprediksi sesuai dengan kelas target menjadi lebih kecil.
Gambar berikut menunjukkan konsepnya (perhatikan dari gambar bahwa BCE menjadi rendah ketika y dan p keduanya tinggi atau keduanya rendah secara bersamaan, yaitu ada kesepakatan):
Cross-entropy berkaitan erat dengan relative entropy atau KL-divergence yang menghitung jarak antara dua distribusi probabilitas. Misalnya, di antara dua pmf diskrit, hubungan di antara keduanya ditunjukkan pada gambar berikut:
sumber