Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Probabilidad y estadística para IA, Unidad 7 — Probabilidad en modelos de machine learning, 7.2 — Funciones de pérdida probabilísticas ·

Entropía cruzada

Entropía cruzada: una función de pérdida probabilística crucial para Machine Learning

Introducción

La entropía cruzada es una función de pérdida que se utiliza ampliamente en modelos de aprendizaje automático, especialmente en problemas de clasificación. Es particularmente útil cuando los datos tienen etiquetas categóricas o binarias. La entropía cruzada mide la divergencia entre las distribuciones de probabilidad predichas por el modelo y las verdaderas distribuciones de probabilidad conocidas. En este artículo, exploraremos cómo funciona la entropía cruzada, cuándo es útil y cómo implementarla correctamente en modelos de clasificación.

Explicación principal con ejemplos

¿Qué es la entropía cruzada?

La entropía cruzada se define matemáticamente como:

\[ H(p, q) = - \sum_{i} p_i \log q_i \]

donde \(p\) y \(q\) son dos distribuciones de probabilidad. En el contexto del machine learning, \(p\) representa la distribución verdadera (etiquetas reales), y \(q\) es la distribución predicha por el modelo.

Ejemplo práctico

Supongamos que estamos desarrollando un modelo para clasificar imágenes de gatos y perros. Tenemos dos clases: "gato" (clase 0) e "perro" (clase 1). Podemos representar las distribuciones de probabilidad como:

\[ p = \begin{bmatrix} 0.6 \\ 0.4 \end{bmatrix}, \quad q = \begin{bmatrix} 0.58 \\ 0.42 \end{bmatrix} \]

La entropía cruzada entre \(p\) y \(q\) sería:

\[ H(p, q) = - (0.6 \log 0.58 + 0.4 \log 0.42) \]

Implementación en código

Aquí te presentamos un ejemplo de cómo implementar la entropía cruzada en Python utilizando las bibliotecas NumPy y Scikit-learn.

import numpy as np
from sklearn.metrics import log_loss

# Distribuciones verdaderas (etiquetas reales)
p = np.array([0.6, 0.4])

# Distribuciones predichas por el modelo
q = np.array([0.58, 0.42])

# Calcular entropía cruzada manualmente
entropy_cross = -np.sum(p * np.log(q))

print(f"Entropía cruzada (manual): {entropy_cross:.4f}")

# Usar la función de Scikit-learn para verificar el resultado
log_loss_value = log_loss(y_true=p, y_pred=q)
print(f"Entropía cruzada (Scikit-learn): {log_loss_value:.4f}")

Errores típicos / trampas

  1. Distribuciones no normalizadas: Asegúrate de que las distribuciones \(p\) e \(q\) estén normalizadas, es decir, la suma de todas sus probabilidades sea igual a 1.
  1. Distribuciones de probabilidad incoherentes: Las distribuciones predichas deben ser válidas, es decir, todas las probabilidad deben estar en el rango [0, 1].
  1. Comparación con valores incorrectos: Verifica siempre que las etiquetas reales y las predicciones sean comparables antes de calcular la entropía cruzada.

Checklist accionable

Pasos a seguir para implementar correctamente la entropía cruzada:

  1. Verificar la normalización:
  • Asegúrate de que todas las probabilidades sumen 1.
  1. Validar las distribuciones:
  • Verifica que todas las probabilidad estén en el rango [0, 1].
  1. Comparar con datos reales:
  • Compara siempre la predicción del modelo con los datos reales antes de calcular la entropía cruzada.
  1. Usar bibliotecas verificadas:
  • Verifica resultados utilizando bibliotecas como Scikit-learn para comparación.
  1. Entender el significado:
  • Entiende que menor es la entropía cruzada, mejor es el ajuste del modelo a las distribuciones verdaderas.

Cierre con "Siguientes pasos"

Siguientes pasos:

  1. Aprender más sobre funciones de pérdida: Explora otras funciones de pérdida utilizadas en machine learning y su relación con la entropía cruzada.
  2. Implementar en proyectos reales: Aplica la entropía cruzada a tus propios proyectos de clasificación para mejorar el rendimiento del modelo.
  3. Estudiar modelos con entropía cruzada: Investigar cómo otras funciones como el log-loss y la cross-entropy se relacionan con la entropía cruzada en diferentes algoritmos.

La entropía cruzada es una herramienta fundamental en machine learning que nos permite medir cuánto difiere nuestra predicción del modelo de las verdaderas distribuciones de probabilidad. Su comprensión y correcta implementación son cruciales para el éxito de muchos modelos de clasificación.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).