ワッサーシュタイン距離はアース ムーバーの距離とも呼ばれ、2 つの確率分布間の距離を測定するために使用される数学的手法です。ユークリッド距離などの従来の距離測定方法と比較して、ワッサーシュタイン距離は分布間の類似性と幾何学的距離間の関係をより包括的に考慮するため、高次元データセットの類似性を記述するのにより適しています。 Wasserstein 距離は、ある分布を別の分布に変換するために必要な最小総コストによって計算されます。このコストは、分布内の質量をある場所から別の場所に移動するのに必要な労力と解釈できます。したがって、ワッサーシュタイン距離は、2 つの分布間の物質移動のコストとみなすことができます。このため、ワッサーシュタイン距離は、画像処理、自然言語処理、経済学などを含む多くの分野で広く使用されています。分布間の類似性と幾何学的距離を考慮することによって
Wasserstein 距離の定義は、ある分布を別の分布に変換するのに必要なコストを最小限に抑えることに基づいています。このコストは任意ですが、通常は分布内で質量をある位置から別の位置に移動するコストを指し、2 つの位置間の距離と質量の積として表すことができます。 Wasserstein 距離の値は、考えられるすべての変換ソリューションのコストの最小値に等しくなります。
数学的には、ワッサーシュタイン距離は次のように定義できます:
W_p(\mu,\nu)=\left(\inf_{\ gamma\in\Gamma(\mu,\nu)}\int_{\mathbb{R}^d \times \mathbb{R}^d} |x-y|^p d\gamma(x,y)\right)^{ 1/p}
そのうち、\mu と \nu は 2 つの確率分布で、\Gamma(\mu,\nu) はすべて \mu を \nu A に変換する確率分布です。 \gamma(x,y) の集合は、(x,y) に対応する変換確率を表します。 Wasserstein 距離では、p \geq 1 は定数で、通常は p=1 または p=2 です。 p=1 の場合、ワッサーシュタイン距離はアース ムーバーの距離とも呼ばれます。これは、ある分布を別の分布に移動するために必要な最小操作数の尺度と見なすことができるためです。
Wasserstein 距離の概念をよりよく理解するために、簡単な例を考えてみましょう。区間 [0 内にある 2 つの 1 次元確率分布 P と Q があるとします。 ,1] と [0.5,1.5] は均一に分布しています。 Python と Scipy ライブラリを使用して、それらの間の Wasserstein 距離を計算できます。
import numpy as np from scipy.stats import wasserstein_distance # 定义两个概率分布 P 和 Q P = np.ones(100) / 100 Q = np.ones(100) / 100 Q[50:] = 0 # 计算它们之间的ワッサーシュタイン距離 w_dist = wasserstein_distance(P, Q) print("Wasserstein distance:", w_dist)
この例では、numpy ライブラリを使用して 2 つの 100 要素の確率分布を生成します。どちらも一様に分布しています。次に、2 番目の分布 Q の最後の 50 要素を 0 に設定して、区間 [0.5,1] での分布をシミュレートします。最後に、Scipy ライブラリの wasserstein_ distance 関数を使用して、それらの間の Wasserstein 距離を計算します。コードを実行すると、次の出力が得られます。
Wasserstein distance: 0.5
これは、分布 P を分布 Q に変換するために必要な最小コストが 0.5 であることを意味します。この例では、これを長さ 0.5 の丘を長さ 0.5 の穴に移動するのに必要な最小距離として解釈できます。
つまり、Wasserstein 距離は、2 つの確率分布間の距離を測定するために使用される方法であり、分布間の類似性と幾何学的距離の関係を考慮します。これには、敵対的生成ネットワーク (GAN) における損失関数や画像検索における類似性測定など、多くの用途があります。
以上がワッサーシュタイン距離の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。