sinkhorn algorithm

abstract

sinkhorn knopp algorithm compute D 1 D_1 D1 and D 2 D_2 D2 iteratively normalizing all rows and all columns in A A A.

根据一个非负矩阵 A A A得到一个双重随机矩阵double stochastic matrix。通过对矩阵 A A A进行交替缩放 A A A的行和列,使用两个主对角线正矩阵 D 1 D_1 D1 D 2 D_2 D2使得
B = D 1 A D 2 B=D_1AD_2 B=D1AD2
其中 B B B是双重随机矩阵(行和与列和都为1).
这样的矩阵序列收敛到一个双重随机矩阵的充要条件是矩阵 A A A至少包含以一个正对角线。

  • 存在具有正主对角线的对角矩阵 D 1 D_1 D1 D 2 D_2 D2使得 D 1 A D 2 D_1AD_2 D1AD2是双重随机矩阵并且有限迭代 ↔ \leftrightarrow A ≠ 0 A\neq 0 A=0且A的每个正项都包含在一个正对角线。
  • D 1 A D 2 D_1AD_2 D1AD2是唯一的,并且 D 1 D_1 D1 D 2 D_2 D2是唯一的 ↔ \leftrightarrow A A A是完全 indecomposable。

definitions

  1. A A A是一个非负方阵, σ \sigma σ 是一个排列 1 , … , N {1,\dots, N} 1,,N,那么以元素 a 1 , σ ( 1 ) , … , a N , σ ( N ) a_{1,\sigma (1)},\dots,a_{N,\sigma (N)} a1,σ(1),,aN,σ(N)的序列称为the diagonal of A A A corresponding to σ \sigma σ. If σ \sigma σ is the identify,那么这条对角线称为主对角线。
  2. 一个非负矩阵有一条正对角线,就称为这个矩阵have total support.
  3. A A A is fully indecomposable if it is impossible to find permutation matrices P P P and Q Q Q so that
    P A Q = { A 1 0 A 2 A 3 } PAQ= \left\{ \begin{matrix} A_1 & 0 \\ A_2 & A_3 \end{matrix} \right\} PAQ={A1A20A3}

theorem

A A A是一个非负的 N × N N\times N N×N矩阵。

  1. 存在一个双重随机矩阵 B B B(形如 D 1 A D 2 D_1AD_2 D1AD2),其中 D 1 D_1 D1 D 2 D_2 D2是对角矩阵且是正主对角 ↔ \leftrightarrow A A A has totsl support.
  2. 如果 B B B存在那么就是唯一的。同样 D 1 D_1 D1 D 2 D_2 D2是唯一的对于a scalar multiple 当且仅当 A A A is fully indecomposable.
  3. 交替归一化 A A A的行列将收敛于一个双重随机极限 ↔ \leftrightarrow A has support. 如果A has total support,这个极限可以被描述为 D 1 A D 2 D_1AD_2 D1AD2。如果A has support which is not total,那么这个极限就不能描述为 D 1 A D 2 D_1AD_2 D1AD2
  4. 该算法将以等于 B B B的奇异值的平方的渐近速率线性收敛the algorithm will converge linearly with asymptotic rate equal to the square of the subdominant singular value of B

algorithm

假设有向量 r r r,则 D ( r ) D(r) D(r)表示以 r r r为主对角线元素的对角矩阵。
D 1 = D ( r ) , D 2 = D ( c ) , e = o n e s ( N , 1 ) , A ∈ R N × N D_1=D(r),D_2=D(c),e=ones(N,1),A\in R^{N\times N} D1=D(r),D2=D(c),e=ones(N,1),ARN×N,则有
D ( r ) A D ( c ) e = D ( r ) A c = D ( A c ) r = e D ( c ) A T D ( r ) e = D ( c ) A T r = D ( A T r ) c = e D(r)AD(c)e=D(r)Ac=D(Ac)r=e\\ D(c)A^TD(r)e=D(c)A^Tr=D(A^Tr)c=e D(r)AD(c)e=D(r)Ac=D(Ac)r=eD(c)ATD(r)e=D(c)ATr=D(ATr)c=e
A A A是对程矩阵,则有 r = c = z r=c=z r=c=z,满足 D ( A z ) z = D ( z ) A z = e D(Az)z=D(z)Az=e D(Az)z=D(z)Az=e,SK算法表示为
c k + 1 = D − 1 ( A T r k ) e r k + 1 = D − 1 ( A c k + 1 ) e c_{k+1}=D^{-1}(A^Tr_k)e\\r_{k+1}=D^{-1}(Ac_{k+1})e ck+1=D1(ATrk)erk+1=D1(Ack+1)e
在对称的情况下 z k + 1 = D − 1 ( A z k ) e z_{k+1}=D^{-1}(Az_k)e zk+1=D1(Azk)e.

drawback

所有这些迭代算法的共同缺点是即使在看似简单的情况下也表现出缓慢的收敛行为。
c k + 1 = D − 1 ( A T r k ) e = D − 1 ( A T D − 1 ( A c k ) e ) e , k > = 0 c_{k+1}=D^{-1}(A^Tr_k)e=D^{-1}(A^TD^{-1}(Ac_k)e)e, k>=0 ck+1=D1(ATrk)e=D1(ATD1(Ack)e)e,k>=0
按元素写成
( c k + 1 ) s = ( ∑ m = 1 n a m , s ( ∑ l = 1 n a m , l ( c k ) l ) − 1 ) − 1 (c_{k+1})_s=(\sum^n_{m=1}a_{m,s}(\sum^n_{l=1}a_{m,l}(c_k)_l)^{-1})^{-1} (ck+1)s=(m=1nam,s(l=1nam,l(ck)l)1)1
这等价于一个定点迭代
c k + 1 = T ( c k ) , T ( x ) s = ( ∑ m = 1 n a m , s ( ∑ l = 1 n a m , l x l ) − 1 ) − 1 c_{k+1}=T(c_k), T(x)_s=(\sum^n_{m=1}a_{m,s}(\sum^n_{l=1}a_{m,l}x_l)^{-1})^{-1} ck+1=T(ck),T(x)s=(m=1nam,s(l=1nam,lxl)1)1
也就是解决一个关于非线性计算 T T T的迭代问题
x = T ( x ) , x > = 0 x=T(x), x>=0 x=T(x),x>=0

The optimal transport problem

这个人写得好
https://michielstock.github.io/OptimalTransport/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值