Rozważając zalety metryki Wassersteina w porównaniu do dywergencji KL, najbardziej oczywistą jest to, że W jest metryką, podczas gdy dywergencja KL nie jest, ponieważ KL nie jest symetryczna (tj. ogólnie) i nie spełnia nierówności trójkąta (tj. nie obejmuje ogólnie).D K L ( R | | P ) ≤ D K L ( Q | | P ) + D K L ( R | | Q )DKL(P||Q)≠DKL(Q||P)DKL(R||P)≤DKL(Q||P)+DKL(R||Q)
Jeśli chodzi o praktyczną różnicę, to jedną z najważniejszych jest to, że w przeciwieństwie do KL (i wielu innych miar) Wasserstein bierze pod uwagę przestrzeń metryczną, a to, co oznacza to w mniej abstrakcyjnych kategoriach, najlepiej najlepiej wyjaśnić na przykładzie (możesz pominąć do rysunku, kod tylko do jego wytworzenia):
# 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()
Tutaj miary między rozkładami czerwonym i niebieskim są takie same dla rozbieżności KL, podczas gdy odległość Wassersteina mierzy pracę wymaganą do przeniesienia masy prawdopodobieństwa ze stanu czerwonego do stanu niebieskiego przy użyciu osi X jako „drogi”. Miara ta jest oczywiście tym większa, im bardziej oddalona jest masa prawdopodobieństwa (stąd odległość przemieszczającego się pseudonimu). To, którego chcesz użyć, zależy od obszaru zastosowania i tego, co chcesz zmierzyć. Uwaga: zamiast rozbieżności KL istnieją również inne opcje, takie jak odległość Jensen-Shannon, które są właściwymi miernikami.