24 votos

¿Por qué hay términos adicionales? $-p_i+q_i$ en la implementación de SciPy de la divergencia de Kullback-Leibler?

¿Por qué algunas definiciones de la divergencia de Kullback-Leibler incluyen términos adicionales $-p_i + q_i$ ? Por ejemplo, kl_div() (en Python scipy.special ) define la divergencia de Kullback-Leibler como $$ \sum_i p_i \ln\frac{p_i}{q_i} - p_i + q_i. $$

La documentación dice:

El origen de esta función está en la programación convexa; véase [1] para más detalles. Esta es la razón por la que la función contiene términos adicionales a los que cabría esperar de la divergencia de Kullback-Leibler.

No tengo a mano el libro de referencia. ¿Cuál es la justificación o motivación de los $-p_i + q_i$ ¿condiciones?

Nota anticierre: No se trata de una pregunta sobre software, sino sobre el concepto que hay detrás.

28voto

John Madden Puntos 320

La otra respuesta nos dice por qué no solemos ver el $-p_i+q_i$ plazo: $p$ y $q$ suelen ser residentes del símplex y, por tanto, suman uno, lo que lleva a $\sum - [p_i - q_i] = \sum - p_i + \sum q_i = -1 + 1 = 0$ .

En esta respuesta, quiero mostrar por qué esos términos están ahí en primer lugar, viendo la divergencia KL como la Divergencia de Bregman inducida por la (negativa) Entropía función.

Dada una función diferenciable $\psi$ la divergencia de Bregman inducida por ella es una función binaria en el dominio de $\psi$ :

$$ B_\psi(p,q) = \psi(p)-\psi(q)-\langle\nabla\psi(q),p-q\rangle $$

Intuitivamente, la divergencia de Bregman mide la diferencia entre $\psi$ evaluado en $p$ y la aproximación lineal a $\psi$ (sobre $q$ ) evaluado en $p$ . En $\psi$ es convexa, se garantiza que no es negativa y, por tanto, tampoco lo es la divergencia de Bregman.

Observando que si $\psi(p) = \sum_i p_i \log p_i$ , $\nabla\psi(p) = [\log p_i + 1]$ la divergencia entrópica de Bregman es..:

$$ B_e(p,q) = \sum_i p_i \log p_i - \sum_i q_i \log q_i - \sum_i [\log q_i + 1][p_i-q_i]\\ = \sum_i p_i \log p_i - \sum_i q_i \log q_i - \sum_i [\log q_i (p_i-q_i) + p_i-q_i]\\ = \sum_i p_i \log p_i - \sum_i q_i \log q_i - \sum_i p_i \log q_i + \sum_i q_i\log q_i - \sum_i[p_i-q_i]\\ = \sum_i p_i \log p_i - \sum_i p_i \log q_i - \sum_i[p_i-q_i]\\ = \sum_i p_i \log \frac{p_i}{q_i} + \sum_i[-p_i+q_i] $$

que reconocemos como la divergencia KL que mencionaste.

22voto

Rob Van Dam Puntos 5073

El libro de referencia tiene un pdf gratuito en el sitio de Boyd: https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf

En la página 90, la fórmula 3.17 da esta definición. Sospecho que la razón de los términos añadidos es que en la optimización convexa, los dos vectores no necesitan ser distribuciones de probabilidad; los autores dicen

Obsérvese que la entropía relativa y la divergencia de Kullback-Leibler son iguales cuando $u$ y $v$ son vectores de probabilidad

Cuando lo son, en la suma los términos extra se cancelan. Pero cuando no lo son, los términos añadidos garantizan que el total no sea negativo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X