Skip to content

算法Algorithm

Sinkhorn 矩阵缩放算法

Sinkhorn algorithm · Iterative proportional fitting for transport

交替修正正矩阵的行列边缘,用残差检验可行性,并在小正则参数下改用对数域。

形式陈述 ​

已知熵正则最优计划形如 P=diag(u)Kdiag(v),怎样找出两组正缩放系数?

设 K∈R>0m×n,a,b 为严格正、总和均为一的边缘。取任意 v(0)>0,交替计算

u(k+1)=a⊘(Kv(k)),v(k+1)=b⊘(KTu(k+1)),

其中 ⊘ 表示逐元素相除。令 P(k+1)=diag(u(k+1))Kdiag(v(k+1))。严格正矩阵条件下,计划收敛到具有指定边缘的唯一缩放矩阵;对 Kij=e−Cij/ε,它正是熵正则最优计划。反过来,任意严格正有限矩阵都可取 Cij=−εlog⁡Kij 写成此形式;这里的对数与熵都采用自然单位。系数本身有比例自由度:u 乘常数、v 除同一常数不改变计划。

直觉

固定列缩放 v 时,当前第 i 行总量是 ui(Kv)i,所以把 ui 调成 ai/(Kv)i,就精确修好所有行。同理,固定 u 后修列。第二次修正一般会再次改变行和,因此必须继续交替。

每次更新保持正性以及“对同一个 K 只作行列缩放”的结构。刚修正的一侧边缘精确满足,另一侧逐渐接近。收敛可以直接由相对熵恒等式证明,而不把它当作普通欧氏投影。

为什么交替缩放确实收敛 ​

把初始矩阵 Kdiag(v(0)) 除以其元素总和,记所得严格正概率表为 R。逐次修行、修列得到概率表 Q0=R,Q1,Q2,…;每两步对应算法的一整轮。初始归一化只改变无关的缩放常数。对任意满足两组边缘的 P,以自然对数记 D(P‖Q)=∑Pijlog⁡(Pij/Qij)。一次修行使 log⁡(Qijr+1/Qijr) 只依赖行号,而 P 与 Qr+1 行和相同,故

D(P‖Qr)=D(P‖Qr+1)+D(Qr+1‖Qr).

修列时同理。于是

(1)D(P‖R)=D(P‖QN)+∑r=0N−1D(Qr+1‖Qr).

固定边缘时,D(P‖R) 与本页熵正则目标只差一个正常数倍及加法常数,所以其最小者是已知严格正的唯一计划 P∗。在 (1) 中取 P=P∗,得 D(P∗‖QN) 一致有界。由于每个 Pij∗>0,而所有概率表项不超过 1,这迫使全部 QijN 有共同正下界;否则某项 −Pij∗log⁡QijN 会发散。各步散度非负,其和有界,所以 D(Qr+1‖Qr)→0。

由有限维的Bolzano–Weierstrass 定理,可从迭代矩阵抽取收敛子列。共同正下界使散度在这些矩阵上连续;若相邻两步的差没有趋零,再抽取一对极限就会得到散度为零而两表不同,矛盾。每步精确满足一侧边缘,因此任意子列极限 Q 同时满足两侧边缘。设 (1) 中的部分和趋于 S,沿 QNj→Q 分别取 P=Q 与 P=P∗,得到

D(Q‖R)=S,D(P∗‖R)=D(P∗‖Q)+S.

P∗ 的最优性给第二个左侧不大于第一个左侧,故 D(P∗‖Q)=0,即 Q=P∗。所有子列极限相同,整个计划序列便收敛。这个论证给出收敛性,没有给出与矩阵条件无关的统一迭代轮数。

例子与边界

取

K=(11/21/21),a=(1/2,1/2),b=(1/4,3/4),v(0)=(1,1).

第一轮 u(1)=(1/3,1/3),随后 v(1)=(1/2,3/2),故

P(1)=(1/61/41/121/2).

列和已是 1/4,3/4,行和却是 5/12,7/12。这明确展示“修好列”没有同时保证行。第二轮行缩放为 u(2)=(2/5,2/7),再修列后,行边缘的 L1 残差从 1/6 降为 9/646,列残差仍为零。

实作时应计算

r=max{‖P1−a‖1,‖PT1−b‖1},

而非只观察系数变化。边缘残差控制可行性;若还需严格的目标误差证书,应构造可行计划及相应对偶界。只做固定轮数而不报告残差,无法判断结果是否达到要求。

稠密矩阵每轮两次矩阵向量乘法,时间 O(mn);K 的存储为 O(mn),两组缩放向量为 O(m+n)。迭代轮数还取决于矩阵条件、正则参数与容许误差,不能把总成本也无条件写成 O(mn)。

对数域避免下溢 ​

当 Cij/ε 很大,直接计算 Kij 可能变成机器零。令 f=εlog⁡u、g=εlog⁡v,行更新改写为

fi=εlog⁡ai−εLSEj(gj−Cijε),

列更新同理;LSE(z)=log⁡∑jezj 通过先减最大值稳定计算。零边缘应先删除,真正的零核元素则需要支持可行性条件,不能用除零继续迭代。

推论与应用

Sinkhorn 求解的是给定 ε 的正则问题。即使边缘残差已经很小,仍有熵正则化相对于原输运问题的偏差。对计算报告而言,至少应一起给出 ε、边缘残差和所报告成本的定义,才能让结果可复核。

参考资料
关系图谱9 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系