当前位置: 首页 > article >正文

Wasserstein距离

Wasserstein距离(Wasserstein distance),又称为推土机移动距离(Earth Mover’s Distance, EMD),是度量理论中用来比较两个概率分布之间差异的一种距离度量。它源自最优传输问题(Optimal Transport Problem),用于衡量将一个概率分布“转换”为另一个概率分布所需的最小“代价”。

直观理解

Wasserstein距离的直观解释可以类比于在地球上移动泥土的过程:

  • 假设我们有两个堆积不同形状的土堆,表示两个概率分布。
  • 我们想通过移动泥土,将一个土堆转化为另一个。
  • 每一单位的土堆都需要一定的“代价”来移动,而这个代价通常与距离成正比。
  • Wasserstein距离就是完成这种转换所需的最小移动总代价。

数学定义

假设我们有两个定义在度量空间上的概率分布 P P P Q Q Q,即它们是两个概率测度。我们考虑如何将分布 P P P 转换为分布 Q Q Q 的问题。

  • 一阶Wasserstein距离(Wasserstein-1 distance),常用公式为:

    W 1 ( P , Q ) = inf ⁡ γ ∈ Π ( P , Q ) ∫ X × X d ( x , y )   d γ ( x , y ) W_1(P, Q) = \inf_{\gamma \in \Pi(P, Q)} \int_{X \times X} d(x, y) \, d\gamma(x, y) W1(P,Q)=γΠ(P,Q)infX×Xd(x,y)dγ(x,y)

    其中:

    • d ( x , y ) d(x, y) d(x,y) 是空间中点 x x x y y y 之间的距离度量(如欧几里得距离)。
    • Π ( P , Q ) \Pi(P, Q) Π(P,Q) 表示所有以 P P P Q Q Q 为边缘分布的联合分布集合。直观来说, γ ( x , y ) \gamma(x, y) γ(x,y) 表示从分布 P P P 中的 x x x 移动到分布 Q Q Q 中的 y y y 所需的概率质量。

Wasserstein距离的核心在于找到一种最优的方式,即以最小的代价将 P P P 转换为 Q Q Q,而这个代价通过测度 γ \gamma γ 来描述。

特别情况:离散分布

在离散分布的情况下,如果 P = { p 1 , p 2 , … , p n } P = \{p_1, p_2, \dots, p_n\} P={p1,p2,,pn} Q = { q 1 , q 2 , … , q n } Q = \{q_1, q_2, \dots, q_n\} Q={q1,q2,,qn} 是两个离散的概率分布,并且点之间的距离是欧几里得距离,Wasserstein距离则可以通过计算“最优传输计划”来得到,类似于线性规划问题中的最小化问题。

Wasserstein距离的类型

根据距离函数的幂次不同,Wasserstein距离可以有不同的形式:

  • 一阶Wasserstein距离(Wasserstein-1 distance):度量两个分布的平均移动距离,最常见。
  • 二阶Wasserstein距离(Wasserstein-2 distance):度量的是平均平方移动距离,也很常用。

二阶Wasserstein距离的公式如下:
W 2 2 ( P , Q ) = inf ⁡ γ ∈ Π ( P , Q ) ∫ X × X d ( x , y ) 2   d γ ( x , y ) W_2^2(P, Q) = \inf_{\gamma \in \Pi(P, Q)} \int_{X \times X} d(x, y)^2 \, d\gamma(x, y) W22(P,Q)=γΠ(P,Q)infX×Xd(x,y)2dγ(x,y)

应用

Wasserstein距离在多个领域有重要应用,特别是在以下几个方面:

  1. 机器学习和深度学习:在生成对抗网络(GANs)中,Wasserstein距离被用来衡量生成分布与真实分布之间的差异。Wasserstein GAN (WGAN) 是改进的生成对抗网络,使用Wasserstein距离代替传统的Jensen-Shannon散度来增强稳定性。
  2. 图像处理:Wasserstein距离可用于衡量图像之间的差异,特别是在图像匹配和图像分类任务中,用来度量不同图像的概率分布差异。
  3. 概率论与统计学:它被用来比较两个随机变量或两个概率分布的差异,特别是在度量分布的集中趋势或重心时。

小结

Wasserstein距离提供了一种非常直观且严谨的方法来衡量两个概率分布之间的差异,特别适用于那些涉及空间结构的应用场景。在优化和机器学习等领域,它是一种强大的工具。

让我们通过一个简单的例子来直观展示如何计算两个离散分布之间的Wasserstein距离。

示例:离散分布间的Wasserstein距离

假设我们有两个简单的离散分布 P P P Q Q Q ,定义在一维空间上。它们的分布如下:

  • 分布 P P P :在点 x 1 = 1 x_1 = 1 x1=1 x 2 = 3 x_2 = 3 x2=3 上分别有概率质量 p 1 = 0.4 p_1 = 0.4 p1=0.4 p 2 = 0.6 p_2 = 0.6 p2=0.6
  • 分布 Q Q Q :在点 y 1 = 2 y_1 = 2 y1=2 y 2 = 4 y_2 = 4 y2=4 上分别有概率质量 q 1 = 0.5 q_1 = 0.5 q1=0.5 q 2 = 0.5 q_2 = 0.5 q2=0.5
问题:计算一阶Wasserstein距离 W 1 ( P , Q ) W_1(P, Q) W1(P,Q)

步骤 1:定义运输方案

我们希望通过某种“最优”方式将分布 P P P 的质量分配给 Q Q Q。假设质量从 P P P 中的点 x i x_i xi 移动到 Q Q Q 中的点 y j y_j yj ,并且移动的“代价”是它们的距离(使用一维欧几里得距离),即 d ( x i , y j ) = ∣ x i − y j ∣ d(x_i, y_j) = |x_i - y_j| d(xi,yj)=xiyj

下面我们用 γ i j \gamma_{ij} γij 表示从 P P P 的点 x i x_i xi 移动到 Q Q Q 的点 y j y_j yj 的质量。

步骤 2:计算欧几里得距离

我们计算点之间的距离:

d ( x 1 , y 1 ) = ∣ 1 − 2 ∣ = 1 , d ( x 1 , y 2 ) = ∣ 1 − 4 ∣ = 3 d(x_1, y_1) = |1 - 2| = 1, \quad d(x_1, y_2) = |1 - 4| = 3 d(x1,y1)=∣12∣=1,d(x1,y2)=∣14∣=3
d ( x 2 , y 1 ) = ∣ 3 − 2 ∣ = 1 , d ( x 2 , y 2 ) = ∣ 3 − 4 ∣ = 1 d(x_2, y_1) = |3 - 2| = 1, \quad d(x_2, y_2) = |3 - 4| = 1 d(x2,y1)=∣32∣=1,d(x2,y2)=∣34∣=1

步骤 3:分配质量

为了使总移动成本最小化,我们需要确定怎样从 P P P 的两个点 ( 1 , 3 ) (1, 3) (1,3) 分配质量给 Q Q Q 的两个点 ( 2 , 4 ) (2, 4) (2,4) 。我们有以下的约束:

  • 移动的质量不能超过各点原本的概率质量。即:
    γ 11 + γ 12 = p 1 = 0.4 \gamma_{11} + \gamma_{12} = p_1 = 0.4 γ11+γ12=p1=0.4
    γ 21 + γ 22 = p 2 = 0.6 \gamma_{21} + \gamma_{22} = p_2 = 0.6 γ21+γ22=p2=0.6
    γ 11 + γ 21 = q 1 = 0.5 \gamma_{11} + \gamma_{21} = q_1 = 0.5 γ11+γ21=q1=0.5
    γ 12 + γ 22 = q 2 = 0.5 \gamma_{12} + \gamma_{22} = q_2 = 0.5 γ12+γ22=q2=0.5

同时,我们需要最小化移动代价:
Total Cost = γ 11 ⋅ 1 + γ 12 ⋅ 3 + γ 21 ⋅ 1 + γ 22 ⋅ 1 \text{Total Cost} = \gamma_{11} \cdot 1 + \gamma_{12} \cdot 3 + \gamma_{21} \cdot 1 + \gamma_{22} \cdot 1 Total Cost=γ111+γ123+γ211+γ221

步骤 4:解最优分配问题

我们通过简单推导和分配方案,得到一个可能的最优方案:

  1. 0.4 0.4 0.4 的质量从 x 1 = 1 x_1 = 1 x1=1 移动到 y 1 = 2 y_1 = 2 y1=2
  2. 0.1 0.1 0.1 的质量从 x 2 = 3 x_2 = 3 x2=3 移动到 y 1 = 2 y_1 = 2 y1=2
  3. 0.5 0.5 0.5 的质量从 x 2 = 3 x_2 = 3 x2=3 移动到 y 2 = 4 y_2 = 4 y2=4

这个方案符合所有约束条件,接下来我们计算总的移动代价:

Total Cost = ( 0.4 ⋅ 1 ) + ( 0.1 ⋅ 1 ) + ( 0.5 ⋅ 1 ) = 0.4 + 0.1 + 0.5 = 1.0 \text{Total Cost} = (0.4 \cdot 1) + (0.1 \cdot 1) + (0.5 \cdot 1) = 0.4 + 0.1 + 0.5 = 1.0 Total Cost=(0.41)+(0.11)+(0.51)=0.4+0.1+0.5=1.0

因此,Wasserstein距离 W 1 ( P , Q ) = 1.0 W_1(P, Q) = 1.0 W1(P,Q)=1.0

小结

在这个简单的例子中,我们通过最优传输的方式计算了两个离散分布 P P P Q Q Q 之间的Wasserstein距离。Wasserstein距离表示将一个分布转换为另一个分布所需的最小移动成本。在这个案例中,我们发现将 P P P 转换为 Q Q Q 所需的最小成本为1。

假设是两个连续的分布呢?

这个过程可以推广到连续分布和更复杂的多维场景,但其核心思想仍然是通过“最优传输”来测量两个分布的相似性或差异。

当我们考虑连续概率分布之间的Wasserstein距离时,基本思路依然是最优传输问题,不过需要通过积分来计算,而不是简单的质量分配。在这里,我们将以两个连续的概率分布为例,展示如何计算它们的Wasserstein距离

示例:计算两个一维连续分布的Wasserstein-1距离

假设我们有两个定义在实数轴 R \mathbb{R} R 上的概率分布:

  1. 分布 P P P 是一个标准正态分布 N ( 0 , 1 ) \mathcal{N}(0, 1) N(0,1)
  2. 分布 Q Q Q 是一个正态分布 N ( 1 , 1 ) \mathcal{N}(1, 1) N(1,1) ,即均值为1,方差为1。
问题:计算这两个分布的一阶Wasserstein距离 W 1 ( P , Q ) W_1(P, Q) W1(P,Q)

步骤 1:定义Wasserstein距离公式

在一维情况下,如果我们有两个连续分布 P P P Q Q Q累积分布函数(CDF) F P F_P FP F Q F_Q FQ,则一阶Wasserstein距离 W 1 ( P , Q ) W_1(P, Q) W1(P,Q) 可以通过下面的公式计算:

W 1 ( P , Q ) = ∫ − ∞ + ∞ ∣ F P ( x ) − F Q ( x ) ∣   d x W_1(P, Q) = \int_{-\infty}^{+\infty} |F_P(x) - F_Q(x)| \, dx W1(P,Q)=+FP(x)FQ(x)dx

这里的 F P ( x ) F_P(x) FP(x) F Q ( x ) F_Q(x) FQ(x) 分别是 P P P Q Q Q 的累积分布函数。

步骤 2:累积分布函数 (CDF) 的计算

对于正态分布 N ( μ , σ 2 ) \mathcal{N}(\mu, \sigma^2) N(μ,σ2),它的累积分布函数 F μ , σ ( x ) F_{\mu, \sigma}(x) Fμ,σ(x) 是:

F μ , σ ( x ) = 1 2 [ 1 + erf ( x − μ 2 σ ) ] F_{\mu, \sigma}(x) = \frac{1}{2} \left[ 1 + \text{erf} \left( \frac{x - \mu}{\sqrt{2} \sigma} \right) \right] Fμ,σ(x)=21[1+erf(2 σxμ)]

其中 erf ( x ) \text{erf}(x) erf(x) 是误差函数。

对于我们的两个分布:

  • F P ( x ) = F 0 , 1 ( x ) F_P(x) = F_{0, 1}(x) FP(x)=F0,1(x) 是标准正态分布的CDF。
  • F Q ( x ) = F 1 , 1 ( x ) F_Q(x) = F_{1, 1}(x) FQ(x)=F1,1(x) 是均值为1,方差为1的正态分布的CDF。

我们可以将这两个CDF代入公式,并计算它们的差的绝对值。

步骤 3:具体计算

在一维正态分布的情况下,Wasserstein距离可以通过累积分布函数的特性简化计算。对于两个正态分布 P ∼ N ( 0 , 1 ) P \sim \mathcal{N}(0, 1) PN(0,1) Q ∼ N ( 1 , 1 ) Q \sim \mathcal{N}(1, 1) QN(1,1),Wasserstein-1距离 W 1 ( P , Q ) W_1(P, Q) W1(P,Q) 有一个封闭形式的解。

一维正态分布的Wasserstein-1距离可以通过均值之间的差值来直接计算:

W 1 ( P , Q ) = ∣ μ P − μ Q ∣ W_1(P, Q) = |\mu_P - \mu_Q| W1(P,Q)=μPμQ

在这个例子中:

  • μ P = 0 \mu_P = 0 μP=0 (标准正态分布的均值)
  • μ Q = 1 \mu_Q = 1 μQ=1 N ( 1 , 1 ) \mathcal{N}(1, 1) N(1,1) 的均值)

因此:

W 1 ( P , Q ) = ∣ 0 − 1 ∣ = 1 W_1(P, Q) = |0 - 1| = 1 W1(P,Q)=∣01∣=1

结论

对于这两个一维连续正态分布 P = N ( 0 , 1 ) P = \mathcal{N}(0, 1) P=N(0,1) Q = N ( 1 , 1 ) Q = \mathcal{N}(1, 1) Q=N(1,1),它们的一阶Wasserstein距离 W 1 ( P , Q ) = 1 W_1(P, Q) = 1 W1(P,Q)=1

一些拓展

  • 二阶Wasserstein距离(Wasserstein-2 distance) 在高斯分布之间也有封闭形式的解。对于两个正态分布 N ( μ P , σ P 2 ) \mathcal{N}(\mu_P, \sigma_P^2) N(μP,σP2) N ( μ Q , σ Q 2 ) \mathcal{N}(\mu_Q, \sigma_Q^2) N(μQ,σQ2),Wasserstein-2距离的公式是:

    W 2 ( P , Q ) = ( μ P − μ Q ) 2 + ( σ P − σ Q ) 2 W_2(P, Q) = \sqrt{(\mu_P - \mu_Q)^2 + (\sigma_P - \sigma_Q)^2} W2(P,Q)=(μPμQ)2+(σPσQ)2

    这结合了均值和方差之间的差异。

  • 对于更复杂的分布,我们可能需要数值方法来计算Wasserstein距离,例如通过对最优传输问题进行数值优化。

总的来说,Wasserstein距离为我们提供了一种在概率空间中衡量分布之间差异的有效工具,特别是在涉及均值、方差以及分布形状的场景中。


http://www.kler.cn/news/341012.html

相关文章:

  • 支持向量机-笔记
  • Ethernet IP 转 Profinet网关在流量计中的应用
  • vmware下ubuntu18.04中使用笔记本的摄像头
  • 传统的机器学习在自然语言处理领域中对比深度学习和大语言模型有哪些优势?
  • 鸿蒙fork()功能
  • Openstack 安装教程
  • 论文阅读(十二):Attention is All You Need
  • 单片机(学习)2024.10.9
  • LeetCode讲解篇之300. 最长递增子序列
  • 【含开题报告+文档+PPT+源码】基于SpringBoot+Vue的新能源停车场管理系统
  • Leetcode 24 Swap Nodes in Pairs
  • STM32入门
  • 汽车车轮平衡块行业前景:预计2030年全球市场规模将达到10亿美元
  • STM32 HAL库
  • SQL进阶技巧:SQL中的正则表达式应用?
  • 浙大数据结构:08-图8 How Long Does It Take
  • P1903 [国家集训队] 数颜色 / 维护队列
  • 叉车毫米波雷达防撞技术,保护叉车作业安全
  • 图像分类-demo(Lenet),tensorflow和Alexnet
  • 深度学习基础—残差网络ResNets