Geeks_Z の Blog Geeks_Z の Blog
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)

Geeks_Z

AI小学生
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)
  • 线性代数

  • 概率论与数理统计

  • 矩阵

  • 分布

    • 统计量及其分布
    • 参数估计
    • 假设检验
    • 先验分布与后验分布
    • 分布度量
    • 交叉熵
    • 最优运输概述
    • Wasserstein距离
      • 推土机距离问题(Earth Mover's Distance)
      • Wasserstein距离
      • 对偶问题
      • 为什么最优传输
    • 基于最优传输的分类损失函数
    • 最优传输之生成模型
    • 最优传输之梯度流
    • 两个多元正态分布的KL散度巴氏距离和W距离
  • 数学笔记
  • 分布
Geeks_Z
2024-11-04
目录

Wasserstein距离

推土机距离问题(Earth Mover's Distance)

假设地面上有 m 个土堆,第 i 个土堆有 ri 数量的土;同时另一边有 n 个坑,第 j 个坑可以容纳 cj 数量的土。假设所有的土能刚好被所有的坑填满,那么就有关系: $$\sum_i{r_i}=\sum_j{c_j}\tag{1.1}$$
我们现在要把土从 m 搬到 n ,传输方案就可以用一个 m×n 的矩阵 Y=[γi,j]m×n 表示,其中 γi,j 表示从第 i 个土堆搬到第 j 个坑的土的数量。

矩阵的第 i 行表示第 i 个土推搬到 n 个坑的分配方案,由于假设刚好能填满,所以有关系: $$r_i=\sum_j{\gamma_{i,j}}\tag{1.2}$$
而矩阵的第 j 列表示第 j 个坑收到 m 个土堆的接收方案,由于假设刚好能被填满,所以有关系: $$c_i=\sum_i{\gamma_{i,j}}\tag{1.3}$$
因此传输方案 Y 满足(1.2)和(1.3)的约束。

假设从 i 到 j 搬运一单位的土需要花费 ci,j ,那么所有的单位花费也能用一个 m×n 的矩阵 C=[ci,j]m×n 来表示。那么传输方案 Y 的总花费可以表示为 W=Y⊙C=∑i,jγi,jci,j ,最优传输的目的就是找到花费最小的传输方案,因此可以写成: $$W[\gamma^*]=\inf_{\gamma} \sum_{i,j}\gamma_{i,j}c_{i,j}\tag{1.4}$$
如果把 m 和 n 进行归一化,也就是 ∑iri=∑jcj=1 ,那么 m 和 n 可以看成两个离散概率分布,搬土的过程就是把分布 pm(i)=ri 搬到 qn(j)=cj ,最优传输就是研究以最小的代价将分布 pm 转化为 qn 。

Wasserstein距离

把上述问题推广到连续的情况,考虑归一化后的情况,那么(1.1)可以改写为: $$\int p(x)dx =\int q(x)dx=1\tag{1.5}$$
(1.2)式为: $$p(x)=\int \gamma(x,y)dy\tag{1.6}$$
(1.3)式为: $$p(y)=\int \gamma(x,y)dx\tag{1.7}$$
在这种情况下,传输方案 γ(x,y) 被赋予了联合概率密度的意义,它保证了“所有的坑能被所有的土填满”这一约束。最终(1.4)式可以写为: $$W[\gamma^]=\inf_{\gamma \in \prod [p,q] } \int \gamma(x,y)c(x,y)dxdy\tag{1.8}$$
由于 γ(x,y) 可以看成联合概率密度(概率测度),因此有的文献还记为: $$W[\gamma^
]=\inf_{\gamma \in \prod [p,q] } \int c(x,y)d\gamma(x,y)\tag{1.8*}$$
因此,最优传输的目的就是在所有可能的联合概率密度里面,找到花费最小的,使之能够以最小的代价把分布从 p(x) 转移到 q(x) 。

如果我们取花费函数为欧式距离时 c(x,y)=∥x−y∥ρ ,记 Wρ=(W[γ∗])1/ρ ,则: $$W^\rho=\left[\inf_{\gamma \in \prod [p,q] } \int \gamma(x,y)|x-y|^\rho dxdy\right]^{1/\rho}\tag{1.9}$$
称为Wasserstein- ρ 距离,若 ρ=1 则: $$W^1=\inf_{\gamma \in \prod [p,q] } \int \gamma(x,y)|x-y| dxdy\tag{1.10}$$

称为Wasserstein距离或者W距离,后面的讨论主要也是以W距离为主。

如果花费为正,那么W距离恒大于等于0;并且当 p(x)=q(x) 时, γ(x,y)=0,x≠y ,而 c(x,y)=0,x=y ,所以W距离此时为0。这说明(1.10)式可以看成一种衡量两个分布 p(x) 和 q(x) 的“距离”,虽然这种“距离”不满足距离空间的定义。

对偶问题

(1.10)是一个带有下确界的优化函数,有时候不好操作,但我们可以利用线性规划的对偶性将其进行转化一下。首先我们可以把 γ(x,y) 和 c(x,y) 拆成无穷长的列向量: $$\Gamma = \begin{bmatrix} \gamma(x_1, y_1) \ \gamma(x_1, y_2) \ \vdots \ \hline \gamma(x_2, y_1) \ \gamma(x_2, y_2) \ \vdots \ \hline \vdots \ \hline \gamma(x_n, y_1) \ \gamma(x_n, y_2) \ \vdots\ \end{bmatrix},\qquad C = \begin{bmatrix} c(x_1, y_1) \ c(x_1, y_2) \ \vdots \ \hline c(x_2, y_1) \ c(x_2, y_2) \ \vdots \ \hline \vdots \ \hline c(x_n, y_1) \ c(x_n, y_2) \ \vdots\ \end{bmatrix} \tag{1.11}$$
那么(1.10)就能写成列向量的内积形式: $$W^1=\inf_{\Gamma } \Gamma \cdot C\tag{1.12}$$
对应的约束(1.6)和(1.7)就可以写为: $$\underbrace{\left[ \begin{array}{ccc|ccc|c|ccc} 1 & 1 & \cdots & 0 & 0 &\cdots & \cdots & 0 & 0 & \cdots \ 0 & 0 & \cdots & 1 & 1 &\cdots & \cdots & 0 & 0 & \cdots \ \vdots & \vdots & \ddots & \vdots & \vdots & \ddots & \cdots & \vdots & \vdots & \ddots \ 0 & 0 & \cdots & 0 & 0 &\cdots & \cdots & 1 & 1 & \cdots \ \hline 1 & 0 & \cdots & 1 & 0 &\cdots & \cdots & 1 & 0 & \cdots \ 0 & 1 & \cdots & 0 & 1 &\cdots & \cdots & 0 & 1 & \cdots \ \vdots & \vdots & \ddots & \vdots & \vdots & \ddots & \cdots & \vdots & \vdots & \ddots \ 0 & 0 & \cdots & 0 & 0 &\cdots & \cdots & 0 & 0 & \cdots \ \end{array} \right]}{A} \underbrace{ \begin{bmatrix} \gamma(x_1, y_1) \ \gamma(x_1, y_2) \ \vdots \ \hline \gamma(x_2, y_1) \ \gamma(x_2, y_2) \ \vdots \ \hline \vdots \ \hline \gamma(x_n, y_1) \ \gamma(x_n, y_2) \ \vdots\ \end{bmatrix}}{\Gamma} = \underbrace{\left[ \begin{array}{c} p(x_1) \ p(x_2) \ \vdots \ p(x_n) \ \hline q(y_1) \ q(y_2) \ \vdots \ q(y_n) \ \end{array} \right]}{b} \tag{1.13}$$
那么最终(1.10)就可以写成线性规划的形式: $$\min
{\Gamma} \left{ \Gamma\cdot C \mid A\Gamma = b, \Gamma \geq 0 \right}\tag{1.14}$$
根据线性规划的(强)对偶性(可以参考《https://zhuanlan.zhihu.com/p/681165783 (opens new window)》): $$\min_{x} {c^T x \mid Ax = b, x \geq 0}=\max_{y} {b^T y \mid A^T y \leq c} \tag{1.15}$$
(1.14)的对偶问题为: $$\max_{F} {b^T F \mid A^T F \leq C}\tag{1.16}$$
其中, F 是跟 b 形状一致的列向量。

为什么最优传输

那么我们为什么要计算 optimal transport 呢?如果为了 measure 概率分布之间的距离,有很多现成的 measurements 可以用, 比如非常简单的 KL 散度:

KL(p,q)=∑ipi⋅log⁡piqi

除了 “无法处理两个分布的支撑集不相交的情况”以及“不满足对称性” 等原因之外,一个重要的原因就是这种 逐点计算的度量 没有考虑分布内的结构信息。 所谓的结构信息,就是分布内的联系。例如在 KL 散度中,pi,i=0,1,... 彼此之间都是独立计算最后加起来的, 而大部分情况下它们并不是独立的。

就以我们常见的分类任务为例,分类任务通常用交叉熵损失来度量模型预测和样本标签之间的距离, 交叉熵损失实际上就是在计算 onehot 化的标签和模型预测之间的 KL 散度。 这种逐点计算的损失函数(不论是交叉熵还是 L2)都无法考虑分布内不同事件的相关性。 例如将“汽车”误分类成“卡车”显然没有把“汽车”误分类成“斑马”严重。 但是用 KL 散度来度量的话,这两种错误的损失是一样的。

概率分布内的结构信息可以通过最优传输的距离矩阵 M “嵌入” 到距离度量中。 还是以分类为例,我们可以让 汽车卡车m汽车,卡车 远小于 汽车斑马m汽车,斑马 。

  • Diffusion学习笔记(十七)——最优传输与Wasserstein距离 (opens new window)
上次更新: 2025/06/25, 11:25:50
最优运输概述
基于最优传输的分类损失函数

← 最优运输概述 基于最优传输的分类损失函数→

最近更新
01
帮助信息查看
06-08
02
常用命令
06-08
03
学习资源
06-07
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Geeks_Z | MIT License
京公网安备 11010802040735号 | 京ICP备2022029989号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式