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

Wasserstein 距离(Wasserstein Distance)

Wasserstein 距离(Wasserstein Distance),也称为Earth Mover's Distance(EMD),是一种用于衡量两个概率分布之间差异的度量方法。它起源于最优传输理论,描述了将一个分布“搬移”成另一个分布所需的最小“工作量”。

一、直观理解

假设有两个分布PQ,分别代表两堆土。Wasserstein 距离描述的是将P这堆土“搬移”成Q这堆土所需的最小代价。这里的“代价”通常用距离和搬运的土量来定义。

数学定义:对于两个概率分布PQ,Wasserstein 距离可以定义为:

W_p(P, Q) = \left( \inf_{\gamma \in \Gamma(P, Q)} \int_{X \times Y} d(x, y)^p \, d\gamma(x, y) \right)^{1/p}

其中:

d(x, y) 是xy之间的距离(通常使用欧几里得距离)。

Gamma(P, Q)PQ的所有联合分布的集合。

gamma(x, y)是联合分布,表示从x搬运到y的“土量”。

p是一个参数,通常取p=1p=2

p=1时,称为1-Wasserstein 距离,是最常用的形式:

W_1(P, Q) = \inf_{\gamma \in \Gamma(P, Q)} \int_{X \times Y} d(x, y) \, d\gamma(x, y)

二、Wasserstein 距离的优点

1. 能够衡量不重叠分布的距离:传统的距离度量(如 KL 散度、JS 散度)在两个分布没有重叠时可能会失效(例如 KL 散度趋于无穷大),而 Wasserstein 距离仍然能够有效衡量分布之间的差异。

2. 反映分布的几何结构:Wasserstein 距离考虑了分布之间的空间关系,能够捕捉分布的几何特性(如形状、位置等)。

3. 适用于低维和高维空间:Wasserstein 距离在低维和高维空间中都有良好的表现,尤其是在生成模型(如 GANs)中。

三、Wasserstein 距离在 GANs 中的应用

在生成对抗网络(GANs)中,Wasserstein 距离被用作损失函数,称为 **Wasserstein GAN(WGAN)。WGAN 的主要改进包括:

1.使用 Wasserstein 距离作为损失函数:传统的 GANs 使用 JS 散度或 KL 散度作为损失函数,容易导致训练不稳定或模式崩溃。Wasserstein 距离能够提供更平滑的梯度,改善训练稳定性。

2. 引入权重裁剪或梯度惩罚:为了满足 Wasserstein 距离的 Lipschitz 连续性条件,WGAN 通过权重裁剪或梯度惩罚(如 WGAN-GP)来约束判别器的梯度。

四、Wasserstein 距离的计算

在实际应用中,Wasserstein 距离的计算通常比较复杂,尤其是对于高维分布。常用的近似方法包括:

1. 对偶形式:通过 Kantorovich-Rubinstein 对偶性,将 Wasserstein 距离转化为一个优化问题:

    W_1(P, Q) = \sup_{\|f\|_L \leq 1} \left( \mathbb{E}_{x \sim P}[f(x)] - \mathbb{E}_{x \sim Q}[f(x)] \right)

     其中f是一个满足 1-Lipschitz 条件的函数。

2. Sinkhorn 算法:通过引入熵正则化,使用 Sinkhorn 迭代算法高效计算 Wasserstein 距离。

Wasserstein 距离是一种强大的概率分布度量方法,能够有效衡量分布之间的差异,尤其在分布不重叠或几何结构复杂时表现优异。它在生成对抗网络(GANs)中的应用显著改善了模型的训练稳定性和生成质量。尽管计算复杂度较高,但通过近似方法(如对偶形式或 Sinkhorn 算法),Wasserstein 距离在实际问题中得到了广泛应用。

相关文章:

  • adb的安装
  • 数据如何安全“过桥”?分类分级与风险评估,守护数据流通安全
  • 软件工程(复习折磨题目版)
  • 墨刀:Axure托管插件登录/注册时出现空白页
  • 解锁状态模式:Java 编程中的行为魔法
  • 什么限制了LLM:空间复杂度限制
  • 【人工智能】数据挖掘与应用题库(1-100)
  • 初阶数据结构(C语言实现)——2算法的时间复杂度和空间复杂度
  • HDFS数据多目录、异构存储、回收站
  • 方法的有关知识(含递归)
  • 爬虫反爬:CSS位置偏移反爬案例分析与实战案例
  • Tornado框架内存马学习
  • PyTorch 源码学习:GPU 内存管理之它山之石——TensorFlow BFC 算法
  • HarmonyOS学习第7天: 文本组件点亮界面的文字魔法棒
  • 【蓝桥杯】每天一题,理解逻辑(1/90)【Leetcode 移动零】
  • 【错误记录】Arrays.asList 的坑
  • 安装react报错
  • Vue 中,使用模板(Template) 和 Render 函数编写组件的区别
  • 数据存储:一文掌握RabbitMQ的详细使用
  • nginx 搭建 IPv6 -> IPv4 反向代理服务器
  • 外媒称菲方允许菲官员窜台,国台办:应停止在台湾问题上玩火
  • 国有六大行一季度合计净赚超3444亿,不良贷款余额均上升
  • 15世纪以来中国文化如何向欧洲传播?《东学西传文献集成初编》发布
  • 外交部:美方应在平等、尊重和互惠的基础上同中方开展对话
  • 华侨城A:一季度营收53.63亿元,净利润亏损14.19亿元
  • 日中友好议员联盟代表团访问中国人民对外友好协会