Kullback-Leibler発散と比較したWassersteinメトリックの利点は何ですか?


25

Wasserstein計量Kullback-Leibler発散の実際の違いは何ですか?Wassersteinメトリックは、Earth Mover's Distanceとも呼ばれます。

ウィキペディアから:

Wasserstein(またはVaserstein)メトリックは、所定のメトリック空間Mの確率分布間で定義される距離関数です。

そして

Kullback–Leiblerの発散は、1つの確率分布が2番目の予想確率分布からどのように発散するかの尺度です。

機械学習の実装でKLが使用されているのを見てきましたが、最近、Wassersteinメトリックに出会いました。どちらを使用するかについての良いガイドラインはありますか?

Wassersteinまたはで新しいタグを作成するには評判が不十分Earth mover's distanceです。)


:私は、ワッサースタイン計量に出くわした場合はgithub.com/RaRe-Technologies/movie-plots-by-genre/blob/master/...
トーマスFauskanger

1
投稿を編集して、投稿者のリクエストに基づいてWassersteinタグを追加します。回答も追加します。
ルーカスロバーツ

回答:


28

KL発散と比較したWassersteinメトリックの利点を検討する場合、最も明白なものは、KLが対称ではないため(つまりであり、三角形の不等式を満たしません(つまり、一般的に成り立たない)。DKL(P||Q)DKL(Q||P)DKL(R||P)DKL(Q||P)+DKL(R||Q)

実際の違いは、最も重要なことの1つは、KL(および他の多くの手段)とは異なり、Wassersteinが計量空間を考慮に入れていることです。図に、それを生成するためのコード):

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

2つの異なる分布のペアのWassersteinメトリックとKullback-Leiblerの発散 ここで、赤と青の分布間の測定値はKL発散で同じですが、Wasserstein距離は、x軸を「道路」として赤の状態から青の状態に確率質量を輸送するために必要な作業を測定します。この測定値は、確率質量が遠くなるほど明らかに大きくなります(エイリアスアースムーバーの距離)。どちらを使用するかは、アプリケーション領域と測定対象によって異なります。注釈として、KL発散の代わりに、適切なメトリックであるJensen-Shannon距離のような他のオプションもあります。


6

Wassersteinメトリックは、目標が最小コストまたは最小距離で特定の構成から目的の構成に物事を移動することである最適な輸送問題に最もよく現れます。Kullback-Leibler(KL)は発散(メトリックではない)であり、統計、機械学習、および情報理論に頻繁に現れます。

また、Wassersteinメトリックでは、両方のメジャーが同じ確率空間にある必要はありませんが、KL発散で、両方のメジャーが同じ確率空間に定義される必要があります。

おそらく、Wasserstein距離とKL発散の違いを確認する最も簡単な場所は、両方とも閉形式の解がある多変量ガウスの場合です。の場合、これらの分布の次元は、平均、共分散行列であるとます。それらの2つの式は次のとおりです。kμiΣii=1,2

W2(N0,N1)2=μ1μ222+tr(Σ1+Σ22(Σ21/2Σ1Σ21/2)1/2)
および 簡略化するために、および考えてみましょう。これらの単純化された仮定により、Wassersteinのトレース項はなり、KL発散のトレース項は項と組み合わせたときに0になり、対数決定比も
DKL(N0,N1)=12(tr(Σ11Σ0)+(μ1μ0)TΣ11(μ1μ0)k+ln(detΣ1detΣ0)).
Σ1=Σ2=wIkμ1μ20k0、これらの2つの数量は次のようになります および 分散が変化しても(たとえば、共分散行列でを大量に取る場合)ワッサーシュタイン距離は変化しませんが、KL発散は変化します。これは、Wasserstein距離が2つの確率測定のジョイントサポート空間における距離関数であるためです。対照的に、KLの発散は発散であり、この発散は分布の情報空間(信号対雑音比)に基づいて変化します。
W2(N0,N1)2=μ1μ222
DKL(N0,N1)=(μ1μ0)TΣ11(μ1μ0).
w


1

Wassersteinメトリックは、その単位が応答自体の単位であるため、モデルの検証に役立ちます。たとえば、同じシステム(低次元化モデルなど)の2つの確率的表現とを比較し、応答が変位の単位である場合、Wassersteinメトリックも変位の単位になります。確率的表現を決定論に還元した場合、それぞれの分布のCDFはステップ関数です。Wassersteinメトリックは、値の差です。PQ

このプロパティは、2つのランダム変数間の絶対差について話すための非常に自然な拡張であることがわかりました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.