80 Views
Categorical Cross-Entropy (CCE) dipakai untuk kasus klasifikasi multi-class seperti . Tapi ada sedikit penyesuaian tergantung framework.
Konsep dasarnya
Contents
Categorical Cross-Entropy menghitung perbedaan antara:
- label asli (ground truth)
- prediksi probabilitas (softmax output)
Rumusnya:
$$
L = -\sum y_i \log(p_i)
$$
Di mana:
- \( (y_i) \) = label (one-hot)
- \( (p_i) \) = probabilitas dari softmax
📊 Contoh
Misal:
Label asli (benign):
[0, 1, 0]
Prediksi model:
[0.1, 0.7, 0.2]
Loss:
= -log(0.7)
👉 Semakin dekat ke 1 → loss makin kecil
⚠️ Yang sering bikin bingung (PENTING)
🔥 Di PyTorch
👉 Kamu TIDAK pakai CategoricalCrossEntropy secara eksplisit
Tapi pakai:
nn.CrossEntropyLoss()
Kenapa?
Karena ini sudah:
- ✔ Softmax
- ✔ Log
- ✔ Cross-entropy
Semua jadi satu (lebih stabil numerically)
❌ Jadi jangan begini:
# SALAH
output = softmax(model(x))
loss = CrossEntropyLoss(output, target)
✅ Yang benar:
# BENAR
logits = model(x) # TANPA softmax
loss = nn.CrossEntropyLoss()(logits, target)
📌 Format label
Ini juga penting:
PyTorch:
target = 1 # bukan one-hot
Bukan:
[0, 1, 0] ❌