最优传输问题和Sinkhorn

最优传输问题

假设有 M M M堆土,每堆土的大小是 a m a_m am,有 N N N个坑,每个坑的大小是 b n b_n bn,把单位土从土堆 m m m运送到坑 n n n的代价是 c ( m , n ) c(m,n) c(m,n),如何找到一种运输方法填满坑,并且代价最小,这就是最优传输问题(optimal transport (OT) problem)。

假设有两个概率分布,如何以最小的成本将一种概率分布转换为另一种概率分布,这也是最优传输问题。这个最小的成本可以作为度量两个概率分布的距离,被称为Wasserstein距离,或者推土机距离(Earth Mover’s Distance(EMD))。

在离散的情况下,假设 r , c ∈ R + d \mathbf r, \mathbf c \in \mathbb R^d_+ r,cR+d是两个概率向量,也就是元素求和为1。 1 d \mathbf 1_d 1d是维度为 d d d所有元素为1的向量。
运输多面体(transport polytope ) U ( r , c ) U(\mathbf r,\mathbf c) U(r,c)被定义为:
U ( r , c ) : = { P ∈ R + d × d ∣ P 1 d = r , P ⊤ 1 d = c } U(\mathbf r,\mathbf c) := \{ \mathbf P \in \mathbb R^{d \times d}_+ | \mathbf P \mathbf 1_d = \mathbf r, \mathbf P^\top \mathbf 1_d = \mathbf c\} U(r,c):={PR+d×dP1d=r,P1d=c}给定一个费用矩阵 M ∈ R d × d \mathbf M \in \mathbb R^{d \times d} MRd×d r \mathbf r r c \mathbf c c的最优传输距离被定义为:
d M ( r , c ) : = min ⁡ P ∈ U ( r , c ) < P , M > = ∑ i , j P i j M i j d_{\mathbf M}(\mathbf r, \mathbf c) := \min_{\mathbf P \in U(\mathbf r,\mathbf c)}<\mathbf P, \mathbf M> = \sum_{i,j} \mathbf{P}_{ij} \mathbf{M}_{ij} dM(r,c):=PU(r,c)min<P,M>=i,jPijMij对于一般的矩阵 M \mathbf M M,目前提出的最佳算法在最坏情况下的复杂度是 O ( d 3 log ⁡ d ) O(d^3 \log d) O(d3logd)。在实践中复杂度也被证明是超立方的。

Sinkhorn距离

直接求解最优传输问题的复杂度非常高。为了解决这个问题,考虑在限定的范围内求解。
定义凸集(convex set):
U α ( r , c ) : = { P ∈ U ( r , c ) ∣ K L ( P ∣ ∣ r c ⊤ ) ≤ α } = { P ∈ U ( r , c ) ∣ h ( P ≥ h ( r ) + h ( r ) − α } ⊂ U ( r , c ) U_\alpha(\mathbf r,\mathbf c) := \{\mathbf P \in U(\mathbf r,\mathbf c) | KL(\mathbf P || \mathbf r \mathbf c^\top) \leq \alpha\} = \{\mathbf P \in U(\mathbf r,\mathbf c) | h(\mathbf P \geq h(\mathbf r) + h(\mathbf r) - \alpha\} \subset U(\mathbf r,\mathbf c) Uα(r,c):={PU(r,c)KL(P∣∣rc)α}={PU(r,c)h(Ph(r)+h(r)α}U(r,c)其中 h ( ⋅ ) h(\mathbf \cdot) h()是香浓熵(Shannon entropy):
h ( r ) = − ∑ i r i log ⁡ r i h ( P ) = − ∑ i , j P i j log ⁡ P i j h(\mathbf r) = -\sum_{i}\mathbf r_{i}\log \mathbf r_{i}\\ h(\mathbf P) = -\sum_{i,j}\mathbf P_{ij}\log \mathbf P_{ij} h(r)=irilogrih(P)=i,jPijlogPijSinkhorn distance被定义为: d M , α ( r , c ) : = min ⁡ P ∈ U α ( r , c )   ∑ i , j P i j M i j d_{\mathbf{M},\alpha}(\mathbf{r}, \mathbf{c}) := \min_{\mathbf P\in U_\alpha(\mathbf{r}, \mathbf{c})}\, \sum_{i,j} \mathbf P_{ij} \mathbf M_{ij} dM,α(r,c):=PUα(r,c)mini,jPijMij这是熵约束的最优传输问题。

上面的熵约束的最优传输问题可以通过拉格朗日乘数法(Lagrange multiplier)转换为
d M λ ( r , c ) = min ⁡ P ∈ U ( r , c )   ∑ i , j P i j M i j − 1 λ h ( P ) (1) d_\mathbf{M}^\lambda(\mathbf{r}, \mathbf{c}) = \min_{\mathbf P\in U(\mathbf{r}, \mathbf{c})}\, \sum_{i,j} \mathbf P_{ij} \mathbf M_{ij} - \frac{1}{\lambda}h(\mathbf P) \tag{1} dMλ(r,c)=PU(r,c)mini,jPijMijλ1h(P)(1) d M λ ( r , c ) d_\mathbf{M}^\lambda(\mathbf{r}, \mathbf{c}) dMλ(r,c)被称为dual-Sinkhorn divergence。
通过对偶理论可以知道,对任意 α \alpha α,有一个对应的 λ ∈ [ 0 , ∞ ] \lambda\in[0, \infty] λ[0,]使得 U α ( r , c ) = d M λ ( r , c ) U_\alpha(\mathbf r,\mathbf c) = d_\mathbf{M}^\lambda(\mathbf{r}, \mathbf{c}) Uα(r,c)=dMλ(r,c)
这可以看成为最优传输问题加上熵正则化。
λ → 0 \lambda\rightarrow0 λ0时,上面问题的解是 P i j = r i c j \mathbf P_{ij}=\mathbf r_i \mathbf c_j Pij=ricj;当 λ → ∞ \lambda\rightarrow\infty λ时,回到了原始的最优输运问题。
香浓熵要求分配更加均匀, 参数 λ \lambda λ权衡了按花费分配和平分。

加上熵正则的最优传输问题变得更好计算了,因为解变得平滑。
Sinkhorn定理被用来寻找熵正则化最优输运问题的解。

Sinkhorn定理

Sinkhorn 定理指出每个所有元素为正的方阵都可以写成某种标准形式。
具体而言,假设 A \mathbf A A是一个 n × n n \times n n×n的所有元素为正的方阵,则存在所有元素为正的向量 d 1 \mathbf d_1 d1 d 2 \mathbf d_2 d2,使得 diag ( d 1 ) A diag ( d 1 ) \text{diag}(\mathbf d_1)\mathbf A\text{diag}(\mathbf d_1) diag(d1)Adiag(d1)是双随机(doubly stochastic)的。双随机矩阵是非负实数方阵,且每个行和列求和均为1。 d 1 \mathbf d_1 d1 d 2 \mathbf d_2 d2在常数因子倍上是唯一的。

Sinkhorn算法非常简单,通过迭代的方法,交替地缩放 A \mathbf A A的所有行和所有列使其和为 1。
( d 1 , d 1 ) ← ( 1. / A d 2 , 1. / A ⊤ d 1 ) (\mathbf d_1, \mathbf d_1) \leftarrow (\mathbf 1 ./ \mathbf A \mathbf d_2, \mathbf 1 ./ \mathbf A^\top \mathbf d_1) (d1,d1)(1./Ad2,1./Ad1)

使用Sinkhorn算法求解熵正则化最优输运问题

可以证明公式(1)具有唯一解,且解具有形式 P λ = diag ( u ) K diag ( v ) \mathbf P^\lambda = \text{diag}(\mathbf u)\mathbf K \text{diag}(\mathbf v) Pλ=diag(u)Kdiag(v) u , v \mathbf u,\mathbf v u,v是所有元素为正的向量, K : = e − λ M \mathbf K:=e^{-\lambda \mathbf M} K:=eλM
这可以通过Sinkhorn算法求解。注意这不是原始的Sinkhorn算法,因为 P λ \mathbf P^\lambda Pλ的每个行和列的和由 r \mathbf r r c \mathbf c c确定,而不再是1。
( u , v ) ← ( r . / K v , c . / K ⊤ u ) (\mathbf u, \mathbf v) \leftarrow (\mathbf r ./ \mathbf K \mathbf v, \mathbf c ./ \mathbf K^\top \mathbf u) (u,v)(r./Kv,c./Ku)

参考资料

Wiki Sinkhorn’s theorem
Notes on Optimal Transport
http://alexhwilliams.info/itsneuronalblog/2020/10/09/optimal-transport/
https://zipjiang.github.io/2020/11/23/sinkhorn’s-theorem-,-sinkhorn-algorithm-and-applications.html

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值