¿Cuáles son las ventajas de la métrica de Wasserstein en comparación con la divergencia Kullback-Leibler?


25

¿Cuál es la diferencia práctica entre la métrica de Wasserstein y la divergencia de Kullback-Leibler ? La métrica de Wasserstein también se conoce como la distancia del motor de la Tierra .

De Wikipedia:

La métrica de Wasserstein (o Vaserstein) es una función de distancia definida entre distribuciones de probabilidad en un espacio métrico dado M.

y

La divergencia de Kullback-Leibler es una medida de cómo una distribución de probabilidad diverge de una segunda distribución de probabilidad esperada.

He visto que KL se ha utilizado en implementaciones de aprendizaje automático, pero recientemente me encontré con la métrica de Wasserstein. ¿Hay una buena pauta sobre cuándo usar uno u otro?

(No tengo suficiente reputación para crear una nueva etiqueta con Wassersteino Earth mover's distance.)



1
editando la publicación para agregar una etiqueta de Wasserstein basada en la solicitud del póster. También agregando una respuesta.
Lucas Roberts el

Respuestas:


28

Cuando se consideran las ventajas de la métrica de Wasserstein en comparación con la divergencia de KL, la más obvia es que W es una métrica mientras que la divergencia de KL no lo es, ya que KL no es simétrica (es decir, en general) y no satisface la desigualdad del triángulo (es decir, no se cumple en general).D K L ( R | | P ) D K L ( Q | | P ) + D K L ( R | | Q )reKL(PAGSEl |El |Q)reKL(QEl |El |PAGS)reKL(REl |El |PAGS)reKL(QEl |El |PAGS)+reKL(REl |El |Q)

En cuanto a la diferencia práctica, una de las más importantes es que, a diferencia de KL (y muchas otras medidas), Wasserstein tiene en cuenta el espacio métrico y lo que esto significa en términos menos abstractos puede explicarse mejor con un ejemplo (no dude en omitirlo) a la figura, código solo para producirlo):

# define samples this way as scipy.stats.wasserstein_distance can't take probability distributions directly
sampP = [1,1,1,1,1,1,2,3,4,5]
sampQ = [1,2,3,4,5,5,5,5,5,5]
# and for scipy.stats.entropy (gives KL divergence here) we want distributions
P = np.unique(sampP, return_counts=True)[1] / len(sampP)
Q = np.unique(sampQ, return_counts=True)[1] / len(sampQ)
# compare to this sample / distribution:
sampQ2 = [1,2,2,2,2,2,2,3,4,5]
Q2 = np.unique(sampQ2, return_counts=True)[1] / len(sampQ2)

fig = plt.figure(figsize=(10,7))
fig.subplots_adjust(wspace=0.5)
plt.subplot(2,2,1)
plt.bar(np.arange(len(P)), P, color='r')
plt.xticks(np.arange(len(P)), np.arange(1,5), fontsize=0)
plt.subplot(2,2,3)
plt.bar(np.arange(len(Q)), Q, color='b')
plt.xticks(np.arange(len(Q)), np.arange(1,5))
plt.title("Wasserstein distance {:.4}\nKL divergence {:.4}".format(
    scipy.stats.wasserstein_distance(sampP, sampQ), scipy.stats.entropy(P, Q)), fontsize=10)
plt.subplot(2,2,2)
plt.bar(np.arange(len(P)), P, color='r')
plt.xticks(np.arange(len(P)), np.arange(1,5), fontsize=0)
plt.subplot(2,2,4)
plt.bar(np.arange(len(Q2)), Q2, color='b')
plt.xticks(np.arange(len(Q2)), np.arange(1,5))
plt.title("Wasserstein distance {:.4}\nKL divergence {:.4}".format(
    scipy.stats.wasserstein_distance(sampP, sampQ2), scipy.stats.entropy(P, Q2)), fontsize=10)
plt.show()

Wasserstein métricas y Kullback-Leibler divergencias para dos pares diferentes de distribuciones Aquí las medidas entre las distribuciones roja y azul son las mismas para la divergencia KL, mientras que la distancia de Wasserstein mide el trabajo requerido para transportar la masa de probabilidad del estado rojo al estado azul usando el eje x como un "camino". Obviamente, esta medida es mayor cuanto más lejos esté la masa de probabilidad (de ahí la distancia del alias del motor de tierra). Entonces, cuál desea utilizar depende de su área de aplicación y de lo que desea medir. Como nota, en lugar de la divergencia KL también hay otras opciones, como la distancia de Jensen-Shannon, que son métricas adecuadas.


6

La métrica de Wasserstein aparece más comúnmente en problemas de transporte óptimos donde el objetivo es mover cosas de una configuración dada a una configuración deseada en el costo mínimo o la distancia mínima. El Kullback-Leibler (KL) es una divergencia (no una métrica) y aparece con mucha frecuencia en estadística, aprendizaje automático y teoría de la información.

Además, la métrica de Wasserstein no requiere que ambas medidas estén en el mismo espacio de probabilidad, mientras que la divergencia KL requiere que ambas medidas se definan en el mismo espacio de probabilidad.

kμyoΣyoyo=1,2

W2(norte0 0,norte1)2=μ1-μ222+tr(Σ1+Σ2-2(Σ21/ /2Σ1Σ21/ /2)1/ /2)
reKL(norte0 0,norte1)=12(tr(Σ1-1Σ0 0)+(μ1-μ0 0)TΣ1-1(μ1-μ0 0)-k+En(detΣ1detΣ0 0)).
Σ1=Σ2=wyokμ1μ20 0-k0 0
W2(norte0 0,norte1)2=μ1-μ222
reKL(norte0 0,norte1)=(μ1-μ0 0)TΣ1-1(μ1-μ0 0).
wcomo una gran cantidad en las matrices de covarianza) mientras que la divergencia KL sí. Esto se debe a que la distancia de Wasserstein es una función de distancia en los espacios de soporte conjunto de las dos medidas de probabilidad. En contraste, la divergencia KL es una divergencia y esta divergencia cambia en función del espacio de información (relación señal / ruido) de las distribuciones.


1

PAGSQ

Considero que esta propiedad es una extensión muy natural para hablar sobre la diferencia absoluta entre dos variables aleatorias

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.