🧮 Computational Mathematics

Inicio · Parte 13 — Teoría de la información, señales y series

265 — Jensen-Shannon divergence

avanzado clase 5 de 20 4 horas demostración js_divergence

Jensen-Shannon simetriza la KL midiendo ambas contra la mezcla.

Fórmulas

M = (p + q)/2
JS(p,q) = ½·KL(p‖M) + ½·KL(q‖M)
0 ≤ JS ≤ 1 bit;  √JS es una métrica

Desarrollo

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.

Ejemplo trabajado

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.

Qué calcula el laboratorio

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

Salidas del laboratorio (9)

Muestra de la ejecución real

{
  "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
}

Errores comunes

Dónde se usa

Análisis de GAN, comparación de distribuciones de datos, agrupamiento de documentos y medida de similitud entre modelos.

Idea rectora de la parte

Convolución en el tiempo es multiplicación en frecuencia.

Error a evitar

Comparar entropías calculadas en bases logarítmicas distintas.

Conexión con IA

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.

Bibliografía de la clase

Archivos de la clase