Каковы преимущества метрики Вассерштейна по сравнению с дивергенцией Кульбака-Лейблера?


25

В чем практическая разница между метрикой Вассерштейна и дивергенцией Кульбака-Лейблера ? Метрика Вассерштейна также называется расстоянием перемещения Земли .

Из Википедии:

Метрика Вассерштейна (или Вазерштейна) - это функция расстояния, определяемая между вероятностными распределениями в данном метрическом пространстве М.

а также

Дивергенция Кульбака – Лейблера - это мера того, как одно распределение вероятностей отличается от второго ожидаемого распределения вероятностей.

Я видел, как KL использовался для реализации машинного обучения, но недавно я наткнулся на метрику Вассерштейна. Есть ли хорошее руководство о том, когда использовать один или другой?

(У меня недостаточно репутации, чтобы создать новый тег с помощью Wassersteinили Earth mover's distance.)


Где я наткнулся на метрику Вассерштейна: github.com/RaRe-Technologies/movie-plots-by-genre/blob/master/…
Томас Фаускангер,

1
редактирование поста для добавления тега Вассерштейна на основе запроса постера. Также добавлю ответ.
Лукас Робертс

Ответы:


28

При рассмотрении преимуществ метрики Вассерштейна по сравнению с дивергенцией KL, наиболее очевидным является то, что W является метрикой, а дивергенция KL - нет, поскольку KL не симметрична (т. Е. в общем случае) и не удовлетворяет неравенству треугольника (т.е. D K L ( R | | P ) D K L ( Q | | P ) + D KDKL(P||Q)DKL(Q||P)в общем случае не выполняется).DKL(R||P)DKL(Q||P)+DKL(R||Q)

Что касается практических различий, то одним из наиболее важных является то, что в отличие от KL (и многих других мер) Вассерштейн учитывает метрическое пространство, и то, что это означает в менее абстрактных терминах, возможно, лучше всего объяснить на примере (не стесняйтесь пропускать на рисунке, код только для его производства):

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

Метрика Вассерштейна и дивергенции Кульбака-Лейблера для двух разных пар распределений Здесь измерения между красным и синим распределением одинаковы для дивергенции KL, тогда как расстояние Вассерштейна измеряет работу, требуемую для переноса вероятностной массы из красного состояния в синее с использованием оси x в качестве «дороги». Эта мера, очевидно, тем больше, чем дальше масса вероятности (отсюда и псевдоним движка Земли). То, какой из них вы хотите использовать, зависит от области применения и того, что вы хотите измерить. Как примечание, вместо расхождения KL есть и другие параметры, такие как расстояние Дженсена-Шеннона, которые являются правильными метриками.


6

Метрика Вассерштейна чаще всего возникает в задачах оптимального транспорта, где цель состоит в том, чтобы переместить вещи из заданной конфигурации в желаемую конфигурацию с минимальными затратами или минимальным расстоянием. Кульбак-Лейблер (КЛ) является дивергенцией (не метрикой) и очень часто проявляется в статистике, машинном обучении и теории информации.

Кроме того, метрика Вассерштейна не требует, чтобы обе меры находились в одном и том же вероятностном пространстве, тогда как для дивергенции KL требуется, чтобы обе меры были определены в одном и том же вероятностном пространстве.

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поэтому эти две величины становятся: и Обратите внимание, что расстояние Вассерштейна не меняется, если изменяется дисперсия (скажем, взять как большое количество в ковариационных матрицах), тогда как дивергенция KL меняется. Это связано с тем, что расстояние Вассерштейна является функцией расстояния в объединенных опорных пространствах двух вероятностных мер. В отличие от этого, дивергенция KL является дивергенцией, и эта дивергенция изменяется в зависимости от информационного пространства (отношение сигнал / шум) распределений.
W2(N0,N1)2=μ1μ222
DKL(N0,N1)=(μ1μ0)TΣ11(μ1μ0).
w


1

Метрика Вассерштейна полезна при проверке моделей, поскольку ее единицы - это единицы измерения самого ответа. Например, если вы сравниваете два стохастических представления одной и той же системы (например, модель с уменьшенным порядком), и , и ответ - это единицы смещения, метрика Вассерштейна также выражается в единицах смещения. Если бы вы сократили свое стохастическое представление до детерминированного, CDF распределения каждого из них является пошаговой функцией. Метрика Вассерштейна - это разность значений.PQ

Я нахожу это свойство очень естественным расширением, чтобы говорить об абсолютной разнице между двумя случайными переменными

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.