Lensa ML

Cara Kerja Entropy dan Cross-Entropy

Langkah 1 dari 6: Kejutan

Kejadian yang jarang membawa lebih banyak informasi

ProbabilitasKejutanKejutan1.00
Langka (0.01)Pasti (1.0)

P(kejadian)

0.50

Kejutan

1.00 bit

Kejadian yang mungkin terjadi membawa paling banyak 1 bit. Sebagian besar sudah kamu duga.

Geser slider dari Langka (0.01) ke Pasti (1.0). Kejutan, juga disebut self-information, adalah I(x) = −log₂ P(x), diukur dalam bit. Log membuat informasi bisa dijumlahkan: dua kejadian independen punya probabilitas P(a)·P(b), dan karena log mengubah hasil kali menjadi jumlah, kejutan keduanya juga dijumlahkan. Setiap kali probabilitas berkurang separuh, tepat satu bit bertambah, jadi P = 0.5 memberi 1 bit dan P = 0.25 memberi 2. Memakai log natural menghasilkan satuan bernama nat, dan 1 nat kira-kira 1,44 bit.

Langkah 2 dari 6: Entropy

Rata-rata kejutan dari suatu distribusi

P(X)Entropy0.501.00
P(X) = 0P(X) = 1

H(X) = −Σ P(X)·log₂(P(X))

= −[0.50×log₂(0.50) + 0.50×log₂(0.50)]
= −[-0.500 + -0.500] = 1.000 bit

P(X)

0.50

1 − P(X)

0.50

Entropy H(X)

1.000 bit

Entropy maksimum. Dengan kedua hasil sama mungkinnya, ketidakpastian memuncak di tepat 1 bit.

Geser P(X) dari 0,01 ke 0,99. Kurvanya adalah fungsi binary entropy H(p) = −p log₂ p − (1 − p) log₂(1 − p). Kurva ini simetris terhadap 0,5 karena menukar label kedua hasil tidak mengubah apa pun. Entropy juga merupakan batas kompresi. Source coding theorem dari Shannon menyatakan tidak ada kode lossless yang bisa memakai kurang dari H(X) bit per simbol secara rata-rata. Koin dengan p = 0.9 punya entropy sekitar 0,47 bit, jadi catatan panjang lemparannya bisa dikompresi sampai kira-kira separuh panjang aslinya.

Langkah 3 dari 6: Distribusi dan Entropy

Bentuk distribusi menentukan ketidakpastian

A25%B25%C25%D25%Entropy2.000 / 2 bit
A: 25
B: 25
C: 25
D: 25

Entropy H

2.000 bit

H maksimum

2.000 bit

Distribusi hampir seragam: entropy mendekati maksimum 2 bit untuk 4 hasil.

Geser keempat slider untuk A, B, C, dan D. Nilainya adalah bobot, dinormalisasi sehingga batang selalu berjumlah 100%. Dengan n hasil, entropy berkisar dari 0, saat satu hasil mengambil semua probabilitas, sampai log₂ n saat semuanya sama: 2 bit di sini, karena 4 = 2². Besaran 2^H bisa dibaca sebagai jumlah efektif hasil yang sama mungkinnya. Model bahasa melaporkan ide yang sama, dihitung dari cross-entropy, sebagai perplexity. Perplexity 20 berarti model sama tidak yakinnya dengan pilihan seragam di antara 20 token.

Langkah 4 dari 6: Cross-Entropy

Mengukur ketidakcocokan antardistribusi

Kucing70%40%Anjing20%30%Burung10%30%Asli (p)Prediksi (q)
Atur distribusi prediksi (q):
Kucing q
Anjing q
Burung q

H(p)

1.157 bit

H(p,q)

1.446 bit

Selisih KL

0.290 bit

Cukup cocok. Selisih KL kecil: q butuh sepersekian bit lebih banyak per sampel daripada p.

Geser slider Kucing q, Anjing q, dan Burung q sementara distribusi sebenarnya p tetap 70%, 20%, dan 10%. Cross-entropy adalah H(p, q) = −Σ p(x) log₂ q(x), dan bisa dipecah menjadi H(p, q) = H(p) + KL(p‖q). Dengan q awal 40/30/30, H(p) adalah 1,157 bit, H(p, q) adalah 1,446 bit, dan selisih KL-nya 0,290 bit. Cross-entropy tidak simetris. Menukar p dan q memberi angka yang berbeda, dan hanya p, distribusi sebenarnya, yang berada di luar log.

Langkah 5 dari 6: Cross-Entropy sebagai Loss

Kaitannya dengan ML: kenapa ini menjadi loss function

Prediksi ŷ (tingkat keyakinan)Loss1234−log(ŷ)gradient
Salah (0.01)Benar (1.0)

ŷ

0.50

Loss

0.693 nat

∂L/∂ŷ

-2.0

Model condong salah. Loss di atas 0,69 nat dan gradient mendorong lebih kuat untuk menaikkan ŷ.

Geser ŷ dari Salah (0.01) ke Benar (0.99). Label sebenarnya tetap di kelas positif, jadi cross-entropy menyusut menjadi L = −log ŷ. Log di sini log natural, jadi loss-nya dalam nat: 0,693 pada ŷ = 0.5 dan 4,6 pada ŷ = 0.01. Kartu gradient menunjukkan ∂L/∂ŷ = −1/ŷ. Pada model sungguhan, ŷ berasal dari sigmoid atau softmax, dan chain rule melaluinya memberi gradient pada logit sebesar ŷ − y saja. Sebagian besar framework menerima logit mentah dan menggabungkan kedua langkah itu demi stabilitas numerik.

Langkah 6 dari 6: Kenapa Cross-Entropy Diminimalkan

Lihat training konvergen ke distribusi sebenarnya

EpochH(p,q)1.31.41.51.61.7entropy H(p)p vs qKucingAnjingBurungpq

Epoch

0

H(p,q)

1.589 bit

KL(p‖q)

0.236 bit

Sebelum training, model memprediksi q yang seragam, jadi cross-entropy mulai dari nilai tinggi. Tekan Putar atau jalankan per epoch.

Tekan Putar, atau pakai ← Langkah dan Langkah → untuk bergerak melewati 60 epoch. Distribusi sebenarnya adalah 60/25/15, jadi garis putus-putus H(p) berada di 1,353 bit, dan tebakan awal yang hampir seragam butuh 1,589 bit. Kurvanya adalah simulasi halus q yang bergerak ke p, bukan training sungguhan. Karena H(p) tidak bergantung pada model, meminimalkan cross-entropy sama dengan meminimalkan KL(p‖q). Kartu KL(p‖q) menunjukkan selisih itu secara langsung: 0,236 bit di awal, 0,033 pada epoch 15, dan mendekati nol di akhir.

Apa itu entropy dan cross-entropy?

Entropy adalah rata-rata kejutan dalam suatu hasil acak, diukur dalam bit. Konsep ini berasal dari teori informasi, matematika untuk mengukur dan mengirimkan informasi yang didirikan Claude Shannon pada 1948. Cross-entropy mengukur berapa bit yang dibutuhkan, secara rata-rata, ketika data berasal dari satu distribusi tetapi kamu menyandikannya dengan kode yang dibuat untuk distribusi lain.

Dalam machine learning, cross-entropy adalah loss standar untuk klasifikasi, dari logistic regression sampai next-token loss pada large language model. Besaran terkait muncul di banyak tempat: KL divergence pada VAE dan knowledge distillation, information gain pada decision tree, perplexity untuk mengevaluasi model bahasa, dan mutual information untuk feature selection.

Ide utama

  • Kejadian dengan probabilitas p membawa −log₂ p bit kejutan.
  • Entropy adalah expected value kejutan dari suatu distribusi.
  • Entropy paling tinggi pada distribusi seragam, yaitu log₂ n bit untuk n hasil.
  • Cross-entropy H(p, q) sama dengan H(p) + KL(p‖q), jadi nilainya tidak pernah di bawah H(p).
  • Meminimalkan cross-entropy pada data berlabel sama dengan memaksimalkan log-likelihood label.
  • Bit memakai log basis 2, dan nat memakai log natural.

Pertanyaan umum

Apa bedanya binary cross-entropy dan categorical cross-entropy?

Binary cross-entropy dipakai untuk dua kelas atau untuk label ya/tidak yang independen: L = −[y log ŷ + (1 − y) log(1 − ŷ)], dengan ŷ dari sigmoid. Categorical cross-entropy dipakai untuk satu label dari K kelas: L = −log q(kelas benar), dengan q dari softmax. Binary cross-entropy adalah bentuk kategorikal dengan K = 2.

Kenapa klasifikasi memakai cross-entropy, bukan mean squared error?

Dengan output sigmoid, gradient MSE memuat kemiringan sigmoid, yang mendekati nol saat output jenuh. Prediksi salah yang terlalu yakin pun belajar sangat lambat. Cross-entropy menghapus faktor itu, sehingga gradient tetap besar justru saat model sangat keliru. Cross-entropy juga merupakan negative log-likelihood dari model Bernoulli atau kategorikal, yang memberinya makna probabilistik.

Apa itu information gain pada decision tree?

Information gain adalah penurunan entropy label setelah split: entropy node induk dikurangi rata-rata tertimbang entropy node anak. ID3 memilih split dengan gain terbesar, dan C4.5 memakai versi ternormalisasi yang disebut gain ratio. Split yang mengirim setiap kelas ke node anaknya sendiri yang murni menghilangkan seluruh entropy.

Apa itu mutual information?

Mutual information I(X; Y) = H(X) − H(X|Y) adalah berkurangnya ketidakpastian tentang X setelah kamu mengetahui Y. Nilainya nol tepat ketika X dan Y independen, dan berbeda dengan korelasi, besaran ini juga mendeteksi ketergantungan non-linear. Besaran ini dipakai untuk feature selection dan dalam fungsi tujuan self-supervised learning.

Penjelasan terkait

Referensi

  1. Shannon (1948), "A Mathematical Theory of Communication", Bell System Technical Journal
  2. MacKay (2003), "Information Theory, Inference, and Learning Algorithms" (free online edition)
  3. Goodfellow, Bengio & Courville (2016), "Deep Learning", chapter 3: Probability and Information Theory

Terakhir diperbarui