Quali sono i vantaggi della metrica di Wasserstein rispetto alla divergenza di Kullback-Leibler?


25

Qual è la differenza pratica tra la metrica di Wasserstein e la divergenza di Kullback-Leibler ? La metrica di Wasserstein è anche indicata come distanza del movimento terra .

Da Wikipedia:

La metrica di Wasserstein (o Vaserstein) è una funzione di distanza definita tra le distribuzioni di probabilità su un dato spazio metrico M.

e

La divergenza di Kullback-Leibler è una misura di come una distribuzione di probabilità diverge da una seconda distribuzione di probabilità prevista.

Ho visto KL utilizzato nelle implementazioni di machine learning, ma di recente mi sono imbattuto nella metrica di Wasserstein. C'è una buona linea guida su quando usare l'uno o l'altro?

(Ho una reputazione insufficiente per creare un nuovo tag con Wassersteino Earth mover's distance.)


Dove mi sono imbattuto nella metrica di Wasserstein: github.com/RaRe-Technologies/movie-plots-by-genre/blob/master/…
Thomas Fauskanger

1
modifica del post per aggiungere un tag Wasserstein in base alla richiesta del poster. Aggiungendo anche una risposta.
Lucas Roberts,

Risposte:


28

Se si considerano i vantaggi della metrica di Wasserstein rispetto alla divergenza di KL, la più ovvia è che W è una metrica mentre la divergenza di KL non lo è, poiché KL non è simmetrica (ovvero in generale) e non soddisfa la disuguaglianza del triangolo (cioè D K L ( R | | P ) D K L ( Q | | P ) + D KDKL(P||Q)DKL(Q||P)non vale in generale).DKL(R||P)DKL(Q||P)+DKL(R||Q)

Per quanto riguarda la differenza pratica, uno dei più importanti è che a differenza di KL (e di molte altre misure) Wasserstein tiene conto dello spazio metrico e ciò che ciò significa in termini meno astratti è forse meglio spiegato da un esempio (sentiti libero di saltare alla figura, codice solo per produrlo):

# 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()

Divergenze metriche di Wasserstein e Kullback-Leibler per due diverse coppie di distribuzioni Qui le misure tra le distribuzioni rossa e blu sono le stesse per la divergenza di KL mentre la distanza di Wasserstein misura il lavoro richiesto per trasportare la massa di probabilità dallo stato rosso allo stato blu usando l'asse x come "strada". Questa misura è ovviamente maggiore quanto maggiore è la massa di probabilità (quindi la distanza del motore della terra alias). Pertanto, quale si desidera utilizzare dipende dall'area dell'applicazione e da ciò che si desidera misurare. Come nota, invece della divergenza di KL ci sono anche altre opzioni come la distanza di Jensen-Shannon che sono metriche adeguate.


6

La metrica di Wasserstein appare più comunemente nei problemi di trasporto ottimali in cui l'obiettivo è spostare le cose da una determinata configurazione a una configurazione desiderata nel costo minimo o nella distanza minima. Il Kullback-Leibler (KL) è una divergenza (non una metrica) e si presenta molto spesso in statistica, apprendimento automatico e teoria dell'informazione.

Inoltre, la metrica di Wasserstein non richiede che entrambe le misure si trovino sullo stesso spazio di probabilità, mentre la divergenza KL richiede che entrambe le misure siano definite sullo stesso spazio di probabilità.

kμiΣii=1,2

W2(N0,N1)2=μ1μ222+tr(Σ1+Σ22(Σ21/2Σ1Σ21/2)1/2)
DKL(N0,N1)=12(tr(Σ11Σ0)+(μ1μ0)TΣ11(μ1μ0)k+ln(detΣ1detΣ0)).
Σ1=Σ2=wIkμ1μ20k0
W2(N0,N1)2=μ1μ222
DKL(N0,N1)=(μ1μ0)TΣ11(μ1μ0).
wcome una grande quantità nelle matrici di covarianza) mentre la divergenza di KL fa. Questo perché la distanza di Wasserstein è una funzione di distanza negli spazi di supporto congiunti delle due misure di probabilità. Al contrario, la divergenza di KL è una divergenza e questa divergenza cambia in base allo spazio delle informazioni (rapporto segnale rumore) delle distribuzioni.


1

PQ

Trovo che questa proprietà sia un'estensione molto naturale per parlare della differenza assoluta tra due variabili casuali

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.