4.4.1
Divergencia de Kullback–Leibler
- La divergencia KL mide cuánto difiere una distribución real (P) de una referencia (Q) en términos de entropía relativa.
- Calcula KL en ejemplos discretos, incluyendo el suavizado necesario ante probabilidades nulas.
- Aplícala a evaluación de modelos y detección de drift, teniendo en cuenta su asimetría e inestabilidad.
1. Definición #
Para distribuciones discretas (P) y (Q):
$$ \mathrm{KL}(P \parallel Q) = \sum_i p_i \log \frac{p_i}{q_i} $$- ( \mathrm{KL}(P \parallel Q) = 0 ) si (P = Q).
- Es asimétrica: ( \mathrm{KL}(P \parallel Q) \neq \mathrm{KL}(Q \parallel P) ).
- Sensible a diferencias de soporte: si ( q_i = 0 ) y ( p_i > 0 ), diverge a infinito.
2. Cálculo en Python #
| |
Agregar un epsilon pequeño evita divisiones por cero cuando hay probabilidades nulas. Ajusta el suavizado según el dominio.
3. Ejemplo con histogramas #
| |
Intercambiar el orden cambia el resultado; interpreta KL con el punto de vista “referencia vs. objetivo” correcto.
4. Conexión con la divergencia Jensen–Shannon #
Para obtener una medida simétrica y acotada, promedia ambas direcciones de KL:
| |
La divergencia Jensen–Shannon mitiga los valores infinitos cuando los soportes difieren y es más práctica en contextos reales.
5. Usos y precauciones #
- Evaluación de modelos generativos: monitoriza cuánto se desvía la distribución generada de la real.
- Monitorización/drift: sigue cómo los datos en producción se alejan de los de entrenamiento.
- Modelos de lenguaje: compara distribuciones de n-gramas o probabilidades token.
Utiliza suavizado (p. ej., priors de Dirichlet) cuando los datos son escasos. Un KL alto no implica necesariamente fracaso; combínalo con otras métricas.
Resumen #
La divergencia KL captura la diferencia relativa entre distribuciones. Su asimetría y sensibilidad a probabilidades nulas exigen un uso cuidadoso, pero con suavizado y métricas complementarias proporciona señales valiosas sobre desviaciones o drift.