InfyCalculator
English
📊

Calculadora de divergencia KL (Kullback-Leibler)

Divergencia de Kullback-Leibler entre dos distribuciones discretas en ambos sentidos, más divergencia de Jensen-Shannon, entropía cruzada y entropía, en nats, bits o hartleys.

Distribución P (probabilidades o conteos)
Distribución Q (mismas categorías)
Base del logaritmo
Cargando calculadora…

Cómo funciona

D_KL(P‖Q) = Σ pᵢ·log(pᵢ/qᵢ); JS = ½D_KL(P‖M) + ½D_KL(Q‖M), M = (P + Q)/2; H(P, Q) = H(P) + D_KL(P‖Q); H(P) = −Σ pᵢ log pᵢ

La divergencia de Kullback-Leibler mide cuánta información se pierde al usar Q para aproximar P: los bits (o nats) adicionales que se necesitan en promedio para codificar muestras de P con un código diseñado para Q. Vale cero solo si las distribuciones son idénticas, no es simétrica y se vuelve infinita si Q asigna probabilidad cero a algo que P permite. La divergencia de Jensen-Shannon es una alternativa suavizada, simétrica y siempre finita. Los valores coinciden con scipy.stats.entropy(P, Q).

Ejemplo resuelto

Con P = (0.36, 0.48, 0.16) frente a una Q casi uniforme (0.333, 0.333, 0.334): D_KL(P ‖ Q) = 0.0858 nats, la inversa D_KL(Q ‖ P) = 0.0981 nats y la divergencia de Jensen-Shannon es 0.0226 nats.

Fuentes: Kullback & Leibler (1951), On information and sufficiency, Annals of Mathematical Statistics · SciPy — scipy.stats.entropy

Preguntas frecuentes

¿Por qué la divergencia KL no es simétrica?

D_KL(P‖Q) pondera el logaritmo del cociente con P, así que penaliza a Q por no cubrir resultados probables bajo P; el sentido inverso penaliza lo contrario. Si necesitas una medida simétrica, usa Jensen-Shannon.

¿Por qué obtengo infinito?

Q asigna probabilidad 0 a un resultado que tiene probabilidad positiva bajo P. Suma un pequeño conteo de suavizado a Q (por ejemplo +1 a cada conteo) si ese cero no es realista.

¿Qué relación tiene la divergencia KL con la pérdida de entropía cruzada?

La entropía cruzada H(P, Q) = H(P) + D_KL(P‖Q). Como H(P) de las etiquetas reales es fija, minimizar la entropía cruzada equivale a minimizar la divergencia KL.

¿Nats, bits o hartleys?

Solo cambia la base del logaritmo: 1 nat = 1.4427 bits = 0.4343 hartleys. Las bibliotecas de aprendizaje automático suelen reportar nats.

Calculadoras relacionadas

Esta calculadora tiene fines informativos. Verifica los resultados importantes antes de tomar decisiones.