Divergencia KL (Kullback–Leibler)

Midiendo la diferencia entre distribuciones de probabilidad

La Divergencia KL (Kullback–Leibler) es una medida que cuantifica cuánto difiere una distribución de probabilidad de otra. Es un concepto central en teoría de la información y juega un papel clave en machine learning, modelos probabilísticos y redes neuronales.

👉 En esencia, responde:
“¿Cuánta información se pierde al aproximar una distribución con otra?”

Definición corta

La divergencia KL mide la diferencia entre dos distribuciones de probabilidad.

Definición detallada

Dadas dos distribuciones PPP (real) y QQQ (aproximación):DKL(PQ)=iP(xi)logP(xi)Q(xi)D_{KL}(P || Q) = \sum_{i} P(x_i) \log \frac{P(x_i)}{Q(x_i)}

👉 También en forma continua:DKL(PQ)=P(x)logP(x)Q(x)dxD_{KL}(P || Q) = \int P(x) \log \frac{P(x)}{Q(x)} dx

Interpretación

ValorSignificado
0distribuciones idénticas
> 0diferencia creciente
muy diferentes

👉 Importante:DKL(PQ)DKL(QP)D_{KL}(P || Q) \neq D_{KL}(Q || P)

👉 No es simétrica.

Intuición

La divergencia KL mide:

👉 “¿Qué tan mala es mi aproximación QQQ si la realidad es PPP?”


Ejemplo

  • PPP: datos reales
  • QQQ: modelo

👉 KL mide el error de esa aproximación.

Relación con entropía

DKL(PQ)=H(P,Q)H(P)D_{KL}(P || Q) = H(P, Q) – H(P)

👉 Donde:

  • H(P)H(P)H(P) = entropía
  • H(P,Q)H(P, Q)H(P,Q) = cross-entropy

👉 KL = diferencia entre:

  • lo que el modelo cree
  • lo que realmente ocurre

Ejemplo paso a paso

P=[0.5,0.5]P = [0.5, 0.5]Q=[0.9,0.1]Q = [0.9, 0.1]


DKL(PQ)=0.5log0.50.9+0.5log0.50.1D_{KL}(P||Q) = 0.5 \log \frac{0.5}{0.9} + 0.5 \log \frac{0.5}{0.1}DKL​(P∣∣Q)=0.5log0.90.5​+0.5log0.10.5​


👉 Resultado positivo → diferencia significativa.

Propiedades clave

  • Siempre ≥ 0
  • No simétrica
  • No es una distancia real
  • Sensible a probabilidades pequeñas

Divergencia KL en redes neuronales

🔹 1. Función de pérdida

Usada en:

  • clasificación
  • modelos probabilísticos

🔹 2. Variational Autoencoders (VAE)

Loss=Reconstruccioˊn+DKL\text{Loss} = \text{Reconstrucción} + D_{KL}Loss=Reconstruccioˊn+DKL​

👉 Regulariza el espacio latente.

🔹 3. RLHF (Reinforcement Learning)

Se usa para:

👉 penalizar desviaciones del modelo original

🔹 4. Comparación de distribuciones

Evalúa:

  • modelos generativos
  • aproximaciones probabilísticas

Ejemplo conceptual

P (real):     [0.7, 0.3]
Q (modelo): [0.6, 0.4]

👉 KL mide cuánto se aleja Q de P

Relación con otros conceptos

  • Entropía
  • Cross-entropy
  • Probabilidad
  • Distribuciones
  • VAE

Ejemplo en Python

import numpy as np
P = np.array([0.5, 0.5])
Q = np.array([0.9, 0.1])
kl = np.sum(P * np.log(P / Q))
print("Divergencia KL:", kl)