Inicio · Parte 13 — Teoría de la información, señales y series
M = (p + q)/2
JS(p,q) = ½·KL(p‖M) + ½·KL(q‖M)
0 ≤ JS ≤ 1 bit; √JS es una métrica
La divergencia de Jensen-Shannon arregla los dos defectos de la KL con una idea simple: construir la mezcla de ambas distribuciones y medir la divergencia de cada una a esa mezcla, promediando. El resultado es simétrico por construcción.
Además está acotada: nunca supera 1 bit, sea cual sea el par de distribuciones. La KL puede ser infinita cuando q asigna cero donde p no lo hace; JS no tiene ese problema porque la mezcla siempre cubre el soporte de ambas. Eso la hace numéricamente mucho más estable como medida de comparación.
Y su raíz cuadrada sí es una métrica: cumple simetría, desigualdad triangular y se anula solo en la identidad. Eso permite usarla como distancia genuina para agrupar, indexar o comparar distribuciones, cosa que con KL no es legítima.
Su papel histórico en aprendizaje automático es notable: el artículo original de las GAN demostró que el discriminador óptimo hace que el generador minimice la divergencia JS entre la distribución real y la generada. Que esa divergencia sature cuando los soportes no se solapan es parte de la explicación de la inestabilidad de las GAN, y la razón de que WGAN cambiara a la distancia de Wasserstein.
JS sobre el mismo par que la clase anterior.
p = [0,5 ; 0,3 ; 0,2]
q = [0,3 ; 0,4 ; 0,3]
mezcla M = [0,4 ; 0,35 ; 0,25]
JS(p,q) = 0,0306589 bits
JS(q,p) = 0,0306589 bits
simétrica ✓
Comparación con KL:
KL(p‖q) = 0,0880 KL(q‖p) = 0,0835
JS = 0,0307 menor y única
Cota: JS ≤ 1 bit siempre.
Para distribuciones con soportes disjuntos, JS = 1 exacto,
mientras que KL sería infinita.
Jensen-Shannon: simétrica y acotada.
python classes/part-13-teoria-de-la-informacion-senales-y-series/265-jensen-shannon-divergence/lab.py
compmath run 265
pqmezcla_MJS(p,q)_bitsJS(q,p)_bitssimetricadistribuciones_disjuntascota_superior_en_bitssqrt(JS)_es_una_metrica{
"p": [
0.5,
0.3,
0.2
],
"q": [
0.3,
0.4,
0.3
],
"mezcla_M": [
0.4,
0.35,
0.25
],
"JS(p,q)_bits": 0.0306589,
"JS(q,p)_bits": 0.0306589,
"simetrica": true
}
Análisis de GAN, comparación de distribuciones de datos, agrupamiento de documentos y medida de similitud entre modelos.
La función de pérdida de casi todo clasificador es entropía cruzada; el VAE optimiza un ELBO con un término KL; las CNN son convoluciones aprendidas.
10.1109/18.61115 verificado en Crossref (2026-08-19).10.48550/arxiv.1406.2661 verificado en DataCite (2026-08-19).