Entropía cruzada

Midiendo qué tan bien un modelo predice distribuciones

La entropía cruzada es una función de pérdida que mide la diferencia entre una distribución real y una distribución predicha por un modelo.

👉 Es una de las métricas más utilizadas en clasificación y modelos probabilísticos.


Definición corta

La entropía cruzada cuantifica qué tan bien las probabilidades predichas coinciden con la distribución real.


📐 Definición matemática

H(P,Q)=xP(x)logQ(x)H(P, Q) = -\sum_x P(x) \log Q(x)


👉 donde:

  • P(x)P(x)P(x): distribución real
  • Q(x)Q(x)Q(x): distribución predicha

🧠 Intuición

La entropía cruzada responde:

👉 “¿Cuánto me cuesta usar la predicción del modelo en lugar de la realidad?”


Distribución real ↓ Predicción del modelo ↓ Penalización

📊 Interpretación

  • valor bajo → predicción buena
  • valor alto → predicción mala

👉 menor es mejor.


📊 Ejemplo simple

Real: [1, 0, 0] Predicción: [0.9, 0.05, 0.05] → baja entropía cruzada

Predicción: [0.3, 0.3, 0.4] → alta entropía cruzada

🔄 Relación con logaritmos

log(Q(x))-\log(Q(x))


👉 penaliza fuertemente errores seguros.


📊 Ejemplo conceptual

Alta confianza incorrecta ↓ Gran penalización

🧠 Relación con entropía y divergencia KL

H(P,Q)=H(P)+DKL(PQ)H(P, Q) = H(P) + D_{KL}(P \parallel Q)


👉 conecta con teoría de la información.


🧠 Propiedad clave

Penaliza más cuando:

  • el modelo está seguro y se equivoca

📊 Interpretación

Confianza alta + error ↓ Gran pérdida

🧠 Uso en machine learning

La entropía cruzada se usa en:

  • clasificación (softmax)
  • redes neuronales
  • modelos probabilísticos
  • entrenamiento supervisado

📊 Ejemplo conceptual

Entrada ↓ Modelo ↓ Probabilidades ↓ Cross-entropy loss

🧠 Clasificación binaria

L=[ylog(p)+(1y)log(1p)]L = -[y\log(p) + (1-y)\log(1-p)]


👉 caso especial muy usado.


📊 Ejemplo conceptual

Etiqueta real ↓ Probabilidad predicha ↓ Error logarítmico

📊 Ejemplo en Python

import numpy as np
y_true = [1, 0, 0]
y_pred = [0.9, 0.05, 0.05]
loss = -np.sum(np.array(y_true) * np.log(y_pred))
print(loss)

Ejemplo en PyTorch

import torch
import torch.nn as nn
loss_fn = nn.CrossEntropyLoss()
# logits (no probabilidades)
pred = torch.tensor([[2.0, 0.5, 0.3]])
target = torch.tensor([0])
loss = loss_fn(pred, target)
print(loss)

🧠 Qué muestra este ejemplo

  • penalización de errores
  • sensibilidad a confianza
  • optimización del modelo

⚠️ Errores comunes

Usar probabilidades en lugar de logits en PyTorch

Puede dar resultados incorrectos.


Pensar que mide solo precisión

Mide calidad probabilística.


Ignorar clases desbalanceadas

Puede afectar el resultado.


📊 Ejemplo conceptual en ML

Predicción ↓ Comparación con realidad ↓ Entropía cruzada ↓ Optimización

🧠 Interpretación profunda

La entropía cruzada refleja un principio clave:

👉 Aprender significa minimizar la sorpresa entre lo que predices y lo que ocurre

Permite:

  • entrenar modelos eficientemente
  • ajustar probabilidades
  • mejorar predicciones

Conclusión

La entropía cruzada es una función de pérdida fundamental que mide la diferencia entre distribuciones reales y predichas.

👉 Es esencial para entrenar modelos de clasificación modernos.


Related Concepts