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:
Pr(Class A) Pr(Class B) Pr(Class C)
0.0 1.0 0.0
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:
Pr(Class A) Pr(Class B) Pr(Class C)
0.228 0.619 0.153
Seberapa dekat distribusi prediksi dengan distribusi sebenarnya? Itulah yang ditentukan oleh kerugian cross-entropy. Gunakan rumus ini:
Di mana p(x)
distribusi probabilitas sebenarnya, dan q(x)
distribusi probabilitas yang diprediksi. Jumlahnya melebihi tiga kelas A, B, dan C. Dalam hal ini kerugiannya adalah 0,479 :
H = - (0.0*ln(0.228) + 1.0*ln(0.619) + 0.0*ln(0.153)) = 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)
dengan H(p, q)
. Tetapi perhatikan bahwa Anda perlu menghitung turunan dari H(p, q)
sehubungan dengan parameter terlebih dahulu.
Jadi untuk menjawab pertanyaan asli Anda secara langsung:
Apakah ini hanya metode untuk menggambarkan fungsi kerugian?
Benar, cross-entropy menjelaskan kerugian antara dua distribusi probabilitas. Ini adalah salah satu dari banyak kemungkinan fungsi kerugian.
Kemudian kita dapat menggunakan, misalnya, algoritma penurunan gradien untuk mencari nilai minimum.
Ya, fungsi kerugian cross-entropy dapat digunakan sebagai bagian dari penurunan gradien.
Bacaan lebih lanjut: salah satu jawaban saya yang lain terkait dengan TensorFlow.