计算最优传输 · 互动教材
怎样用最小的力气把一堆沙子堆成另一种形状?最优传输(optimal transport, OT)用这个问题定义了概率分布之间的距离,并发展出 Sinkhorn 等可以大规模计算的算法。这份中文互动教材少公式、多图形:每个概念都配有可以动手操作的演示,保留原书编号与英文术语,方便对照原书。
内容整理自 Gabriel Peyré & Marco Cuturi, Computational Optimal Transport, Foundations and Trends in Machine Learning 11(5–6), 2019(arXiv:1803.00567v4)。灰色小标签为原书的公式/命题/图编号。
- 左侧目录切换章节;进入章节后可展开小节快速跳转。左上角搜索框可搜索小节标题和术语。
- 每章开头的「⚡ 一分钟速览」和「🗺 本章地图」先帮你建立全局印象,再逐节深入。
- 带 ⚙ 标记的是交互演示:拖动图中的点、滑块或点击按钮,观察图形与数值如何变化;「👀 观察」提示告诉你该注意什么。
- 灰色小标签是原书编号,方便对照英文原书:如 (4.15) 是公式、Prop. 2.4 是命题、Rem. 2.13 是注记、Fig. 4.2 是插图;术语首次出现附英文。
- 证明与推导默认折叠,想深究时再展开;点击术语卡片可翻面;测验题选择后立即给出解释。
- 右上角 ☾/☀ 切换明暗主题;已读章节会在目录中标记。
上排是原书所说的主线(第 2、3、4、9、10 章只需要直方图/离散测度就能读懂和实现);下排第 5–8 章讨论连续与离散测度的交互,数学要求更高。点击方块跳到对应章节。
- 问题:把分布 $a$ 的质量搬成分布 $b$,每单位质量从 $i$ 搬到 $j$ 的代价是 $C_{ij}$,求总代价最小的搬运方案(耦合 $P$)。最小代价(开根号后)就是 Wasserstein 距离。
- 精确求解是一个线性规划(第 3 章:网络单纯形、拍卖算法),规模一大就很慢。
- 熵正则化(第 4 章)把问题变光滑,得到极其简单、可并行的 Sinkhorn 迭代——这正是 OT 走进机器学习与图像处理的关键。
| 只想会用 | 1 → 2(2.1–2.4 为主)→ 4 → 9,按需查 3、10。 |
|---|---|
| 想系统掌握 | 按章节顺序读;第 5–8 章的「进阶」折叠框可在第二遍时再展开。 |
| 对照原书 | 灰色小标签是原书编号,例如 (4.15) 为公式、Prop. 2.4 为命题、Fig. 4.2 为插图。 |
目录
绪论 Introduction
怎样用最小的力气,把一堆沙子堆成另一种形状?这个 1781 年的工程问题,今天成了比较概率分布的核心工具。本章用几个可以动手的小演示讲清:最优传输在求什么、它为什么重要、这本书怎么读、书里的记号怎么看。
- 用 Monge 的“铲沙子”故事说清最优传输在求什么:两个分布、局部代价、全局代价、最省力的搬运方案。
- 亲手调整一个 3 仓库 → 3 商店的运输方案,理解“运输方案 = 耦合矩阵 $\mathbf{P}$”以及它的行和、列和约束。
- 直观感受:最优传输给出的距离“懂得”地面的远近;OT 插值是“把沙搬过去”,而不是“淡出再淡入”。
- 了解最优传输从 Monge(1781)到熵正则化快速算法的主要里程碑,以及本书“计算优先 + 三层叙述”的写法。
- 熟悉全书记号:$\Sigma_n$、$\mathbf{a},\mathbf{b}$、$\alpha,\beta$、$\mathbf{C}$、$\mathbf{P}\in\mathbf{U}(\mathbf{a},\mathbf{b})$、$T_\sharp\alpha$、$\mathbf{f},\mathbf{g}$、$\mathbf{K}$、$\oplus$、$\otimes$、$\odot$ 等。
- 问题:把一堆沙(一个概率分布)搬成另一堆(另一个分布),总量相同,怎样搬最省力?这就是最优传输(optimal transport, OT)。
- 两层代价:“局部代价” $c(x,y)$ 是把一粒沙从 $x$ 搬到 $y$ 的花费;一个搬运方案的“全局代价”是所有局部代价的总和;OT 在所有方案里找全局代价最小的那个。
- 为什么重要:这个最小代价本身就是分布之间的一种距离,而且继承了底层空间的几何——插值、重心、梯度等概念都能搬到“分布的空间”里。
- 历史:Monge 1781(工程)→ Tolstoi、Hitchcock、Kantorovich、Koopmans(物流与经济)→ Dantzig 1949(线性规划)→ Brenier 1991(分析)→ 推土机距离 EMD(计算机视觉)→ 熵正则化快速算法(数据科学)。
- 本书视角:偏重数值方法。正文只讲直方图 $\mathbf{a}\in\Sigma_n$;浅灰框讲离散测度(权重 + 位置);深灰框讲一般测度。第 5–8 章偏数学。
- 记号口诀:粗体 = 向量/矩阵(离散);花体 = 一般测度版本;$\mathbf{C}$ 代价、$\mathbf{P}$ 方案、$\langle\mathbf{C},\mathbf{P}\rangle$ 总代价、$\mathrm{L}_{\mathbf{C}}(\mathbf{a},\mathbf{b})$ 最优值、$\mathrm{W}_p$ 距离;$\mathbf{f},\mathbf{g}$ 对偶势,$\mathbf{u},\mathbf{v},\mathbf{K}$ 属于 Sinkhorn 算法。
1·1 搬沙子的问题:什么是最优传输 Abstract
这一节回答全书最基本的问题:最优传输到底在求什么?我们跟着原书摘要里 Monge 的铲土工人,把一个工程小问题一步步抽象成“比较两个概率分布”的数学问题,再用几个小演示提前感受它为什么在今天如此有用。Abstract
Monge 的铲土工人 A worker with a shovel
原书开篇借用了法国数学家 Gaspard Monge(加斯帕尔·蒙日,1746–1818)的说法:工地上有一大堆沙子,一位手持铁铲的工人要用全部这些沙子堆出一个形状事先规定好的目标沙堆——比如一座巨大的沙堡。她当然希望总力气最小,力气可以用“每一铲沙搬运的距离之和”或“花掉的总时间”来衡量。
下面的演示把工地画成侧视图:彩色方块是现在的沙堆,每个方块代表一铲沙;虚线轮廓是要堆成的沙堡。两者体积相同(都是 42 铲),而且沙堡的左塔恰好压在沙堆的右坡上——真实工地上挖方和填方区域往往也是交错的。
点「播放」看工人一铲一铲地把沙堆搬成虚线所示的沙堡(每格宽 1 米)。颜色表示这铲沙原来在沙堆的哪一段(左→右:蓝、绿、黄、红),所以堆好的沙堡上的颜色排列就“记录”了搬法。切换「搬法」与「局部代价」,比较下方各方案的总代价。
同样是把沙堆变成沙堡,搬法不同,总代价可以差很多:在“距离²”下,反着搬比最优方案多花 50% 以上,随手乱搬通常也要多花两三成。最优方案堆好的沙堡上,颜色仍然按“蓝→绿→黄→红”从左到右排列——搬运路线互不交叉。再切换局部代价:用“距离”时各方案差距几乎消失;用“√距离”时,“按顺序配对”反而不再最优。局部代价怎么定,决定了哪种搬法最省力。
从沙堆到概率分布 Comparing two probability distributions
数学家把这个问题换一种说法:两堆沙就是两个概率分布(probability distribution)——只要把总量都规定为 1。“沙子在哪里、有多少”对应“概率质量在哪里、有多少”;把每一列的铲数除以总铲数 42,就得到一个非负、总和为 1 的向量,也就是一个直方图(histogram)。“两堆沙体积相同”对应“两个分布的总质量都是 1”。
接着,原书用了两个关键的词:
- 局部代价(local cost):把一粒沙从位置 $x$ 搬到位置 $y$ 要花多少,记作 $c(x,y)$。它由“地面”空间的几何决定,所以书中叫它地面代价(ground cost)。
- 全局代价(global cost):一种搬法(运输方案transport plan)规定“哪里的沙搬去哪里、搬多少”,把所有局部代价按搬运量加起来,就是这种搬法的总代价。
“把第一堆变成第二堆”的方式有无穷多种;数学家关心的是其中最便宜的那一种:它有什么性质?怎样高效地算出来?下面用一个只有 3 个位置的小例子,把这几步走一遍。
第 1 步:两堆沙 = 两个直方图
把总量归一化为 1。源沙堆在位置 1、2、3 上分别有 0.5、0.3、0.2 的沙,记作直方图 $\mathbf{a}=(0.5,0.3,0.2)$;目标沙堡在位置 2、3、4 上分别需要 $\mathbf{b}=(0.2,0.4,0.4)$。两者总量都是 1——这就是“体积相同”。
第 2 步:局部代价排成一张表
规定把一单位沙从 $x$ 搬到 $y$ 的代价为 $c(x,y)=|x-y|^2$(这里选距离的平方)。把所有“源位置 × 目标位置”的代价排成矩阵,就是代价矩阵 $\mathbf{C}$。例如从位置 1 搬到位置 4:$\mathbf{C}_{1,3}=c(1,4)=3^2=9$。
第 3 步:一个搬运方案也是一张表
方案用矩阵 $\mathbf{P}$ 表示:$\mathbf{P}_{i,j}$ = 从第 $i$ 个源位置搬到第 $j$ 个目标位置的沙量。每处的沙要恰好搬完(行和 = $\mathbf{a}$),每处的坑要恰好填满(列和 = $\mathbf{b}$)。注意一处的沙可以拆开送往几处——第 1 行就拆成了两份。
第 4 步:全局代价 = 单价 × 运量,再求和
把代价表和方案表对应格子相乘再全部加起来:$\langle\mathbf{C},\mathbf{P}\rangle=\sum_{i,j}\mathbf{C}_{i,j}\mathbf{P}_{i,j}=3.3$。图里有互相交叉的路线:位置 1 的沙跑去了最远的 4,而位置 3 的沙却往回走——这往往是浪费的信号。
第 5 步:在所有方案里取最小
在所有满足行和、列和约束的方案中,总代价最小的是右图这个:2.5,路线互不交叉。这个最小值记作 $\mathrm{L}_{\mathbf{C}}(\mathbf{a},\mathbf{b})$。因为这里的代价是距离的平方,它的平方根 $\sqrt{2.5}\approx 1.58$ 就是这两个分布之间的 2-Wasserstein 距离(第 2 章 §2.4 细讲)。
给定两个总量相同的分布(源与目标)和一个地面代价 $c(x,y)$。一个运输方案规定每个源位置的质量分别送往哪些目标位置、各送多少;它的总代价是所有“局部代价 × 运量”之和。最优传输就是所有运输方案中总代价最小的那个;这个最小值记作 $\mathrm{L}_{\mathbf{C}}(\mathbf{a},\mathbf{b})$(直方图)或 $\mathcal{L}_c(\alpha,\beta)$(一般测度)。
精确的数学定义是第 2 章的 Kantorovich 问题 (2.11)(直方图)与 (2.15)(一般测度);本章只需要这个直观版本。
亲手试一试:3 个仓库,3 家商店 A tiny transport problem
“搬沙子”也可以是“运货”。原书第 2 章用“仓库与工厂”的例子解释最优传输 Rem. 2.10,这正是 Hitchcock 1941 年研究的运输问题。下面是一个缩小版:3 个仓库分别存有 40、35、25 吨货,3 家商店分别需要 35、30、35 吨;每条路线的运费单价(元/吨)约等于两地距离(公里)取整。你来当调度员:在表格里填运量,看总运费能压到多低。
在表格中修改运量(每格旁边的小字是该路线的单价):地图上线越粗运量越大,右侧量表显示你的总运费落在“最优”与“最差”之间的哪个位置。行和必须等于供给、列和必须等于需求,否则方案不可行。也可以先点按钮载入一个方案再微调。
| 运量(吨) | S1需求 35 | S2需求 30 | S3需求 35 | 行和 / 供给 |
|---|---|---|---|---|
| W1供给 40 | 单价 3 | 单价 5 | 单价 7 | |
| W2供给 35 | 单价 2 | 单价 4 | 单价 3 | |
| W3供给 25 | 单价 6 | 单价 2 | 单价 3 | |
| 列和 / 需求 |
“西北角法”(335 元,从表格左上角开始依次填满)和“先填最便宜路线”的贪心法(390 元)都给出可行方案,但都不是最优;最优是 285 元。贪心法先把两条单价为 2 的路线填满,结果把 W1 剩下的 35 吨货逼上了单价 7 的最贵路线——每一步都省 ≠ 整体最省,这就是需要“优化算法”的原因。另外注意:3×3 的方案表里只有 4 个格子能自由填,其余 5 个被行和、列和“锁死”(见习题 1.4)。
把这个小游戏翻译成本书的记号(1·3 节会系统整理),你会发现后面各章反复出现的符号,其实你已经全部“用过”了:
| 演示里的东西 | 本书记号 | 说明 |
|---|---|---|
| 供给 40、35、25(除以总量 100) | $\mathbf{a}=(0.40,0.35,0.25)\in\Sigma_3$ | 源直方图 |
| 需求 35、30、35(除以 100) | $\mathbf{b}=(0.35,0.30,0.35)\in\Sigma_3$ | 目标直方图 |
| 运费单价表 | $\mathbf{C}\in\mathbb{R}^{3\times 3}$ | 代价矩阵,$\mathbf{C}_{i,j}=c(x_i,y_j)$ |
| 你填的运量表 | $\mathbf{P}$ | 运输方案,又叫耦合矩阵(coupling) |
| 行和 = 供给,列和 = 需求 | $\mathbf{P}\in\mathbf{U}(\mathbf{a},\mathbf{b})$ | 所有可行方案组成的集合 |
| 总运费 | $\langle\mathbf{C},\mathbf{P}\rangle=\sum_{i,j}\mathbf{C}_{i,j}\mathbf{P}_{i,j}$ | 矩阵的 Frobenius 内积 |
| 最低总运费 | $\mathrm{L}_{\mathbf{C}}(\mathbf{a},\mathbf{b})$ | 最优值:按吨计 285 元,归一化后为 2.85 |
- “最优方案一定是一对一的:每个仓库只给一家商店送货。” 不对。上面的最优方案里 W1 同时给 S1、S2 送货。允许把一处的货物拆分到多处,正是 Kantorovich 的关键想法(第 2 章 §2.3);Monge 当年的问题不允许拆分,因此难得多。
- “先用最便宜的路线就能得到最优。” 不对。演示里的贪心法比最优多花约 37%。代价是全局的,必须整体考虑。
运输方案矩阵 $\mathbf{P}$ 的第 $i$ 行所有元素之和必须等于什么?
最小代价本身就是一种“距离” A distance between distributions
原书摘要说:这个最小代价不仅定义了分布之间的一种距离,还在“所有概率分布组成的空间”上带来了丰富的几何结构;而且这种结构是自然的(canonical)——它借用了分布所在的地面空间(ground space)的几何性质。什么意思?看一个最简单的实验:把一个峰一点点向右平移,看不同的“距离”怎么反应。
拖动红色峰顶的圆点(或用滑块)把 $\mathbf{b}$ 向右平移 $s$。上图:直方图 $\mathbf{a}$(蓝)、$\mathbf{b}$(红)与搬运箭头;下图:三种距离随平移量 $s$ 的变化(每条曲线除以自己在 $0\le s\le 0.7$ 上的最大值,只比较形状),竖虚线是当前位置。
OT 距离 $\mathrm{W}_1$ 与平移量成正比:峰搬得越远,距离越大。逐格比较的 $L^1$、$L^2$ 距离只看“同一个格子里两个直方图差多少”,两峰一旦不再重叠就到达上限、再也不变——它们分不清“隔壁”和“天涯”;KL 散度更极端,峰稍微一挪就变成无穷大。这就是“OT 继承了地面几何”的含义;第 8 章会系统比较这几类距离与散度。
分布空间里的几何:插值与重心 Interpolation and barycenters
有了距离,还能在分布之间“走路”。原书举例说:当地面空间是欧氏空间时,插值(interpolation)、重心(barycenter)、凸性(convexity)、函数的梯度(gradients of functions)这些概念,都能自然地推广到装备了 OT 几何的分布空间。下面比较两种从 $\mathbf{a}$ 走到 $\mathbf{b}$ 的方式。
拖动滑块 $t$ 或点「播放」。上图是 OT 插值:沿最优方案把每粒沙从起点搬向终点,走完比例 $t$;下图是线性混合 $(1-t)\mathbf{a}+t\mathbf{b}$。虚线是起点 $\mathbf{a}$(蓝)与终点 $\mathbf{b}$(红)。
线性混合是“淡出 + 淡入”:中途总有两个峰,一个在变矮、一个在变高。OT 插值是“把沙搬过去”:中途只有一个峰在滑动,宽度也逐渐变成目标的宽度;目标选“两个峰”时,它会平滑地一分为二。两种方式的平均位置(均值)其实一样,差别全在形状上。$t$ 可以看作重心权重 $\lambda=(1-t,\,t)\in\Sigma_2$:OT 插值恰好就是 $\mathbf{a}$、$\mathbf{b}$ 按这组权重的 Wasserstein 重心。
这本书关心什么 What this survey covers
摘要最后一段交代了本书的定位:以数值方法为主线,只讲那些能指导算法设计的理论性质;重点介绍最近这一波让 OT 在数据科学中流行起来的高效算法;给近几年提出的各种推广留出显著篇幅,并把它们与统计推断、核方法、信息论中的相关方法联系起来。书中所有插图都能用配套网站(optimaltransport.github.io)上的代码复现,那里还有幻灯片等资源。
数值方法 numerical methods
线性规划与网络单纯形、拍卖算法(第 3 章);熵正则化与 Sinkhorn(第 4 章);半离散与随机优化(第 5 章);图上的最小费用流(第 6 章);动态形式的求解器(第 7 章)。
各种推广 generalizations
多边缘问题、非平衡 OT(质量可以产生或消失)、切片 Wasserstein、Gromov–Wasserstein(在不同空间之间匹配)等(第 10 章)。
在 Monge 的沙堆故事里,“两堆沙体积相同”对应数学上的哪个要求?
把一个峰从 0.2 平移到 0.8(两峰早已不再重叠),再继续平移到 0.9。下列哪个量还会继续增大?
- OT = 两个总量相同的分布 + 一个地面代价 + 质量守恒约束;在所有运输方案里找总代价最小的。
- 运输方案是一张表 $\mathbf{P}$:行和 = 源分布,列和 = 目标分布;总代价 $\langle\mathbf{C},\mathbf{P}\rangle$。
- 最小代价是分布之间的距离,并继承地面空间的几何:峰移得越远距离越大;插值是“搬运”而不是“混合”。
1·2 历史脉络与本书视角 Introduction
这一节回答三个问题:最优传输为什么会在两百多年里被一再重新发现?它和日常生活有什么关系?这本书站在什么视角、应该怎么读?Introduction
最短路径原理:从“一个”到“一群” The shortest path principle
原书引言从一个朴素的原则说起:最短路径原理(shortest path principle)主导着生活与科学中的大多数决策——一件商品、一个人或一个比特的信息要从某处送到另一处,就应该尽量少费力气。在平面上这意味着走直线,在更复杂的度量空间里意味着走测地线(geodesic)。
最优传输把这个直觉推广到“同时搬运很多件物品(甚至是连续分布的物品)”的情形:从一种配置(configuration)搬成另一种配置。正如老师们都深有体会的——安排一群学生走到指定的位置(每人到了要恰好站成规定的队形),比带一个学生过去复杂得多。以“群体”或“分布”为单位来思考,需要更高级的数学形式,这最早见于 Monge 1781 年的开创性工作。
这个问题和日常生活联系紧密:无论运人、运货还是传输信息,很少只搬一件东西。物流、生产计划、网络路由这些重要的经济问题,都是在“搬运分布”。难怪最优传输的几篇奠基性文献——Tolstoi(1930)、Hitchcock(1941)、Kantorovich(1942)——都源于实际需要。
一再被重新发现的理论 A rich history
原书说,OT 在许多场合、以不同形式被(重新)发现,因而有着丰富的历史。下面的时间轴按原书摘要与引言的线索整理,每个节点都注明它在本书哪里再次出现。
点击节点,或用「上一个 / 下一个」「自动导览」浏览每个里程碑:谁、为了解决什么问题、贡献了什么、在本书哪一章出现。底部色带标出六个时代。
注意两段长长的“空白”:Monge 之后一百五十年无人问津,直到物流与经济学的实际需要让它复活;1949 年有了算法之后,又过了约四十年,Brenier 等分析学家才发现它与凸性、偏微分方程、统计的深刻联系。每一次“复活”都来自一个新领域的新需求——最近一次来自数据科学,靠的是能处理大规模问题的快速近似算法。
| 时代 | 代表人物 | 动机与贡献 | 本书位置 |
|---|---|---|---|
| 1781 · 工程 | Monge | 土方调配:挖出的土怎样运去填方最省力;要求每块土整块运到一处(不可拆分) | §2.2,第 6 章 |
| 1920–40 年代 · 物流与经济 | Tolstoi、Hitchcock、Kantorovich、Koopmans | 运输与资源配置;Kantorovich 允许拆分,把问题化为线性规划 | §2.3,Rem. 2.10 |
| 1949 · 优化 | Dantzig | 在线性规划框架下数值求解(单纯形法),OT 在优化中站稳脚跟 | 第 3 章 |
| 1990 年代 · 分析 | Brenier 等 | 发现与凸性、偏微分方程、统计的深刻联系 | Rem. 2.24,第 7 章 |
| 约 2000 · 计算机视觉 | Rubner 等 | 以“推土机距离”(EMD)之名比较图像的特征直方图(bags-of-features) | §2.4,第 6 章 |
| 近年 · 数据科学 | Cuturi 等 | 可扩展到大规模问题的近似求解器(熵正则化 + Sinkhorn) | 第 4 章起 |
今天用在哪里 Applications
摘要列举了近年 OT 大显身手的三个领域。它们的共同点是:要比较或变换的对象本身就是“分布”——一张图的颜色、一个形状上的点、一批数据样本。
图像科学 imaging sciences
一张图片的所有像素颜色构成“颜色空间里的一堆沙”。把一张照片的配色搬成另一张的配色,就是颜色迁移;纹理的统计特征也可以用 OT 比较与合成。
图形学 graphics
把形状看成均匀铺在其上的质量,形状之间的插值与变形就成了分布之间的位移插值与重心(第 9 章的形状重心图)。
机器学习 machine learning
用于回归、分类与生成模型:用 Wasserstein 距离衡量“模型生成的分布”与“真实数据分布”差多远,并以此训练模型(第 9 章 §9.4)。
本书的视角:计算优先 A computational viewpoint
引言接着说:到了 1980 年代以后,数学家们(尤其是 Brenier 1991 年的工作)发现这一理论是研究的沃土,与凸性、偏微分方程、统计都有深刻联系;世纪之交,计算机、图像乃至更广泛的数据科学研究者意识到,OT 提供了研究分布的强大工具——他们手里的数据恰好常以特征包(bags-of-features)或描述子(descriptors)的分布形式出现。
已有好几本 OT 专著,理论部分本身就值得几百页。既然 OT 已逐步成为一种应用工具,两位作者(Gabriel Peyré 与 Marco Cuturi)选择用计算的视角来平衡这些文献,重心放在数据科学(特别是图像科学与机器学习)上:先概述支撑 OT 实际有效性的主要理论洞见,再花更多篇幅讲如何把这些洞见变成快速的计算方案。
| 参考书(原书引言提到) | 特点 | 什么时候去翻 |
|---|---|---|
| Villani (2003) Topics in Optimal Transportation | 经典理论入门 | 想系统学测度论版本的 OT |
| Villani (2009) Optimal Transport: Old and New | 近千页的理论巨著 | 几何与分析方面的深入问题 |
| Rachev & Rüschendorf (1998) Mass Transportation Problems(两卷) | 理论与应用并重 | 概率与应用方面的细节 |
| Santambrogio (2015) Optimal Transport for Applied Mathematicians | 面向应用数学 | 变分法、偏微分方程方向 |
| Galichon (2016) Optimal Transport Methods in Economics | OT 在经济学中的应用 | 匹配市场、计量经济学 |
| Kolouri et al. (2017) 综述 | 信号处理与机器学习应用 | 本书沿用其动机,但覆盖面更广 |
| 本书:Peyré & Cuturi Computational Optimal Transport | 计算优先:算法 + 支撑算法的理论 | 想把 OT 算出来、用起来 |
三层叙述:直方图、离散测度、一般测度 Three layers of exposition
这是读这本书最重要的一条“使用说明”。原书把同一套内容分三层来写:
- ① 正文:第 2、3、4、9、10 章的主体只研究最优传输在概率向量(离散直方图)空间上诱导的几何。
- ② 浅灰框:面向更进阶的读者,在同样几章里给出针对离散测度(discrete measures)的更一般的叙述。离散测度不仅由概率权重决定,还由这些权重所在的位置决定;位置通常取在连续的度量空间里——这为刻画随机现象提供了“第二个重要的自由度”。
- ③ 深灰框:最技术性的一层,处理任意测度——不必是离散的,特别地可以关于某个基准测度有密度。这是大多数经典 OT 教材的默认设定,但在实际应用中通常没那么重要。第 5–8 章讨论连续测度与离散测度之间的相互作用,因此面向数学更强的读者。
第 ③ 层(最下)是一个连续的“沙堆”(有密度)。用滑块 n 把它切成 n 份,或从中随机抽 n 个样本,得到第 ② 层的离散测度(竖线 = Dirac 质量,高度 = 权重);再丢掉位置、只留权重,就是第 ① 层的直方图。可以左右拖动第 ② 层竖线顶端的圆点:位置变了,直方图却纹丝不动。
“等宽切分”时,位置等距、形状信息全在权重里;“随机抽样”时,第 ① 层的直方图变成一排一样高的柱子(每个都是 1/n),形状信息全在位置里——只看直方图完全看不出沙堆长什么样。这就是原书说位置是“第二个重要自由度”的意思。n 越大,第 ② 层越接近第 ③ 层的连续沙堆。
同一个“最优传输”,在三层里写出来长这样(切换选项卡对照):
| 分布 | $\mathbf{a}\in\Sigma_n,\ \mathbf{b}\in\Sigma_m$:只有权重,没有位置 |
|---|---|
| 代价 | 直接给定的矩阵 $\mathbf{C}\in\mathbb{R}^{n\times m}$(格子 $i$ 与格子 $j$ 之间的“替换代价”) |
| 方案 | 矩阵 $\mathbf{P}\in\mathbf{U}(\mathbf{a},\mathbf{b})$:非负,行和为 $\mathbf{a}$,列和为 $\mathbf{b}$ |
| 总代价 | $\langle\mathbf{C},\mathbf{P}\rangle=\sum_{i,j}\mathbf{C}_{i,j}\mathbf{P}_{i,j}$,最优值 $\mathrm{L}_{\mathbf{C}}(\mathbf{a},\mathbf{b})$ (2.11) |
| 在书中 | 第 2、3、4、9、10 章正文;实现第 3、4 章的算法只需要这一层(第 2 章开头语) |
| 分布 | $\alpha=\sum_i \mathbf{a}_i\delta_{x_i}$:权重 + 位置 $x_i\in\mathcal{X}$($\delta_x$ 是位于 $x$ 的单位质量)(2.1) |
|---|---|
| 代价 | 由位置算出:$\mathbf{C}_{i,j}=c(x_i,y_j)$ |
| 方案 | 仍是矩阵 $\mathbf{P}$,对应耦合 $\pi=\sum_{i,j}\mathbf{P}_{i,j}\delta_{(x_i,y_j)}$ |
| 总代价 | $\sum_{i,j}c(x_i,y_j)\,\mathbf{P}_{i,j}$ |
| 新自由度 | 可以移动位置:例如点云匹配、用梯度下降移动样本点(第 9 章) |
| 分布 | 任意测度 $\alpha$,可以有密度 $\rho_\alpha=\frac{\mathrm{d}\alpha}{\mathrm{d}x}$(连续的沙堆) |
|---|---|
| 代价 | 函数 $c(x,y)$,定义在 $\mathcal{X}\times\mathcal{Y}$ 上 |
| 方案 | $\mathcal{X}\times\mathcal{Y}$ 上的耦合测度 $\pi\in\mathcal{U}(\alpha,\beta)$:$\pi(A\times\mathcal{Y})=\alpha(A)$,$\pi(\mathcal{X}\times B)=\beta(B)$ |
| 总代价 | $\int_{\mathcal{X}\times\mathcal{Y}}c(x,y)\,\mathrm{d}\pi(x,y)$,最优值 $\mathcal{L}_c(\alpha,\beta)$ (2.15) |
| 在书中 | 深灰框(进阶);第 5–8 章讨论连续与离散的相互作用 |
全书路线图 Roadmap of the book
结合原书引言的说明(第 2、3、4、9、10 章正文讲直方图;第 5–8 章讲连续与离散的相互作用)和各章开头的介绍,可以把全书画成下面这张图。
把鼠标移到章节方块上(或用 Tab 键聚焦),下方显示该章讲什么、主要用到哪几章,图中会同时高亮这些前置章节;点击方块直接跳到该章。按钮可以高亮两条阅读路线。
第 2 章是所有章节的地基;第 3 章(精确算法)和第 4 章(熵正则化)是两大计算工具,后面许多章都会用到,尤其是第 4 章。第 5–8 章各自深入一个“连续 ↔ 离散”的专题,可以按兴趣选读。
| 章 | 主题 | 一句话 | 主要叙述层 |
|---|---|---|---|
| 2 | 理论基础 | Monge 与 Kantorovich 问题、Wasserstein 距离、对偶、一维与高斯等特例 | 三层都有 |
| 3 | 算法基础 | 把 OT 当线性规划精确求解:C-变换、网络单纯形、对偶上升、拍卖算法 | 直方图 |
| 4 | 熵正则化 | 加一项熵 → Sinkhorn 迭代:简单、可并行、可微 | 直方图 |
| 5 | 半离散 OT | 一边连续、一边离散:Laguerre 单元、随机优化 | 连续 ↔ 离散 |
| 6 | W₁ 最优传输 | 代价就是距离:1-Lipschitz 对偶、流、图上的最小费用流 | 连续 ↔ 离散 |
| 7 | 动态形式 | 把传输看成随时间流动的密度(Benamou–Brenier) | 连续 ↔ 离散 |
| 8 | 统计散度 | 与 KL、MMD 等比较;只有样本时如何估计 OT | 连续 ↔ 离散 |
| 9 | 变分 Wasserstein 问题 | 把 OT 当损失函数:求导、重心、梯度流、生成模型 | 直方图 |
| 10 | OT 的扩展 | 多边缘、非平衡、切片 Wasserstein、Gromov–Wasserstein 等 | 直方图 |
作者坦言,计算最优传输在写作时仍是极其活跃的领域,有不少话题没有涉及,例如:
- 分布鲁棒优化(distributionally robust optimization):估计参数时,对输入数据某个 Wasserstein 距离范围内所有可能的数据分布取“最坏情况”的经验风险,再将其最小化;
- Langevin 蒙特卡洛采样算法在 Wasserstein 几何下的收敛性;
- 低维、平方欧氏代价下,基于 Monge–Ampère 方程的数值方法——只在 Rem. 2.25 中简要提及。
1949 年在线性规划框架下把最优传输“算了出来”、让它在优化领域站稳脚跟的是谁?
原书的“浅灰框”讲的是哪一层叙述?
- OT 把“最短路径”从一个物体推广到一群物体;物流、生产计划、网络路由本质上都是在搬运分布。
- 历史主线:工程(Monge)→ 物流与经济(Tolstoi、Hitchcock、Kantorovich、Koopmans)→ 优化(Dantzig)→ 分析(Brenier)→ 视觉(EMD)→ 数据科学(快速近似算法)。
- 本书计算优先,分三层:正文 = 直方图,浅灰框 = 离散测度(权重 + 位置),深灰框 = 一般测度;第 5–8 章偏数学。
1·3 记号速查 Notation
这一节把原书开头的记号表Notation整理成“能查、能玩、能读”的三件工具:先记住两条排版规则,再用可筛选的速查表查任何符号,用记号实验室亲手算几个常用运算,最后逐个符号读懂全书最核心的公式 (2.11)。以后读到任何一章卡在符号上,都可以回到这里。
两条排版规则 Typographical conventions
原书的记号看似繁多,其实大多成对出现:同一个概念,在“直方图层”和“一般测度层”各有一个写法。记住两条规则就能猜出八九成:
- 粗体 = 离散(向量与矩阵):$\mathbf{a},\mathbf{b}$(直方图)、$\mathbf{C}$(代价矩阵)、$\mathbf{P}$(耦合矩阵)、$\mathbf{f},\mathbf{g}$(对偶变量)、$\mathbf{u},\mathbf{v},\mathbf{K}$(Sinkhorn)。
- 希腊字母与花体 = 一般测度:测度用 $\alpha,\beta,\pi$;它们的集合与数值用花体 $\mathcal{U},\mathcal{R},\mathcal{L},\mathcal{W}$,空间用 $\mathcal{X},\mathcal{Y}$;对应的直方图版本用粗体或正体 $\mathbf{U},\mathbf{R},\mathrm{L},\mathrm{W}$。
| 概念 | 直方图层(正文) | 一般测度层(灰框) |
|---|---|---|
| 分布 | $\mathbf{a}\in\Sigma_n,\ \mathbf{b}\in\Sigma_m$ | $\alpha,\beta$(定义在 $\mathcal{X},\mathcal{Y}$ 上) |
| 代价 | 矩阵 $\mathbf{C}$;距离矩阵 $\mathbf{D}$ | 函数 $c(x,y)$;距离 $d$ |
| 运输方案 | $\mathbf{P}\in\mathbf{U}(\mathbf{a},\mathbf{b})$ | $\pi\in\mathcal{U}(\alpha,\beta)$ |
| 可行对偶势 | $(\mathbf{f},\mathbf{g})\in\mathbf{R}(\mathbf{C})$ | $(f,g)\in\mathcal{R}(c)$ |
| 最优值 | $\mathrm{L}_{\mathbf{C}}(\mathbf{a},\mathbf{b})$ | $\mathcal{L}_c(\alpha,\beta)$ |
| Wasserstein 距离 | $\mathrm{W}_p(\mathbf{a},\mathbf{b})$ | $\mathcal{W}_p(\alpha,\beta)$ |
- 把 $\mathbf{a}\otimes\mathbf{b}$ 当成内积。 $\otimes$ 得到的是一个 $n\times m$ 矩阵 $\mathbf{a}\mathbf{b}^\top$;内积 $\langle\mathbf{a},\mathbf{b}\rangle$ 才是一个数(而且要求两者等长)。
- 把 $\mathbf{f}\oplus\mathbf{g}$ 当成向量拼接或逐元素相加。 它是“两两相加”得到的矩阵:第 $(i,j)$ 个元素是 $\mathbf{f}_i+\mathbf{g}_j$。
- 以为 $e^{-\mathbf{C}/\varepsilon}$ 是矩阵指数。 这里是逐元素取指数:$\mathbf{K}_{i,j}=e^{-\mathbf{C}_{i,j}/\varepsilon}$。
可筛选的记号速查表 Notation table
下表按原书记号表的顺序列出全部符号,并补充了中文含义、原文、小例子和它主要出现的章节。可以按类别筛选,也可以直接搜索中文、英文或符号名(如 simplex、耦合、kernel)。
点类别按钮或选择叙述层来筛选,或在搜索框输入关键词;“层”标签说明该符号属于直方图层、测度层还是通用运算。
| 符号 | 含义 | 原文(English) | 例子 / 怎么用 | 主要出现 |
|---|---|---|---|---|
| $\llbracket n\rrbracket$ 通用 | 整数集合 $\{1,\dots,n\}$ | set of integers $\{1,\dots,n\}$ | $\llbracket 3\rrbracket=\{1,2,3\}$;“$i\in\llbracket n\rrbracket$”就是“$i$ 取 1 到 $n$” | 全书 |
| $1\!\!1_{n,m}$ 通用 | 所有元素都是 1 的 $n\times m$ 矩阵 | matrix of $\mathbb{R}^{n\times m}$ with all entries identically set to 1 | $1\!\!1_{2,3}=\begin{bmatrix}1 & 1 & 1\\ 1 & 1 & 1\end{bmatrix}$ | 全书 |
| $1\!\!1_n$ 通用 | 全 1 向量 | vector of ones | $\mathbf{P}1\!\!1_m$ = 把 $\mathbf{P}$ 的每行求和;$\mathbf{P}^\top1\!\!1_n$ = 每列求和。写约束 (2.10) 时要用 | 第 2 章 |
| $\mathbb{I}_n$ 通用 | $n\times n$ 单位矩阵 | identity matrix of size $n\times n$ | $\mathbb{I}_2=\begin{bmatrix}1 & 0\\ 0 & 1\end{bmatrix}$ | 全书 |
| $\operatorname{diag}(\mathbf{u})$ 通用 | 以 $\mathbf{u}$ 为对角线、其余为 0 的 $n\times n$ 矩阵 | for $u\in\mathbb{R}^n$, the $n\times n$ matrix with diagonal $u$ and zero otherwise | $\operatorname{diag}(1,2)=\begin{bmatrix}1 & 0\\ 0 & 2\end{bmatrix}$;左乘它 = 把第 $i$ 行乘以 $u_i$ | 第 4 章 |
| $\Sigma_n$ 直方图层 | 概率单纯形:$n$ 个格子上所有概率向量的集合 | probability simplex with $n$ bins, namely the set of probability vectors in $\mathbb{R}^n_+$ | $(0.2,0.5,0.3)\in\Sigma_3$;$\Sigma_2$ 是一条线段,$\Sigma_3$ 是一个三角形 | 第 2 章 §2.1 |
| $(\mathbf{a},\mathbf{b})$ 直方图层 | 两个直方图,$\mathbf{a}\in\Sigma_n$、$\mathbf{b}\in\Sigma_m$ | histograms in the simplices $\Sigma_n\times\Sigma_m$ | 仓库演示:$\mathbf{a}=(0.40,0.35,0.25)$,$\mathbf{b}=(0.35,0.30,0.35)$ | 第 2 章 |
| $(\alpha,\beta)$ 测度层 | 测度,定义在空间 $(\mathcal{X},\mathcal{Y})$ 上 | measures, defined on spaces $(\mathcal{X},\mathcal{Y})$ | 沙堆本身(可离散、可连续);$\mathcal{X}$ 是沙子所在的“地面” | 第 2 章 |
| $\frac{\mathrm{d}\alpha}{\mathrm{d}\beta}$ 测度层 | $\alpha$ 关于 $\beta$ 的相对密度 | relative density of a measure $\alpha$ with respect to $\beta$ | “$\alpha$ 在每一处是 $\beta$ 的多少倍”;KL 等 φ-散度要用它 | 第 8 章 |
| $\rho_\alpha=\frac{\mathrm{d}\alpha}{\mathrm{d}x}$ 测度层 | $\alpha$ 关于 Lebesgue 测度的密度,即通常说的概率密度函数 | density of a measure $\alpha$ with respect to Lebesgue measure | 正态分布的钟形曲线就是它的 $\rho_\alpha$;三层演示的第 ③ 层 | 第 2 章 |
| $\alpha=\sum_i\mathbf{a}_i\delta_{x_i}$ $\beta=\sum_j\mathbf{b}_j\delta_{y_j}$ 离散测度 | 离散测度:权重 $\mathbf{a}_i$ 放在位置 $x_i$ 上 | discrete measures supported on $x_1,\dots,x_n\in\mathcal{X}$ and $y_1,\dots,y_m\in\mathcal{Y}$ | 三层演示的第 ② 层;$\delta_x$ 是位于 $x$ 的单位质量 (2.1) | 第 2 章 |
| $c(x,y)$ 测度层 | 地面代价:把单位质量从 $x$ 搬到 $y$ 的代价 | ground cost | $c(x,y)=|x-y|^2$;1·1 沙堆演示的“局部代价” | 第 2 章 |
| $\mathbf{C}_{i,j}=c(x_i,y_j)$ 直方图层 | 在两组支撑点上算出的两两代价矩阵 | pairwise cost matrix evaluated on the support of $\alpha,\beta$ | 五步图:$\mathbf{C}_{1,3}=c(1,4)=9$;仓库演示的单价表 | 第 2 章 |
| $\pi$ 测度层 | $\alpha$ 与 $\beta$ 之间的耦合测度:$\pi(A\times\mathcal{Y})=\alpha(A)$,$\pi(\mathcal{X}\times B)=\beta(B)$;离散时 $\pi=\sum_{i,j}\mathbf{P}_{i,j}\delta_{(x_i,y_j)}$ | coupling measure between $\alpha$ and $\beta$ | 两个边缘约束 = “沙要搬完、坑要填满” | 第 2 章 §2.3 |
| $\mathcal{U}(\alpha,\beta)$ $\mathbf{U}(\mathbf{a},\mathbf{b})$ 两层 | 耦合(运输方案)的集合;离散时写粗体 $\mathbf{U}(\mathbf{a},\mathbf{b})$ | set of coupling measures, for discrete measures $\mathbf{U}(\mathbf{a},\mathbf{b})$ | 仓库演示中每个可行的运量表都是 $\mathbf{U}(\mathbf{a},\mathbf{b})$ 的一个元素 (2.10) | 第 2 章 |
| $\mathcal{R}(c)$ $\mathbf{R}(\mathbf{C})$ 两层 | 可行对偶势的集合 | set of admissible dual potentials; for discrete measures $\mathbf{R}(\mathbf{C})$ | 离散时:满足 $\mathbf{f}_i+\mathbf{g}_j\le\mathbf{C}_{i,j}$ 的所有 $(\mathbf{f},\mathbf{g})$ | 第 2 章 §2.5 |
| $T:\mathcal{X}\to\mathcal{Y}$ 测度层 | Monge 映射,通常满足 $T_\sharp\alpha=\beta$ | Monge map, typically such that $T_\sharp\alpha=\beta$ | $x$ 处的沙整块运到 $T(x)$、不拆分;$T_\sharp\alpha$ 是把 $\alpha$ 按 $T$ “推过去”后的分布 | 第 2 章 §2.2 |
| $(\alpha_t)_{t=0}^{1}$ 测度层 | 动态测度:随时间 $t$ 变化的一族测度,$\alpha_{t=0}=\alpha_0$,$\alpha_{t=1}=\alpha_1$ | dynamic measures, with $\alpha_{t=0}=\alpha_0$ and $\alpha_{t=1}=\alpha_1$ | 插值演示中滑块 $t$ 对应的中间分布 | 第 7 章 |
| $v$;$J=\alpha v$ 测度层 | Benamou–Brenier 形式中的速度场;动量 | speed for Benamou–Brenier formulations; momentum | 沙子在每个位置、每个时刻的流速;$J$ = 密度 × 速度 | 第 7 章 |
| $(f,g)$ $(\mathbf{f},\mathbf{g})$ 两层 | 对偶势;离散时 $(\mathbf{f},\mathbf{g})$ 就是对偶变量 | dual potentials, for discrete measures $(\mathbf{f},\mathbf{g})$ are dual variables | 可理解为源处与目标处的“价格”,二者之和不能超过运费 | 第 2 章 §2.5 |
| $(\mathbf{u},\mathbf{v})\overset{\text{def.}}{=}(e^{\mathbf{f}/\varepsilon},e^{\mathbf{g}/\varepsilon})$ 直方图层 | Sinkhorn 缩放向量 | Sinkhorn scalings | 熵正则化 OT 的解形如 $\mathbf{P}=\operatorname{diag}(\mathbf{u})\mathbf{K}\operatorname{diag}(\mathbf{v})$ (4.12) | 第 4 章 |
| $\mathbf{K}\overset{\text{def.}}{=}e^{-\mathbf{C}/\varepsilon}$ 直方图层 | Sinkhorn 的 Gibbs 核(逐元素取指数) | Gibbs kernel for Sinkhorn | $\varepsilon$ 大 → 接近全 1;$\varepsilon$ 小 → 只剩代价小的格子(见记号实验室) | 第 4 章 |
| $s$ 测度层 | $\mathcal{W}_1$ 类问题中的“流”(在散度约束下优化) | flow for $\mathcal{W}_1$-like problem (optimization under divergence constraints) | 把运输看成一张“流量图”:沙子沿哪些方向、以多大流量流动 | 第 6 章 |
| $\mathrm{L}_{\mathbf{C}}(\mathbf{a},\mathbf{b})$ $\mathcal{L}_c(\alpha,\beta)$ 两层 | 以代价 $\mathbf{C}$(直方图)或 $c$(一般测度)的 OT 问题的最优值 | value of the optimization problem associated to the OT with cost $\mathbf{C}$ (histograms) and $c$ (arbitrary measures) | 仓库演示:$\mathrm{L}_{\mathbf{C}}=285$(按吨计)(2.11) (2.15) | 第 2 章 |
| $\mathrm{W}_p(\mathbf{a},\mathbf{b})$ $\mathcal{W}_p(\alpha,\beta)$ 两层 | $p$-Wasserstein 距离,由地面距离矩阵 $\mathbf{D}$(直方图)或距离 $d$(一般测度)得到 | $p$-Wasserstein distance associated to ground distance matrix $\mathbf{D}$ (histograms) and distance $d$ (arbitrary measures) | $\mathrm{W}_p(\mathbf{a},\mathbf{b})=\mathrm{L}_{\mathbf{D}^p}(\mathbf{a},\mathbf{b})^{1/p}$ (2.17) | 第 2 章 §2.4 |
| $\lambda\in\Sigma_S$ 通用 | 计算 $S$ 个测度的重心时用的权重向量 | weight vector used to compute the barycenters of $S$ measures | 插值演示中 $\lambda=(1-t,\,t)\in\Sigma_2$ | 第 9 章 §9.2 |
| $\langle\cdot,\cdot\rangle$ 通用 | 向量的欧氏内积;同尺寸矩阵的 Frobenius 内积 $\langle A,B\rangle\overset{\text{def.}}{=}\operatorname{tr}(A^\top B)$ | the usual Euclidean dot-product between vectors; for two matrices of the same size, the Frobenius dot-product | $\langle A,B\rangle=\sum_{i,j}A_{i,j}B_{i,j}$,对应元素相乘再求和;总代价 $\langle\mathbf{C},\mathbf{P}\rangle$ | 全书 |
| $f\oplus g$(函数) 测度层 | $(f\oplus g)(x,y)\overset{\text{def.}}{=}f(x)+g(y)$,得到 $\mathcal{X}\times\mathcal{Y}$ 上的函数 | for two functions $f:\mathcal{X}\to\mathbb{R}$, $g:\mathcal{Y}\to\mathbb{R}$, defines $f\oplus g:\mathcal{X}\times\mathcal{Y}\to\mathbb{R}$ | 对偶约束可以简写成 $f\oplus g\le c$ | 第 2 章 |
| $\mathbf{f}\oplus\mathbf{g}$(向量) 直方图层 | $\mathbf{f}\oplus\mathbf{g}\overset{\text{def.}}{=}\mathbf{f}1\!\!1_m^\top+1\!\!1_n\mathbf{g}^\top\in\mathbb{R}^{n\times m}$,第 $(i,j)$ 元为 $\mathbf{f}_i+\mathbf{g}_j$ | for two vectors $\mathbf{f}\in\mathbb{R}^n$, $\mathbf{g}\in\mathbb{R}^m$ | $(1,2)\oplus(10,20,30)=\begin{bmatrix}11 & 21 & 31\\ 12 & 22 & 32\end{bmatrix}$ | 第 2–4 章 |
| $\alpha\otimes\beta$ 测度层 | $\mathcal{X}\times\mathcal{Y}$ 上的乘积测度:$\int g\,\mathrm{d}(\alpha\otimes\beta)=\int\!\!\int g(x,y)\,\mathrm{d}\alpha(x)\,\mathrm{d}\beta(y)$ | the product measure on $\mathcal{X}\times\mathcal{Y}$ | 相当于“独立地”分别从 $\alpha$、$\beta$ 抽 $x$、$y$;它总是一个耦合 | 第 2 章 |
| $\mathbf{a}\otimes\mathbf{b}\overset{\text{def.}}{=}\mathbf{a}\mathbf{b}^\top$ 直方图层 | 外积,得到 $n\times m$ 矩阵,第 $(i,j)$ 元为 $\mathbf{a}_i\mathbf{b}_j$ | $\mathbf{a}\otimes\mathbf{b}\overset{\text{def.}}{=}\mathbf{a}\mathbf{b}^\top\in\mathbb{R}^{n\times m}$ | $\mathbf{a}\otimes\mathbf{b}$ 总是一个可行方案,即属于 $\mathbf{U}(\mathbf{a},\mathbf{b})$(习题 1.3) | 第 2 章 |
| $\mathbf{u}\odot\mathbf{v}$ 直方图层 | 逐元素乘积 $(\mathbf{u}_i\mathbf{v}_i)\in\mathbb{R}^n$ | $\mathbf{u}\odot\mathbf{v}=(\mathbf{u}_i\mathbf{v}_i)\in\mathbb{R}^n$ for $(\mathbf{u},\mathbf{v})\in(\mathbb{R}^n)^2$ | $(1,2,3)\odot(4,5,6)=(4,10,18)$ | 第 4 章 |
初读时选“直方图层”就够用:剩下的大约二十个符号覆盖了第 3、4 章算法所需的全部记号。测度层的符号在灰框里出现,读到时再回来查。
记号实验室:⊗、⊕、⊙ 与 Gibbs 核 Notation lab
光看定义不如动手算一算。下面的实验室把几个最容易混淆的运算做成“表格游戏”:左边一列是第一个向量(对应矩阵的行),上面一行是第二个向量(对应矩阵的列),中间是运算结果。
选择一种运算;上下拖动左侧列向量或上方行向量的格子来改数值(向上拖变大),中间是运算结果,颜色越深绝对值越大(红色表示负数)。点击结果中的任一格,下方读数会写出这一格是怎么算出来的。
$\mathbf{a}\otimes\mathbf{b}$ 的每一行都与 $\mathbf{b}$ 成比例、每一列都与 $\mathbf{a}$ 成比例(“秩为 1”);$\mathbf{f}\oplus\mathbf{g}$ 则是每行加同一个数、每列加同一个数。在 Gibbs 核里,把 ε 调小,远离“对角带”的格子迅速变成 0——Sinkhorn 就是在这张核上反复缩放行与列($\operatorname{diag}(\mathbf{u})\mathbf{K}\operatorname{diag}(\mathbf{v})$),直到行和、列和分别等于 $\mathbf{a}$、$\mathbf{b}$(第 4 章)。
逐个符号读懂一个公式 Reading formula (2.11)
最后,用刚学的记号读懂全书最核心的定义——第 2 章的 Kantorovich 问题 (2.11)。它在 1·1 节里其实已经出现过好几次了,只是没写成公式。点「下一步」,每一步高亮一个部分。
第 1 步:整体怎么读
读作:“$\mathrm{L}$ 下标 $\mathbf{C}$、括号 $\mathbf{a}$、$\mathbf{b}$,定义为:在所有属于 $\mathbf{U}(\mathbf{a},\mathbf{b})$ 的 $\mathbf{P}$ 上,$\mathbf{C}$ 与 $\mathbf{P}$ 的内积的最小值”。翻译成人话:所有可行搬法中,最省的总代价。
第 2 步:左边是一个数
$\mathrm{L}_{\mathbf{C}}(\mathbf{a},\mathbf{b})$ 是一个数:用代价矩阵 $\mathbf{C}$ 把直方图 $\mathbf{a}$ 搬成 $\mathbf{b}$ 的最小总代价。正体 $\mathrm{L}$ 加粗体下标 = 直方图层;一般测度版本写成花体 $\mathcal{L}_c(\alpha,\beta)$。仓库演示里它等于 285(按吨计)。
第 3 步:“def.” 等号
$\overset{\text{def.}}{=}$ 读作“按定义等于”:左边是新引入的符号,右边解释它的意思。原书的记号表里 $(\mathbf{u},\mathbf{v})$、$\mathbf{K}$、$\mathbf{f}\oplus\mathbf{g}$、$\mathbf{a}\otimes\mathbf{b}$ 也都是这样引入的。
第 4 步:在可行方案中取最小
$\min$ 下面的 $\mathbf{P}\in\mathbf{U}(\mathbf{a},\mathbf{b})$ 规定了在哪些方案里挑:$\mathbf{U}(\mathbf{a},\mathbf{b})=\{\mathbf{P}\in\mathbb{R}^{n\times m}_+ : \mathbf{P}1\!\!1_m=\mathbf{a},\ \mathbf{P}^\top1\!\!1_n=\mathbf{b}\}$ (2.10),也就是“非负、行和为 $\mathbf{a}$、列和为 $\mathbf{b}$”——正是你在仓库演示里必须满足的约束。
第 5 步:内积 = 总代价
$\langle\mathbf{C},\mathbf{P}\rangle$ 是矩阵的 Frobenius 内积 $\operatorname{tr}(\mathbf{C}^\top\mathbf{P})$。别被“迹”吓到:它就是把两张同样大小的表对应格子相乘再全部加起来。
第 6 步:展开写法
$\sum_{i,j}\mathbf{C}_{i,j}\mathbf{P}_{i,j}$ = 每条路线的“单价 × 运量”之和,和仓库演示读数里那一长串加法一模一样。注意它关于 $\mathbf{P}$ 是线性的,约束也是线性的——所以这是一个线性规划(第 3 章)。
第 7 步:换到另外两层
离散测度层:只需把 $\mathbf{C}_{i,j}$ 换成 $c(x_i,y_j)$。一般测度层:求和变积分、矩阵变耦合测度,$\mathcal{L}_c(\alpha,\beta)\overset{\text{def.}}{=}\min_{\pi\in\mathcal{U}(\alpha,\beta)}\int_{\mathcal{X}\times\mathcal{Y}}c(x,y)\,\mathrm{d}\pi(x,y)$ (2.15)。结构完全一样:在可行的搬法中,让总代价最小。
对 $\mathbf{a}\in\mathbb{R}^n$、$\mathbf{b}\in\mathbb{R}^m$,记号 $\mathbf{a}\otimes\mathbf{b}$ 表示什么?
当 ε 非常大时,Gibbs 核 $\mathbf{K}=e^{-\mathbf{C}/\varepsilon}$ 接近哪个矩阵?
- 粗体 = 向量/矩阵(直方图层),希腊字母与花体 = 一般测度层;绝大多数符号成对出现。
- 三个运算别混:$\mathbf{a}\otimes\mathbf{b}=\mathbf{a}\mathbf{b}^\top$(矩阵),$\mathbf{f}\oplus\mathbf{g}$(两两相加的矩阵),$\mathbf{u}\odot\mathbf{v}$(逐元素乘积的向量)。
- 核心公式 $\mathrm{L}_{\mathbf{C}}(\mathbf{a},\mathbf{b})=\min_{\mathbf{P}\in\mathbf{U}(\mathbf{a},\mathbf{b})}\langle\mathbf{C},\mathbf{P}\rangle$:在所有可行搬法中取最小的总代价。
本章小结
- OT 在求什么:两个总量相同的分布 + 一个地面代价 $c(x,y)$ + 质量守恒约束;在所有运输方案中找总代价最小的那个。
- 方案是一张表:耦合矩阵 $\mathbf{P}$ 的行和等于源分布、列和等于目标分布;允许拆分(Kantorovich)。总代价 $\langle\mathbf{C},\mathbf{P}\rangle$ 关于 $\mathbf{P}$ 是线性的,所以 OT 是一个线性规划。
- 局部代价决定一切:同一对沙堆,代价取距离、距离²、√距离,最优搬法都可能不同。
- 为什么重要:最小代价定义了分布之间的距离,并继承地面空间的几何——峰移得越远距离越大;插值是“搬运”而不是“混合”;可以定义重心。
- 历史:工程(Monge 1781)→ 物流与经济(Tolstoi、Hitchcock、Kantorovich、Koopmans)→ 优化(Dantzig 1949)→ 分析(Brenier 1991)→ 视觉(EMD)→ 数据科学(熵正则化等快速近似算法)。
- 怎么读这本书:正文 = 直方图(第 2、3、4、9、10 章,实现算法只需要这一层);浅灰框 = 离散测度(权重 + 位置);深灰框 = 一般测度;第 5–8 章偏数学。
把故事、数学和记号串起来:
| 故事里 | 数学上 | 直方图层记号 | 一般测度层记号 |
|---|---|---|---|
| 一堆沙 | 概率分布 | $\mathbf{a}\in\Sigma_n$ | $\alpha$(可有密度 $\rho_\alpha$) |
| 搬一铲沙的花费 | 地面代价 | $\mathbf{C}_{i,j}$ | $c(x,y)$ |
| 一种搬法 | 运输方案 / 耦合 | $\mathbf{P}\in\mathbf{U}(\mathbf{a},\mathbf{b})$ | $\pi\in\mathcal{U}(\alpha,\beta)$ |
| 整块搬、不拆分 | Monge 映射 | 指派 $\sigma$(第 2 章 §2.2) | $T$,$T_\sharp\alpha=\beta$ |
| 总力气 | 全局代价 | $\langle\mathbf{C},\mathbf{P}\rangle$ | $\int c\,\mathrm{d}\pi$ |
| 最省的总力气 | 最优传输代价 | $\mathrm{L}_{\mathbf{C}}(\mathbf{a},\mathbf{b})$ | $\mathcal{L}_c(\alpha,\beta)$ |
| 两堆沙“差多远” | Wasserstein 距离 | $\mathrm{W}_p(\mathbf{a},\mathbf{b})$ | $\mathcal{W}_p(\alpha,\beta)$ |
| 搬到半路的沙堆 | 位移插值 / 重心 | 权重 $\lambda\in\Sigma_S$ | $(\alpha_t)_{t=0}^1$ |
自测
下面的题目考的是理解而不是记忆;答错了可以点“重做”,并回到对应的演示再玩一玩。
Kantorovich(1942)对 Monge 问题最关键的改动是什么?
在 3×3 的运输问题中,满足全部行和、列和约束之后,方案表里还有几个格子可以自由选择(暂不考虑非负性)?
在“三层叙述”演示中选“随机抽样”,第 ① 层的直方图变成一排一样高的柱子。这说明了什么?
看到花体的 $\mathcal{U}(\alpha,\beta)$ 和粗体的 $\mathbf{U}(\mathbf{a},\mathbf{b})$,二者的关系是?
“推土机距离”(earth mover's distance, EMD)是什么?
习题
原书没有习题,以下为本教材根据本章内容自拟,建议先独立完成再展开提示与解答。
提示
先用第 1 行的行和、第 1 列的列和写出 $\mathbf{P}_{1,2}$、$\mathbf{P}_{2,1}$,再用任意一个剩下的约束写出 $\mathbf{P}_{2,2}$;取值范围来自“四个格子都非负”。参考解答
(a) $\mathbf{P}=\begin{bmatrix}t & 60-t\\ 50-t & t-10\end{bmatrix}$。四个元素非负要求 $t\ge 0$、$t\le 60$、$t\le 50$、$t\ge 10$,所以 $10\le t\le 50$。
(b) 总运费 $=1\cdot t+4(60-t)+3(50-t)+2(t-10)=370-4t$。
(c) 它随 $t$ 递减,取 $t=50$:$\mathbf{P}^\star=\begin{bmatrix}50 & 10\\ 0 & 40\end{bmatrix}$,最低运费 $170$ 元(反过来 $t=10$ 时最贵,330 元)。
(d) 总运费是 $\mathbf{P}$ 的线性函数,可行集是一条线段,线性函数在线段上的最小值必在端点取到。更一般地,第 3 章会看到:OT 的最优解总可以在可行多面体 $\mathbf{U}(\mathbf{a},\mathbf{b})$ 的某个顶点上取到。
提示
$\otimes$ 的 $(i,j)$ 元是 $u_iv_j$,$\oplus$ 的 $(i,j)$ 元是 $u_i+v_j$;$1\!\!1^\top M1\!\!1$ 就是 $M$ 所有元素之和。参考解答
$\operatorname{diag}(\mathbf{u})=\begin{bmatrix}1 & 0 & 0\\ 0 & 2 & 0\\ 0 & 0 & 3\end{bmatrix}$,$\mathbf{u}\odot\mathbf{v}=(2,0,3)$,$\langle\mathbf{u},\mathbf{v}\rangle=2+0+3=5$。
$\mathbf{u}\otimes\mathbf{v}=\mathbf{u}\mathbf{v}^\top=\begin{bmatrix}2 & 0 & 1\\ 4 & 0 & 2\\ 6 & 0 & 3\end{bmatrix}$,$\mathbf{u}\oplus\mathbf{v}=\begin{bmatrix}3 & 1 & 2\\ 4 & 2 & 3\\ 5 & 3 & 4\end{bmatrix}$。
$1\!\!1_3^\top(\mathbf{u}\otimes\mathbf{v})1\!\!1_3=2+0+1+4+0+2+6+0+3=18$,恰好等于 $(\sum_i u_i)(\sum_j v_j)=6\times 3$。注意 $\langle\mathbf{u},\mathbf{v}\rangle$ 只是 $\mathbf{u}\otimes\mathbf{v}$ 的对角线之和(迹)$2+0+3=5$。
提示
逐条验证 $\mathbf{U}(\mathbf{a},\mathbf{b})$ 的三个条件:非负、行和、列和;用到 $\sum_j\mathbf{b}_j=1$。参考解答
非负:$(\mathbf{a}\otimes\mathbf{b})_{i,j}=\mathbf{a}_i\mathbf{b}_j\ge 0$。行和:$\sum_j\mathbf{a}_i\mathbf{b}_j=\mathbf{a}_i\sum_j\mathbf{b}_j=\mathbf{a}_i$。列和:$\sum_i\mathbf{a}_i\mathbf{b}_j=\mathbf{b}_j\sum_i\mathbf{a}_i=\mathbf{b}_j$。所以 $\mathbf{a}\otimes\mathbf{b}\in\mathbf{U}(\mathbf{a},\mathbf{b})$。
搬法:每个源位置都把自己的沙按目标需求的比例分给所有目标——完全不看距离,相当于“独立地”随机决定每粒沙去哪里。它几乎从不是最优的:在 1·1 的五步例子中它的总代价是 $3.42$,而最优是 $2.5$。
提示
把 3 个行和加起来,再把 3 个列和加起来,比较结果。参考解答
所有行和之和 = 表中全部元素之和 = 所有列和之和,而 $\sum_i\mathbf{a}_i=\sum_j\mathbf{b}_j$,所以 6 个等式中有 1 个可由其余 5 个推出;独立约束只有 5 个,自由度 $9-5=4$。一般地,独立约束有 $n+m-1$ 个,自由度为 $nm-(n+m-1)=(n-1)(m-1)$。
仓库演示中可以自由选左上角的 $\mathbf{P}_{1,1},\mathbf{P}_{1,2},\mathbf{P}_{2,1},\mathbf{P}_{2,2}$,其余由约束决定:$\mathbf{P}_{1,3}=a_1-\mathbf{P}_{1,1}-\mathbf{P}_{1,2}$,$\mathbf{P}_{2,3}=a_2-\mathbf{P}_{2,1}-\mathbf{P}_{2,2}$,$\mathbf{P}_{3,1}=b_1-\mathbf{P}_{1,1}-\mathbf{P}_{2,1}$,$\mathbf{P}_{3,2}=b_2-\mathbf{P}_{1,2}-\mathbf{P}_{2,2}$,$\mathbf{P}_{3,3}=a_3-\mathbf{P}_{3,1}-\mathbf{P}_{3,2}$(它自动也等于 $b_3-\mathbf{P}_{1,3}-\mathbf{P}_{2,3}$);当然,还要保证这些数都非负。数字 $n+m-1$ 在第 3 章还会出现:运输多面体的顶点最多只有 $n+m-1$ 个非零元。
提示
(a) 所有目标都在所有源的右边,$|y-x|=y-x$。(b) 列出 6 种配对,或比较“按顺序”与“反着”两种极端。参考解答
(a) 因为每个目标位置都大于每个源位置,任一配对的总代价 $=\sum(y-x)=(3+4+5)-(0+1+2)=9$,与怎么配对无关。
(b) 六种配对(源 0、1、2 依次去往的目标)的代价:(3,4,5):$9+9+9=27$;(3,5,4):$9+16+4=29$;(4,3,5):$16+4+9=29$;(4,5,3):$16+16+1=33$;(5,3,4):$25+4+4=33$;(5,4,3):$25+9+1=35$。最优是按顺序配对(27),最差是反着配(35)。
(c) 距离代价对“怎么配对”很不敏感(两堆沙不重叠时甚至完全无所谓),所以演示中选“距离”时各方案几乎一样;距离² 会重罚长途,于是按顺序、路线不交叉的方案胜出。第 2 章 Rem. 2.28 会讲一维情形的一般规律。
提示
对角元 $e^{0}=1$,非对角元 $e^{-1/\varepsilon}$。参考解答
$\varepsilon=1$:$\mathbf{K}=\begin{bmatrix}1 & e^{-1}\\ e^{-1} & 1\end{bmatrix}\approx\begin{bmatrix}1 & 0.368\\ 0.368 & 1\end{bmatrix}$;$\varepsilon=0.1$:非对角元为 $e^{-10}\approx 4.5\times 10^{-5}$,几乎就是单位矩阵。
$\varepsilon\to\infty$ 时 $e^{-1/\varepsilon}\to 1$,$\mathbf{K}\to1\!\!1_{2,2}$(全 1);$\varepsilon\to 0$ 时 $e^{-1/\varepsilon}\to 0$,$\mathbf{K}\to\mathbb{I}_2$。直观上,$\mathbf{K}_{i,j}$ 衡量“$i$ 与 $j$ 之间交换质量有多容易”:$\varepsilon$ 越小,只有代价最低的配对才被允许——这是第 4 章熵正则化的核心直觉。
提示
(b) 用 $\log_{10}(70!)=\sum_{k=2}^{70}\log_{10}k$,写个两行的循环即可。一年约 $3.16\times 10^7$ 秒。参考解答
(a) $n!$ 种(第 1 个源有 $n$ 个选择,第 2 个有 $n-1$ 个……)。
(b) $\log_{10}(70!)\approx 100.08$,即 $70!\approx 1.2\times 10^{100}$——原书第 2 章也提到 $n=70$ 时排列数就超过 $10^{100}$。每秒 $10^9$ 种需要约 $1.2\times 10^{91}$ 秒 $\approx 3.8\times 10^{83}$ 年,而宇宙年龄只有约 $1.4\times 10^{10}$ 年。
(c) 暴力枚举毫无希望,必须利用问题的结构:把它写成线性规划,用网络单纯形、匈牙利算法、拍卖算法精确求解(第 3 章),或者用熵正则化 + Sinkhorn 快速近似求解(第 4 章)。这正是本书“计算优先”的出发点。
理论基础 Theoretical Foundations
从「谁配谁」的指派问题出发,到允许「拆分质量」的 Kantorovich 松弛,再到 Wasserstein 距离与对偶「定价」——这一章搭起整本书的数学骨架,后面所有算法都在解这里写下的问题。
- 把直方图 $a\in\Sigma_n$ 看成单纯形里的一个点,把离散测度 $\alpha=\sum_i a_i\delta_{x_i}$ 看成「带位置的直方图」。
- 说清楚指派问题与 Monge 问题在求什么,以及它们的三个毛病:组合爆炸、可能无解、非凸。
- 会写出 Kantorovich 问题:耦合矩阵 $P$、约束集 $U(a,b)$、线性规划 $\mathrm{L}_C(a,b)$,并理解它为什么对匹配问题「不吃亏」(Prop. 2.1)。
- 知道 $\mathrm{W}_p$ 为什么是距离(「粘合」构造),以及它与 L²、KL 这类「逐点比较」的本质区别。
- 用「承运商定价」的故事理解对偶问题:势 $f,g$、约束 $f_i+g_j\le C_{ij}$,以及最优方案只走「价格恰好等于运费」的路线。
- 会用排序 / 分位数(一维)和 Bures 公式(高斯)直接写出 OT 的答案。
- 比较的对象:直方图 $a\in\Sigma_n$(只有权重),或离散测度 $\alpha=\sum_i a_i\delta_{x_i}$(权重 + 位置);「从 $i$ 搬一单位到 $j$ 要花多少」写在代价矩阵 $C$ 里。
- Monge 的想法:每个源点整体送到一个目标点(一个映射 $T$)。均匀、等数目时就是指派问题——有 $n!$ 种可能;一般权重下甚至可能根本无解。
- Kantorovich 的想法:允许把一个点的质量拆开送往多处,用耦合矩阵 $P$(行和 $=a$,列和 $=b$)描述。OT 于是变成线性规划 $\mathrm{L}_C(a,b)=\min_P\langle C,P\rangle$,永远有解。
- 对均匀、等数目的点云,松弛不吃亏:总有一个置换矩阵是最优解(Birkhoff 定理 + 线性规划的最优解在顶点)。
- 当 $C=D^p$($D$ 是距离)时,$\mathrm{W}_p=\mathrm{L}_{D^p}^{1/p}$ 是真正的距离,而且「看得见位置」:把一个峰平移 $\tau$,$\mathrm{W}_p$ 恰好等于 $\tau$,L² 会饱和,KL 甚至变成 $\infty$。
- 对偶 = 定价:$\mathrm{L}_C(a,b)=\max\{\langle f,a\rangle+\langle g,b\rangle : f_i+g_j\le C_{ij}\}$。最优运输只使用 $f_i+g_j=C_{ij}$ 的「紧」路线。
- 一维 OT = 排序:两组点各自排好序、按顺序配对;$\mathrm{W}_p$ 就是两个分位数函数之差的 $L^p$ 范数。
- 两个高斯之间:$\mathrm{W}_2^2=\|m_\alpha-m_\beta\|^2+\mathcal{B}(\Sigma_\alpha,\Sigma_\beta)^2$(Bures 距离),最优映射是线性的。
2.1 直方图与测度 Histograms and Measures
这一节回答:最优传输(OT)要比较的「东西」到底是什么?答案有两种写法——只有权重的直方图,和带位置的离散测度。把它们分清楚,后面的公式就不会乱。
本书把直方图(histogram)和概率向量(probability vector)当作同一个东西:$n$ 个非负数,加起来等于 1。所有这样的向量组成概率单纯形(probability simplex):
原书说,这篇综述的很大一部分就是在研究「OT 在单纯形上诱导出的几何」——也就是:单纯形里两个点(两个直方图)之间,用 OT 量出来的「距离」长什么样。
给定权重 $a$ 和位置 $x_1,\dots,x_n\in\mathcal{X}$,离散测度(discrete measure)写作
其中 $\delta_x$ 是位于 $x$ 的 Dirac 质量(Dirac mass):一单位「无限集中」在 $x$ 这一点上的质量。若 $a\in\Sigma_n$,$\alpha$ 是概率测度;若 $a$ 只是非负,就是一般的正测度。为了避免「有位置却没有质量」的退化情形,本书约定离散测度的权重都严格为正。
左:拖动三角形里的紫色点 = 改变权重 $a=(a_1,a_2,a_3)$;中:同一个 $a$ 画成直方图(柱子只有编号);右:把权重放到位置 $x_1,x_2,x_3$ 上,得到离散测度 $\alpha$——左右拖动竖线顶端可以移动位置。▲ 标出 $\alpha$ 的质心 $\int x\,\mathrm{d}\alpha=\sum_i a_i x_i$。
三角形的顶点就是「只有一个 Dirac」的测度,边上是有一个权重为 0 的直方图。拖动右边的竖线时,直方图 $a$ 完全不变,但测度 $\alpha$ 变了(质心在移动)。OT 会同时用到两者:权重告诉它「有多少」,位置(通过代价 $C_{ij}=c(x_i,y_j)$)告诉它「搬多远」。
进阶一般测度 General measures Rem. 2.2
OT 的一个方便之处是:离散的、连续的、甚至混合的分布都能放进同一个框架。做法是使用空间 $\mathcal{X}$(需带一个距离 $d$)上的 Radon 测度(Radon measures)集合 $\mathcal{M}(\mathcal{X})$。关键观点是:测度只能通过「对连续函数积分」来观察。
- 对离散测度,积分就是加权求和:$\int_{\mathcal{X}} f(x)\,\mathrm{d}\alpha(x)=\sum_i a_i f(x_i)$。
- 在 $\mathbb{R}^d$ 上,测度可以有关于 Lebesgue 测度的密度(density):$\mathrm{d}\alpha(x)=\rho_\alpha(x)\,\mathrm{d}x$,即 $\int h\,\mathrm{d}\alpha=\int h(x)\rho_\alpha(x)\,\mathrm{d}x$。
- 一般的测度既不必有密度,也不必是 Dirac 之和;它由「对每个连续函数 $f$ 都给出一个数 $\int f\,\mathrm{d}\alpha$」来定义($\mathcal{X}$ 不紧时要求 $f$ 紧支或在无穷远处趋于 0)。
- 测度比函数「更不正则」,但比广义函数(distribution)正则:例如 Dirac 的导数就不是测度。记 $\mathcal{M}_+(\mathcal{X})$ 为正测度,$\mathcal{M}_+^1(\mathcal{X})$ 为概率测度(正且总质量 $\alpha(\mathcal{X})=1$)。
离散测度 $\alpha=\tfrac12\delta_0+\tfrac12\delta_1$ 与 $\alpha'=\tfrac12\delta_0+\tfrac12\delta_5$ 的权重向量都是 $a=(\tfrac12,\tfrac12)$。下列说法正确的是?
2.2 指派问题与 Monge 问题 Assignment and Monge Problem
最朴素的搬运方案是「一对一」:每个源点整体送到某一个目标点。这一节看这种确定性方案——指派问题和它的推广 Monge 问题——能走多远,又在哪里碰壁。
最优指派 Optimal Assignment
设有 $n$ 个源点、$m=n$ 个目标点,代价矩阵 $C$ 的元素 $C_{i,j}$ 表示「把第 $i$ 个源点配给第 $j$ 个目标点」的代价。最优指派问题(optimal assignment problem)在所有排列 $\sigma\in\mathrm{Perm}(n)$ 中找平均代价最小的一个:
这里 $\sigma(i)$ 就是「第 $i$ 个源点去哪儿」;排列保证每个目标恰好收到一个源点。最直接的办法是把所有排列试一遍——可惜排列有 $n!$ 个:
| 点数 $n$ | 5 | 7 | 10 | 20 | 70 |
|---|---|---|---|---|---|
| 排列数 $n!$ | 120 | 5 040 | 3 628 800 | ≈ 2.4 × 10¹⁸ | > 10¹⁰⁰ |
原书(引 Dantzig, 1983)指出:$n$ 只有 70 时,排列就超过 $10^{100}$ 个(比可观测宇宙中的原子数还多得多)。所以只有存在高效算法时,这个问题才真正「可解」——例如第 3 章的拍卖算法 §3.7。
蓝色圆点是源点 $x_i$,红色方块是目标点 $y_j$,都可以拖动。黑色连线是最优指派 $\sigma^\star$——它是把全部 $n!$ 个排列逐一试过得到的($n\le 7$ 时浏览器算得动)。勾选「显示最差指派」可以对比。
把一个点慢慢拖过去,最优配对会在某一刻突然「整体换人」——指派是离散的选择,最优值却连续变化。选距离代价 $\|x-y\|$ 时,最优连线从不交叉(两条交叉的线段总能「解开」而不增加总长,这是三角不等式);选距离平方时偶尔会交叉。点「正方形」看 Rem. 2.3:两种指派代价相同,最优解不唯一。读数最后一行预告了 Prop. 2.1:允许拆分质量的线性规划(§2.3)在这里并不能做得更好。
最优指派可能不唯一。例如 $n=m=2$,四个点是边长为 1 的正方形的四个角(两个蓝点在对角、两个红点在另一对角),代价取两两距离:两个蓝点到两个红点的距离全都相等,于是仅有的两种指派都最优(下图左)。
离散测度之间的 Monge 问题 Monge Problem between Discrete Measures
指派问题只能处理「点数相同、每个点质量相同」的情形。Monge 在 1781 年的原始问题更一般:两边的点带不同的质量。
对离散测度
Monge 问题寻找一个映射 $T:\{x_1,\dots,x_n\}\to\{y_1,\dots,y_m\}$:每个 $x_i$ 整体送往唯一的 $y_j$,并且恰好把 $\alpha$ 的质量「推成」$\beta$ 的质量——质量守恒(mass conservation):
因为每个 $b_j\gt0$,$T$ 必须是满射(每个目标都得有人来)。在所有满足质量守恒的映射中,最小化总运输代价(代价函数 $c(x,y)$):
用下标写:$j=\sigma(i)$,质量守恒就是 $\sum_{i\in\sigma^{-1}(j)}a_i=b_j$($\sigma^{-1}(j)$ 是被送到 $j$ 的源点集合)。
- 特例 = 指派问题:若 $n=m$ 且权重全是 $1/n$,质量守恒迫使 $T$ 是双射 $T(x_i)=y_{\sigma(i)}$,于是 Monge 问题就是 (2.2),代价矩阵为 $C_{i,j}\overset{\text{def.}}{=}c(x_i,y_j)$。
- 可能根本不存在:$n\ne m$ 时,即使不谈最优,Monge 映射也可能不存在——权重「凑不上」时就没有。当 $n\lt m$ 时一定不存在:$n$ 个源点最多只能打中 $n$ 个目标。
$\alpha$ 有 2 个点(各 ½),$\beta$ 有 3 个点(各 ⅓)。从 $\alpha$ 到 $\beta$ 的 Monge 映射有几个?
推前算子 Push-forward Operator
记号 $T_\sharp\alpha$ 读作「$\alpha$ 在 $T$ 下的推前(push-forward)」。对离散测度,它的意思非常朴素:每个质点跟着 $T$ 搬家,质量不变 Rem. 2.5:
若几个 $x_i$ 被送到同一个 $y_j$,它们的质量就在 $y_j$ 处累加——这正是 (2.4) 的右边。所以「$T_\sharp\alpha=\beta$」只是在说:搬完之后,每个位置上的质量恰好等于 $\beta$ 要求的量。
进阶一般测度的推前与 Monge 问题 Def. 2.1 Rem. 2.5–2.9
对 $T:\mathcal{X}\to\mathcal{Y}$,测度 $\alpha\in\mathcal{M}(\mathcal{X})$ 的推前 $\beta=T_\sharp\alpha\in\mathcal{M}(\mathcal{Y})$ 满足
等价地,对任意可测集 $B\subset\mathcal{Y}$:$\beta(B)=\alpha\big(\{x: T(x)\in B\}\big)=\alpha\big(T^{-1}(B)\big)$ (2.7)——「$\beta$ 在 $B$ 里的质量 = 所有会被送进 $B$ 的点在 $\alpha$ 中的质量」。$T_\sharp$ 保持正性与总质量(概率测度推前后仍是概率测度),并且是线性的:$T_\sharp(\alpha_1+\alpha_2)=T_\sharp\alpha_1+T_\sharp\alpha_2$。
- 有密度时 Rem. 2.6:若 $T$ 光滑且可逆,对 (2.6) 做变量替换得 $\rho_\alpha(x)=|\det T'(x)|\,\rho_\beta\big(T(x)\big)$ (2.8),$T'(x)$ 是 Jacobian 矩阵。上图中 $T'=2$,所以 $\rho_\beta=\rho_\alpha/2$。
- 一般测度的 Monge 问题 Rem. 2.7:$\min_T\big\{\int_{\mathcal{X}} c(x,T(x))\,\mathrm{d}\alpha(x) : T_\sharp\alpha=\beta\big\}$ (2.9)。
- 推前 vs 拉回 Rem. 2.8:函数的拉回 $T^\sharp g=g\circ T$ 与测度的推前互为伴随:$\int_{\mathcal{Y}} g\,\mathrm{d}(T_\sharp\alpha)=\int_{\mathcal{X}}(T^\sharp g)\,\mathrm{d}\alpha$。但即使 $\alpha,\beta$ 都有密度,$T_\sharp\alpha$ 的密度也不是 $T^\sharp\rho_\beta$(差一个 Jacobian)。原书因此提醒:OT 用于图像配准要小心,它不是「图像扭曲」(image warping)。
- 测度与随机变量 Rem. 2.9:随机变量 $X:\Omega\to\mathcal{X}$ 的分布就是 $\alpha=X_\sharp\mathbb{P}$;$\beta=T_\sharp\alpha$ 正是随机变量 $Y=T(X)$ 的分布。所以从 $\beta$ 采样只需:从 $\alpha$ 采样 $x$,再算 $y=T(x)$。
2.3 Kantorovich 松弛 Kantorovich Relaxation
Monge 的「整堆搬运」太死板。Kantorovich(1942)的关键一步是:允许把一个点的质量拆开,送往多个目标。这一松,问题就从棘手的组合优化变成了一个线性规划——永远有解,而且可以高效求解。
原书先总结了指派 / Monge 表述的三个毛病:① 排列只能比较均匀、同样大小的直方图;② 对一般权重,Monge 的推前表述可能没有满足质量守恒 (2.4) 的可行解;③ 指派问题是组合问题,Monge 问题 (2.9) 的可行集是非凸的——两者按原始形式都很难解。
Kantorovich 放弃了「确定性」:源点 $x_i$ 的质量可以分派到若干位置。这种概率性的运输(probabilistic transport)就是今天常说的质量拆分(mass splitting)。描述它的对象不再是排列 $\sigma$ 或映射 $T$,而是一个耦合矩阵(coupling matrix) $P\in\mathbb{R}_+^{n\times m}$:$P_{i,j}$ = 从 $i$ 流向 $j$ 的质量。
$P\mathbb{1}_m=\big(\sum_j P_{i,j}\big)_i$ 是行和:第 $i$ 个源点运出的总量必须等于 $a_i$;$P^\top\mathbb{1}_n=\big(\sum_i P_{i,j}\big)_j$ 是列和:第 $j$ 个目标收到的总量必须等于 $b_j$。
- $U(a,b)$ 有界、由 $n+m$ 个线性等式(加非负性)刻画,所以是一个凸多面体(convex polytope)——有限个矩阵的凸包。
- 它是对称的:$P\in U(a,b)\iff P^\top\in U(b,a)$。而 Monge 表述天生不对称(图 2.2 右:能从 $\alpha$ 到 $\beta$,却不能反过来)。
目标函数是 $P$ 的线性函数,约束是线性的——这是一个线性规划(linear program)(第 3 章专门讲怎么解)。和大多数线性规划一样,它的最优解不一定唯一。
左边竖着画的蓝色直方图是 $a$(源,行),上面的红色直方图是 $b$(目标,列),中间的热力图是耦合 $P$(颜色越深质量越多)。用下拉框切换三种耦合,拖动滑块改变 $a$、$b$ 的形状;把鼠标移到热力图上查看单个格子。代价 $C_{i,j}=|x_i-y_j|^2$。
三种耦合的行和、列和完全一样(都在 $U(a,b)$ 里),代价却差很多。独立耦合是一片「云」,每个源点都往所有目标送一点,代价比最优耦合高得多;反单调耦合把最小的 $x$ 送到最大的 $y$,是最贵的。最优耦合则是一条从左上到右下的细「阶梯」——小的 $x$ 送到小的 $y$,这就是 §2.6 要讲的一维单调重排,也是原书 Fig. 2.6 左图里耦合集中在 Monge 映射图像上的原因。注意最优耦合的非零格子很少:它是多面体 $U(a,b)$ 的一个顶点(第 3 章 §3.4)。
Monge 映射 vs Kantorovich 耦合 Monge Maps vs Kantorovich Couplings
同一对点云,两种搬法放在一起比一比:Monge 只能「整堆倒」,Kantorovich 可以「分着倒」。
蓝色圆点 = 源 $\alpha$,红色方块 = 目标 $\beta$,面积 ∝ 质量。拖动任意点改变位置;单击一个点(不拖动)改变它的质量(1 → 2 → 3 → 1 份)。代价 $c(x,y)=\|x-y\|^2$。Monge 最优映射通过枚举所有满足质量守恒的映射得到。
「图 2.2 右」这组数据里,Monge 映射存在,而且 Kantorovich 的最优解恰好不拆分——两个最优值相同。点「反过来」或「一个点拆给两个」:Monge 映射根本不存在,Kantorovich 却照样给出答案,橙色虚线圈标出被拆分的源点。随便单击几个点改质量,你会发现 Monge 映射大多数时候都不存在——而一旦存在,永远有 Kantorovich ≤ Monge(把 Monge 映射写成耦合 $P_{i,T(i)}=a_i$,它就是 $U(a,b)$ 中的一个元素)。
Kantorovich 问题有一个非常自然的经济解释(亦见 Hitchcock, 1941)。一位运营者管理 $n$ 个仓库和 $m$ 个工厂:仓库 $i$ 存有 $a_i$ 单位原料,工厂 $j$ 恰好需要 $b_j$ 单位才能开工。原料全部要运到工厂。一家(垄断的)运输公司把一单位原料从 $i$ 运到 $j$ 收费 $C_{i,j}$,并且线性计价:运 $a$ 单位收 $a\times C_{i,j}$。
运营者解线性规划 (2.11),得到运输方案 $P^\star$:$P^\star_{i,j}$ 就是从仓库 $i$ 运往工厂 $j$ 的量,总共付给运输公司 $\langle P^\star,C\rangle$。§2.5 会继续这个故事,引出对偶问题。
置换矩阵也是耦合 Permutation Matrices as Couplings
指派问题其实是 Kantorovich 问题的一个「子问题」。对排列 $\sigma$,定义对应的(缩放过的)置换矩阵(permutation matrix):
于是 $\langle C,P_\sigma\rangle=\frac1n\sum_i C_{i,\sigma_i}$——指派问题 (2.2) 就是把 Kantorovich 问题 (2.11) 的耦合限制为置换矩阵。置换矩阵只是 Birkhoff 多面体(Birkhoff polytope) $U(\mathbb{1}_n/n,\mathbb{1}_n/n)$ 的一小部分(例如 $\mathbb{1}_n\mathbb{1}_n^\top/n^2$ 可行但不是置换矩阵),在更大的集合上取最小只会更小:
下面的命题说:其实两边相等——对指派问题,松弛是「紧」的(tight)。
若 $m=n$ 且 $a=b=\mathbb{1}_n/n$,则问题 (2.11) 存在一个最优解 $P_{\sigma^\star}$ 是置换矩阵,对应的 $\sigma^\star$ 就是指派问题 (2.2) 的最优排列。
证明思路
两块基石拼在一起:
- Birkhoff 定理(1946):$U(\mathbb{1}_n/n,\mathbb{1}_n/n)$ 的顶点(极点)恰好是全部(缩放的)置换矩阵。
- 线性规划基本定理:线性目标在非空多面体上若有有限最小值,则一定在某个顶点处取到(沿着目标下降的方向走,总会走到一个角上)。
所以最小值在某个置换矩阵处取到。下面的演示在 $2\times2$ 的情形把这件事画了出来。
$n=m=2$ 时,给定 $a,b$,耦合只剩一个自由度 $t=P_{1,1}$:$P(t)=\begin{bmatrix}t & a_1-t\\ b_1-t & 1-a_1-b_1+t\end{bmatrix}$,非负性把 $t$ 限制在一个区间里——$U(a,b)$ 就是一条线段。拖动滑块沿线段移动,看代价如何变化;换一个代价矩阵 $C$ 试试。
代价 $\langle C,P(t)\rangle$ 是 $t$ 的一次函数,斜率为 $C_{11}-C_{12}-C_{21}+C_{22}$:斜率为正,最优在左端点;为负,在右端点——总之在线段的端点,即多面体的顶点。点「a = b = (½, ½)」:两个顶点恰好是 ½ × 单位矩阵和 ½ × 交换矩阵——两个置换矩阵(Prop. 2.1)。选「正方形」:斜率为 0,整条线段都是最优解,这就是 Rem. 2.3 的「最优解不唯一」。
原书 Fig. 2.4 对比了两种情形:左边是两团同样点数的经验分布,最优耦合是一个完美匹配(Prop. 2.1);右边两团带不同权重的点云无法一对一匹配,只能用一般的 Kantorovich 耦合——上面「Monge vs Kantorovich」演示里的「随机质量」就是这种情况。
对 (2.3) 形式的离散测度,把所有点对的代价存进矩阵 $C_{i,j}\overset{\text{def.}}{=}c(x_i,y_j)$,定义
也就是说,离散测度之间的 OT 和它们权重向量之间的 OT 是同一个问题,只不过 $C$ 由支撑点决定。写成 $\mathcal{L}_c(\alpha,\beta)$ 的好处是把「同时依赖权重和位置」显式地写了出来——位置只通过代价函数 $c$ 进入。
应用一瞥 Rem. 2.12:最优运输方案本身(耦合 $P$ 或 Monge 映射 $T$)在数据科学中用途很广,尤其是图像处理——对比度均衡、纹理合成、图像匹配与融合、医学影像、形状配准、数字水印;在天体物理中用于重建早期宇宙,在音乐转录、经济学中的匹配数据分析里也有应用;OT 计算出的映射还可以用来做采样和贝叶斯推断。
进阶一般测度之间的 Kantorovich 问题与概率解释 Rem. 2.13–2.14
耦合 = 乘积空间上的联合分布 Rem. 2.13。对任意测度,耦合是 $\mathcal{X}\times\mathcal{Y}$ 上的概率测度 $\pi$(离散情形就是 $\pi=\sum_{i,j}P_{i,j}\delta_{(x_i,y_j)}$)。质量守恒 (2.10) 变成对边缘的约束:
其中 $P_{\mathcal{X}}(x,y)=x$、$P_{\mathcal{Y}}(x,y)=y$ 是两个投影;等价地:对所有集合 $A,B$,$\pi(A\times\mathcal{Y})=\alpha(A)$、$\pi(\mathcal{X}\times B)=\beta(B)$。Kantorovich 问题推广为
这是测度空间上的无穷维线性规划。若 $\mathcal{X},\mathcal{Y}$ 紧、$c$ 连续,则解一定存在:$\mathcal{U}(\alpha,\beta)$ 在测度的弱拓扑下紧,$\pi\mapsto\int c\,\mathrm{d}\pi$ 连续,而且约束集非空(例如 $\alpha\otimes\beta$)。
概率解释 Rem. 2.14:用随机变量的语言,(2.15) 等价于
即:$X$ 的分布固定为 $\alpha$、$Y$ 的分布固定为 $\beta$,在它们所有可能的「相关方式」(联合分布 $\pi$)中,找使平均代价最小的那一种。
为什么 Kantorovich 问题 (2.11) 总是有解,而 Monge 问题不一定?
$n=m=3$,$a=b=(\tfrac13,\tfrac13,\tfrac13)$。线性规划求解器返回的最优耦合(一个顶点)最可能长什么样?
2.4 最优传输的度量性质 Metric Properties of Optimal Transport
OT 不只是一个优化问题:当代价来自一个距离时,最优值本身就是直方图之间的一个距离。换句话说,OT 提供了一种标准的方法,把「点与点之间的距离」提升(lift)为「分布与分布之间的距离」。
先看直方图的情形。借用 Rubner 等人(2000)的说法,代价矩阵 $C$ 称为地面距离(ground metric):它是固定的,描述「柱与柱之间的替换代价」,被所有要比较的直方图共用。
设 $n=m$,$p\ge1$,$C=D^p$(逐元素 $p$ 次方),其中 $D\in\mathbb{R}_+^{n\times n}$ 是 $\{1,\dots,n\}$ 上的一个距离:① 对称;② $D_{i,j}=0\iff i=j$;③ 三角不等式 $D_{i,k}\le D_{i,j}+D_{j,k}$。那么
(它依赖于 $D$)是 $\Sigma_n$ 上的一个距离,称为 $p$-Wasserstein 距离(p-Wasserstein distance):对称、非负、$\mathrm{W}_p(a,b)=0\iff a=b$,并且满足三角不等式 $\mathrm{W}_p(a,c)\le\mathrm{W}_p(a,b)+\mathrm{W}_p(b,c)$。
证明思路
对称与正定很容易:$D^p$ 对角线为 0,所以 $\mathrm{diag}(a)$(原地不动)是 $a\to a$ 的零代价方案,$\mathrm{W}_p(a,a)=0$;若 $a\ne b$,任何可行耦合都必须在对角线外有正元素(总得搬点什么),而 $D^p$ 的非对角元都为正,所以 $\mathrm{W}_p(a,b)\gt0$;$D^p$ 对称推出 $\mathrm{W}_p$ 对称($P\in U(a,b)\iff P^\top\in U(b,a)$)。
三角不等式靠「粘合」(gluing):设 $P$、$Q$ 分别是 $a\to b$、$b\to c$ 的最优方案,令 $\tilde b_j=b_j$(若 $b_j\gt0$),否则 $\tilde b_j=1$,定义 $S\overset{\text{def.}}{=}P\,\mathrm{diag}(1/\tilde b)\,Q$。由于 $b_j=0$ 时必有 $P_{i,j}=0$,可验证 $S\mathbb{1}_n=a$、$S^\top\mathbb{1}_n=c$,即 $S\in U(a,c)$。然后
三个「≤」依次来自:$S$ 只是一个可行方案(不一定最优);$D$ 的三角不等式;Minkowski 不等式。最后的等号用到 $\sum_k Q_{jk}=b_j$ 与 $\sum_i P_{ij}=b_j$,把多余的求和消掉。
三角不等式的证明是本章最漂亮的构造之一。下面的步骤播放器用一个 5 格的小例子把「接力运输」画出来(位置 $0,1,2,3,4$,$D_{ij}=|i-j|$,$p=2$)。
第 1 步:a → b 的最优方案 P
想证明 $\mathrm{W}_p(a,c)\le\mathrm{W}_p(a,b)+\mathrm{W}_p(b,c)$,只需构造一个从 $a$ 到 $c$ 的可行方案 $S$,使它的代价不超过右边——真正的最优方案只会更便宜。先取第一段:$a\to b$ 的最优方案 $P$(紫色,线宽 ∝ 质量)。
第 2 步:b → c 的最优方案 Q
再取第二段:$b\to c$ 的最优方案 $Q$(青色)。现在货物可以分两段走:先按 $P$ 运到 $b$ 的各格,再按 $Q$ 运到 $c$。
第 3 步:在 b 处「接力」——粘合出 S
到达 $b$ 第 $j$ 格的货物,按 $Q$ 第 $j$ 行的比例 $Q_{jk}/b_j$ 继续分发。于是「$i\to j\to k$」的量是 $P_{ij}Q_{jk}/b_j$,对中转站 $j$ 求和得 $S=P\,\mathrm{diag}(1/\tilde b)\,Q$(橙色直达线)。它的行和是 $a$、列和是 $c$:$S\in U(a,c)$。
第 4 步:比较代价
直达 $i\to k$ 的距离不超过绕道 $i\to j\to k$($D$ 的三角不等式),再配合 Minkowski 不等式就得到 $\langle S,D^p\rangle^{1/p}\le\mathrm{W}_p(a,b)+\mathrm{W}_p(b,c)$;而 $S$ 未必最优,所以 $\mathrm{W}_p(a,c)\le\langle S,D^p\rangle^{1/p}$。本例数值:
若 $0\lt p\le1$,$D^p$ 本身就是一个距离($t\mapsto t^p$ 是凹的,保持三角不等式)。因此 $p\ge1$ 时 $\mathrm{W}_p(a,b)$ 是距离;而 $p\le1$ 时,是 $\mathrm{W}_p(a,b)^p=\mathrm{L}_{D^p}(a,b)$ 这个量(不开 $p$ 次方根)构成单纯形上的距离。
应用 Rem. 2.16:OT 能自动把「柱之间的地面距离」提升为「直方图之间的距离」,这使它成为计算机视觉与机器学习中比较直方图的首选工具——例如把局部特征(图像描述子)汇总成「特征袋」(bag of features)直方图来做检索、聚类、分类。Rubner 等人(2000)的地标性论文开启了检索与聚类方面的应用(推土机距离(earth mover's distance, EMD)),近年又被用于词袋(bag-of-words)的降维与文本分类,以及训练输出词袋的多类分类器的损失函数。
- 忘了开方:$\mathrm{W}_p$ 是 $\mathrm{L}_{D^p}$ 的 $p$ 次方根。例如 $\mathrm{W}_2=\sqrt{\mathrm{L}_{D^2}}$;线性规划直接给出的是 $\mathrm{W}_2^2$。
- 以为 W 与地面距离无关:同样的 $a,b$,换一个 $D$,$\mathrm{W}_p$ 就完全不同。$D$ 是距离才能保证 $\mathrm{W}_p$ 是距离;把 $D$ 换成 0-1 代价,OT 就退化成不看位置的总变差(§2.6)。
几何直觉与弱收敛 Geometric Intuition and Weak Convergence
$\mathrm{W}_p$ 最重要的性质是:它是一个弱距离(weak distance) Rem. 2.18——它能比较支撑互不重叠的奇异分布(比如离散分布),并且能量化两个分布之间的空间位移。「经典」的距离或散度做不到这一点:$L^2$ 范数只能用于有密度的测度;离散的 $\ell^2$ 范数要求所有点落在一个事先固定的网格上。
最极端的例子是两个 Dirac:$\mathcal{U}(\delta_x,\delta_y)$ 里只有一个耦合 $\delta_{(x,y)}$(全部质量从 $x$ 搬到 $y$),于是对任意 $p$,
当 $x\to y$ 时 $\mathcal{W}_p(\delta_x,\delta_y)\to0$——而逐点比较的量对两个不同位置的 Dirac 永远给出「完全不同」。
上图:蓝色 $a$ 固定,红色 $b$ 是 $a$ 向右平移 $\tau$。下图:五种「距离」随 $\tau$ 的变化曲线(各自除以自己在 $\tau\in[0,0.6]$ 上的最大值,方便比较形状),竖线是当前的 $\tau$。拖动滑块、切换峰的形状。
$\mathrm{W}_1$ 和 $\mathrm{W}_2$ 都恰好等于 $\tau$:一条直线,平移多少就「看见」多少。逐格比较的 L² 距离和 0-1 代价的 OT(= 总变差,§2.6)一旦两个峰不再重叠就饱和了——平移 0.2 和平移 0.6 在它们眼里一样远。KL 散度更糟:对方块和尖峰,只要有一点平移就是 $\infty$。选「尖峰」看 Rem. 2.18:两个 Dirac 之间 $\mathrm{W}_p=|x-y|$,随 $\tau\to0$ 连续地趋于 0。
在紧空间 $\mathcal{X}$ 上,称概率测度序列 $(\alpha_k)$ 弱收敛到 $\alpha$(记作 $\alpha_k\rightharpoonup\alpha$),如果对每个连续函数 $g$,都有 $\int g\,\mathrm{d}\alpha_k\to\int g\,\mathrm{d}\alpha$(非紧空间上还需对 $g$ 加衰减条件)。它对应于随机向量的依分布收敛。
可以证明:$\alpha_k\rightharpoonup\alpha$ 等价于 $\mathcal{W}_p(\alpha_k,\alpha)\to0$(Villani 2009, Thm 6.8;在无界空间上还需 $p$ 阶以内矩的收敛)。所以 $\mathcal{W}_p$ 恰好是用来度量弱收敛的距离。
平移与均值 Translations
在欧氏空间 $\mathbb{R}^d$ 上取 $c(x,y)=\|x-y\|^2$ 时,$\mathcal{W}_2$ 可以把「平移」干净地分离出来 Rem. 2.19。记 $T_\tau:x\mapsto x-\tau$ 为平移,$m_\alpha=\int x\,\mathrm{d}\alpha(x)$ 为 $\alpha$ 的均值,则
特别地,把两个分布都挪到均值为 0 的位置($\tilde\alpha=T_{m_\alpha\sharp}\alpha$,$\tilde\beta$ 同理),得到一个很好用的分解:
非正式地,$p\to+\infty$ 的极限是
即「让最长的那一段搬运尽量短」(sup 按 $\pi$ 的本性上确界理解)。与 $p\lt\infty$ 不同,这是一个非凸优化问题,数值上和理论上都难处理。它与两个分布支撑之间的 Hausdorff 距离有关(§10.6.1)。
进阶一般测度之间的 Wasserstein 距离 Rem. 2.17 Prop. 2.3
设 $\mathcal{X}=\mathcal{Y}$,$p\ge1$,$c(x,y)=d(x,y)^p$,其中 $d$ 是 $\mathcal{X}$ 上的距离。则 $\mathcal{W}_p(\alpha,\beta)\overset{\text{def.}}{=}\mathcal{L}_{d^p}(\alpha,\beta)^{1/p}$ (2.18) 是 $\mathcal{M}_+^1(\mathcal{X})$ 上的距离:对称、非负、$\mathcal{W}_p(\alpha,\beta)=0\iff\alpha=\beta$,且满足三角不等式。
证明与 Prop. 2.2 相同,只是需要一般测度版本的「粘合」:把 $(\alpha,\beta)$ 与 $(\beta,\gamma)$ 的最优耦合粘成 $(\alpha,\gamma)$ 的一个耦合(Villani 的 gluing lemma)。
把一个很窄的尖峰(近似 Dirac)向右平移 0.3。KL 散度和 W₁ 分别是多少?
2.5 对偶问题 Dual Problem
每个线性规划都有一个「影子问题」——对偶问题。Kantorovich 问题是带约束的凸(线性)最小化,它的对偶是带约束的凹最大化。对 OT 来说,对偶变量有非常具体的含义:价格。这一节先写出对偶,再用原书的「承运商定价」故事把它讲透。
Kantorovich 问题 (2.11) 有对偶形式
其中可行的对偶变量集合为
(原书把 $f_i+g_j\le C_{i,j}$ 简写为 $f\oplus g\le C$。)这样的对偶变量 $f,g$ 常被称为 Kantorovich 势(Kantorovich potentials)。
证明思路(Lagrange 对偶)
这是线性规划强对偶定理的直接推论(Bertsimas & Tsitsiklis, Thm 4.4);其中较容易的一半——右边是 $\mathrm{L}_C(a,b)$ 的下界——下面的定价故事里就会看到(亦见 Rem. 3.2)。用 Lagrange 乘子 $f,g$ 把两个等式约束「收进」目标函数:
(若 $P$ 违反约束,内层的 max 会把目标推到 $+\infty$,所以这等于原问题。)对有限维线性规划可以交换 min 与 max,整理得
$\displaystyle\max_{(f,g)}\ \langle a,f\rangle+\langle b,g\rangle+\min_{P\ge0}\ \langle C-f\mathbb{1}_m^\top-\mathbb{1}_n g^\top,\ P\rangle .$
最后注意 $\min_{P\ge0}\langle Q,P\rangle$ 在 $Q\ge0$ 时为 0,否则为 $-\infty$(某一格为负就可以让该格的 $P$ 无限大)。所以只有 $C_{i,j}-f_i-g_j\ge0$ 的 $(f,g)$ 才有意义——这正是约束 $R(C)$。
承运商的定价故事 A Pricing Story Rem. 2.21
回到 Rem. 2.10 的仓库与工厂。运营者本来要自己解线性规划 (2.11),按 $P^\star$ 运货,付给运输公司 $\langle P^\star,C\rangle$。
- 外包物流(outsourcing logistics):运营者没有能力解线性规划,于是把任务外包给一家承运商。承运商把物流拆成「取货」和「送货」:在仓库 $i$ 每取一单位收 $f_i$(不管送到哪),在工厂 $j$ 每送一单位收 $g_j$(不管从哪来)。仓库 $i$ 恰有 $a_i$ 单位、工厂 $j$ 恰需 $b_j$ 单位,所以总报价是 $\langle f,a\rangle+\langle g,b\rangle$。
- 定价(setting prices):价格可以是负的!把所有 $f_i$ 减去同一个数、所有 $g_j$ 加上同一个数,总价不变(因为总取货量 = 总送货量)。承运商可以假装「倒贴钱帮你取货」,再在送货时加倍收回来。承运商当然想把 $f,g$ 定得越高越好。
- 检查价格(checking prices):运营者没有竞争报价可比,又算不起 $\mathrm{L}_C(a,b)$,怎么判断报价是否合理?有个便宜得多的办法:按这套价格,从 $i$ 运一单位到 $j$ 实际花 $f_i+g_j$;而运输公司的公道价是 $C_{i,j}$。只要有某一对 $(i,j)$ 满足 $f_i+g_j\gt C_{i,j}$,承运商就在这条路线上多收了钱,运营者应当拒绝。
- 最优价格 = 对偶问题(optimal prices as a dual problem):若 $n\times m$ 个不等式 $f_i+g_j\le C_{i,j}$ 全部成立,运营者可以放心接受:对任何运输方案 $P$(包括最优的 $P^\star$),利用行和、列和约束,
也就是说,自己动手一定不会比承运商的报价更便宜(这就是弱对偶)。于是承运商要在约束 $f_i+g_j\le C_{i,j}$ 下最大化 $\langle f,a\rangle+\langle g,b\rangle$——正是问题 (2.20)。§3.1 会证明(强对偶):承运商能拿到的最高报价恰好等于运营者自己运的最低成本 $\mathrm{L}_C(a,b)$。
左:地图(可拖动)上的 3 个仓库(蓝,面积 ∝ $a_i$)和 3 个工厂(红,面积 ∝ $b_j$),运费 $C_{i,j}$ = 两点距离(保留 1 位小数)。右:每条路线的约束 $f_i+g_j\le C_{i,j}$,红格 = 违反(地图上画红虚线),绿格 = 紧(恰好相等),粗框 = 最优方案 $P^\star$ 使用的路线。拖动滑块调价格,试着把报价提到最高。
从全 0 开始逐个提价:报价上升,直到某些路线变成绿色(紧)——再提就会变红被拒绝。所能达到的最高报价恰好是 $\mathrm{L}_C(a,b)$(强对偶)。点「最优定价」后注意:粗框路线($P^\star$ 真正在用的)全是绿色——这就是互补松弛 (2.23)。点「f 全减 1、g 全加 1」:每个 $f_i+g_j$ 和总报价都不变,所以最优价格不唯一,价格可以为负。地图上每个点旁边标的就是它的「价格」,原书 Fig. 2.8 用颜色画的正是这件事。
互补松弛:最优方案只走「紧」路线 Complementary Slackness
由拉格朗日函数 (2.22) 的原始-对偶最优性条件,可以定位最优运输方案的支撑(亦见 §3.3):
承运商把所有取货价 $f_i$ 都减 5、所有送货价 $g_j$ 都加 5。总报价会怎样?
已知 $(f,g)$ 是对偶最优解,而某条路线满足 $f_i+g_j\lt C_{i,j}$(严格小于)。关于最优方案 $P^\star$ 可以断定什么?
进阶一般测度的对偶与无约束形式 Rem. 2.22–2.23 Prop. 2.5
测度天然与连续函数「配对」(测度只能通过对连续函数积分来访问),所以一般测度的对偶变量是一对连续函数。
其中 $\mathcal{R}(c)=\{(f,g)\in\mathcal{C}(\mathcal{X})\times\mathcal{C}(\mathcal{Y}) : f(x)+g(y)\le c(x,y)\ \forall(x,y)\}$ (2.25),$f,g$ 同样称为 Kantorovich 势。
- 离散情形 (2.20) 就是在支撑点上取样:$(f_i,g_j)=(f(x_i),g(y_j))$。互补松弛推广为 $\mathrm{Supp}(\pi)\subset\{(x,y): f(x)+g(y)=c(x,y)\}$ (2.26)。
- 与原问题 (2.15) 不同,对偶解的存在性并不平凡:约束集不紧、目标不强制。借助第 5 章 §5.1 的 $c$-变换,当 $c=d^p$($p\ge1$)时可以证明最优 $(f,g)$ 必为 Lipschitz 函数,从而把约束换成紧的。
- 无约束对偶 Rem. 2.23:当 $\alpha,\beta$ 都是概率测度时,可改写为 $\mathcal{L}_c(\alpha,\beta)=\sup_{f,g}\int f\,\mathrm{d}\alpha+\int g\,\mathrm{d}\beta+\min_{\alpha\otimes\beta}(c-f\oplus g)$ (2.27)(最小值按 $\alpha\otimes\beta$ 的本性下确界理解)。它来自给原问题添加冗余约束 $\int\mathrm{d}\pi=1$(原书注明这是 Francis Bach 指出的)。
Brenier 定理:什么时候最优耦合就是一个映射 Brenier's Theorem Rem. 2.24
Kantorovich 松弛允许拆分质量;可是在很重要的一类情形下,最优耦合其实不拆分——它就是一个 Monge 映射。这就是 Brenier 定理(1991;同一时期还有 Cuesta–Matrán、Rüschendorf–Rachev 的类似结果,以及 Knott–Smith 的先驱工作)。
设 $\mathcal{X}=\mathcal{Y}=\mathbb{R}^d$,$c(x,y)=\|x-y\|^2$,两个测度都有有限的二阶矩。若其中至少有一个(记为 $\alpha$)关于 Lebesgue 测度有密度 $\rho_\alpha$,则 Kantorovich 问题 (2.15) 的最优 $\pi$ 唯一,并且集中在某个 Monge 映射 $T:\mathbb{R}^d\to\mathbb{R}^d$ 的图像 $\{(x,T(x))\}$ 上,即 $\pi=(\mathrm{Id},T)_\sharp\alpha$:
而且 $T$ 由一个凸函数的梯度唯一给出:$T(x)=\nabla\varphi(x)$,其中 $\varphi$ 是(差一个常数意义下)唯一满足 $(\nabla\varphi)_\sharp\alpha=\beta$ 的凸函数。它与对偶势 $f$ 的关系是 $\varphi(x)=\tfrac{\|x\|^2}{2}-f(x)$。
证明思路
- 展开平方:$\int c\,\mathrm{d}\pi=C_{\alpha,\beta}-2\int\langle x,y\rangle\,\mathrm{d}\pi$,常数 $C_{\alpha,\beta}=\int\|x\|^2\mathrm{d}\alpha+\int\|y\|^2\mathrm{d}\beta$ 与 $\pi$ 无关。所以最小化代价 ⇔ 最大化相关性 $\int\langle x,y\rangle\,\mathrm{d}\pi$。
- 它的对偶是 $\min\{\int\varphi\,\mathrm{d}\alpha+\int\psi\,\mathrm{d}\beta : \varphi(x)+\psi(y)\ge\langle x,y\rangle\}$ (2.29),与 (2.25) 的关系为 $(\varphi,\psi)=(\tfrac{\|\cdot\|^2}{2}-f,\ \tfrac{\|\cdot\|^2}{2}-g)$。
- 约束可以换成 $\psi\ge\varphi^*$,其中 $\varphi^*(y)=\sup_x\langle x,y\rangle-\varphi(x)$ 是 Legendre 变换(Legendre transform) (2.30);目标对 $\psi$ 单调,所以直接取 $\psi=\varphi^*$,得到无约束问题 $\min_\varphi\int\varphi\,\mathrm{d}\alpha+\int\varphi^*\mathrm{d}\beta$ (2.31)。再用一次同样的论证,可以把 $\varphi$ 换成凸函数 $\varphi^{**}$,于是不妨设 $\varphi$ 凸(离散版本见 §3.2,一般代价见 §5.1)。
- 互补松弛 (2.26) 说 $\pi$ 集中在 $\{\varphi(x)+\varphi^*(y)=\langle x,y\rangle\}$ 上,这等价于 $y\in\partial\varphi(x)$。凸函数几乎处处可微,而 $\alpha$ 有密度,所以对 $\alpha$-几乎每个 $x$,$y=\nabla\varphi(x)$ 是唯一确定的——即 $\pi=(\mathrm{Id},\nabla\varphi)_\sharp\alpha$。
- 松弛是紧的:在 $\mathcal{W}_2$ 且 $\alpha$ 有密度时,Monge 问题 (2.9) 与 Kantorovich 松弛 (2.15) 的最优值相等。这是 Prop. 2.1(均匀离散情形最优解可取为置换矩阵)的连续版本。
- 高维的「递增函数」:最优映射必须是凸函数的梯度。正因如此,OT 可以用来在任意维数定义分位数函数,进而用于分位数回归(Carlier 等, 2016)。
- 可以推广:「$\alpha$ 有密度」可以减弱为「$\alpha$ 不给 Hausdorff 维数 ≤ $d-1$ 的小集合(如超曲面)赋质量」;代价也可以换成 $c(x,y)=h(x-y)$,$h$ 严格凸。
进阶Monge–Ampère 方程 Rem. 2.25
对有密度的测度,把 Brenier 映射 $T=\nabla\varphi$ 代入变量替换公式 (2.8),可知 $\varphi$ 是(差一个常数意义下)唯一的凸解:
$\partial^2\varphi$ 是 Hessian 矩阵。Monge–Ampère 算子 $\det(\partial^2\varphi)$ 可以看作一种非线性、退化的 Laplace 算子:当映射接近恒等,$\nabla\varphi=\mathrm{Id}+\varepsilon\nabla\psi$ 时,$\det(\partial^2\varphi)=1+\varepsilon\Delta\psi+o(\varepsilon)$,线性化后正是 Laplace 算子 $\Delta$。凸性约束保证 $\det(\partial^2\varphi)\ge0$,这是方程有解的必要条件。一般情况下解不必光滑(输入是 Dirac 之类的测度时要用 Alexandrov 弱解);对 OT 而言右端还依赖 $\nabla\varphi$,离散化和边界条件都带来技术难点。基于不动点迭代的相关求解器也被用于图像配准。
2.6 特殊情形 Special Cases
一般情况下,计算 OT 需要专门的数值算法(第 3、4、7 章)。但有几类问题可以直接写出答案:0-1 代价、一维分布、高斯分布。它们既是很好的直觉来源,也是检验算法的「标准答案」。
0-1 代价与总变差 Binary Cost and Total Variation
若代价矩阵在对角线上为 0、其余为 1,即 $C=\mathbb{1}_{n\times n}-\mathbb{I}_n$(「留在原地免费,搬到别处一律花 1」),则 OT 的值只取决于 $a$ 与 $b$ 的逐格差:
为什么:第 $i$ 格最多能有 $\min(a_i,b_i)$ 的质量原地不动(代价 0),其余质量无论搬到哪里都花 1;而「多出来的」恰好能填满「缺的」,所以最小代价就是需要移动的总量 $\sum_i(a_i-b_i)_+=\tfrac12\|a-b\|_1$。
注意:原书此处写作 $\mathrm{L}_C(a,b)=\|a-b\|_1$,差一个因子 ½。用最简单的例子即可验证:$a=(1,0)$、$b=(0,1)$,只需搬 1 单位质量、代价为 1,而 $\|a-b\|_1=2$。下面的演示用线性规划直接验证。
推广到一般测度 Rem. 2.27:代价 $c(x,y)$ 在 $x=y$ 时为 0、否则为 1(Kronecker 代价)时,OT 距离就是两个测度之间的总变差(total variation)距离(见 Example 8.2;在 $\mathrm{TV}(\alpha,\beta)=\sup_A|\alpha(A)-\beta(A)|$ 的约定下,它对离散测度恰为 $\tfrac12\|a-b\|_1$)。这样的「地面距离」没有任何几何:远近一视同仁,这正是 §2.4 平移演示中那条会饱和的红色曲线。
5 个柱子,蓝色是 $a$、红色是 $b$。上下拖动柱顶改变高度(自动归一化)。灰色部分是 $\min(a_i,b_i)$——可以原地不动的质量。读数里的值由线性规划(Book.ot.emd)精确求出。
无论怎么拖,0-1 代价的 OT 都精确等于 ½‖a − b‖₁(不是 ‖a − b‖₁)。对比最后两个按钮:「δ₁ → δ₂」与「δ₁ → δ₅」的 0-1 代价 OT 都是 1——它分不出「搬到隔壁」和「搬到最远处」;而用 $|i-j|$ 作地面距离的 $\mathrm{W}_1$ 分别是 1 和 4。OT 的几何感完全来自地面距离。
一维情形:排序就是最优传输 1-D Case
在实数轴上,OT 有一个极其简单的答案:把两边各自排好序,按顺序配对。
设 $\mathcal{X}=\mathbb{R}$,$\alpha=\frac1n\sum_{i=1}^n\delta_{x_i}$、$\beta=\frac1n\sum_{j=1}^n\delta_{y_j}$,并且(不失一般性)点已排好序:$x_1\le\dots\le x_n$,$y_1\le\dots\le y_n$。则
也就是说,(在点互不相同时)局部地看,$\mathcal{W}_p$ 就是两个排好序的向量之间的 $\ell^p$ 距离。「局部」是因为:点一移动,排序可能改变,向量表示也随之改变。
利用一维的计算还能高效求解圆周上的 OT(Delon 等, 2010);而当代价是距离的凹函数(例如 $p\lt1$)时,最优方案的行为截然不同,但也有高效的求解器(Delon 等, 2012)。
对一般的(带权重的)一维测度,把「排序」说精确就要用到累积分布函数和它的「反函数」。
对 $\mathbb{R}$ 上的测度 $\alpha$,累积分布函数(cumulative distribution function)和它的伪逆——(广义)分位数函数(generalized quantile function)——分别是
对任意 $p\ge1$,
$p=1$ 时还有更简单的形式——直接比较两个累积分布函数:
最优的 Monge 映射(满足 $T_\sharp\alpha=\beta$)是
上:蓝色 $\alpha$(竖线朝上)与红色 $\beta$(竖线朝下),紫色连线是最优耦合(线宽 ∝ 质量)。拖动竖线顶端:左右移动位置,上下改变质量。左下:两个累积分布函数,阴影面积 = $\mathcal{W}_1$ (2.37)。右下:两个分位数函数,阴影面积同样 = $\mathcal{W}_1$ (2.36)。把鼠标移到右下图上,看某个分位 $r$ 对应哪一对点。
这就是原书 Fig. 2.11 的做法:用累积分布函数与分位数函数计算一维 OT。紫色连线永远不交叉——最优耦合是单调的。左右两张图的阴影面积相等:一个是「横着」积分($x$ 方向比较 $\mathcal{C}_\alpha$ 与 $\mathcal{C}_\beta$),一个是「竖着」积分($r$ 方向比较分位数)——同一块区域的两种切法。读数中的第三个数是通用线性规划求得的精确值,三者一致。选「等权、等数目」时,分位数函数都是阶梯宽度相同的台阶,(2.36) 就退化为排序后逐对相减的 (2.33)。
- 映射方向:最优映射是 $T=\mathcal{C}_\beta^{-1}\circ\mathcal{C}_\alpha$——先用 $\alpha$ 的累积分布求出「$x$ 在 $\alpha$ 中的分位」,再到 $\beta$ 里找同一分位的点;写反成 $\mathcal{C}_\alpha^{-1}\circ\mathcal{C}_\beta$ 就是从 $\beta$ 到 $\alpha$ 的映射了。
- 排序配对只在一维成立:二维以上没有「从小到大」的全序,Monge 映射要靠 Brenier 定理(凸函数的梯度),一般只能数值求解。
直方图均衡化与位移插值 Histogram Equalization and Displacement Interpolation
Rem. 2.29 一维 OT 可以做直方图均衡化(histogram equalization),用于规范灰度图像的色调。把两幅同样大小($n\times m$ 像素)图像的灰度值(0 = 黑,1 = 白)按固定顺序排成向量 $\bar x$、$\bar y$;各自排序得到置换 $\sigma_1,\sigma_2$,则 $\sigma=\sigma_2\circ\sigma_1^{-1}$ 就是两个灰度分布之间的最优指派。把第 $i$ 个像素的灰度换成 $\bar y_{\sigma(i)}$,就得到一幅灰度分布与 $\bar y$ 完全相同的「均衡化」图像。更进一步,$t\mapsto(1-t)\bar x_i+t\,\bar y_{\sigma(i)}$ 在原图与均衡化图像之间插值,其像素分布正是两者之间的位移插值(displacement interpolation)(定义见 (7.7);原书 Fig. 2.10 展示了 $t=0,0.25,\dots,1$ 的图像与直方图)。
虚线是 $\alpha$(蓝)与 $\beta$(红),紫色是 $t$ 时刻的插值。上:线性混合 $(1-t)\alpha+t\beta$;下:位移插值——每一份质量沿最优(单调)配对从 $x$ 匀速走到 $T(x)$,位于 $(1-t)x+tT(x)$。拖动 $t$ 或点「播放」,切换不同的例子。
线性混合只是把 $\alpha$ 调暗、把 $\beta$ 调亮,中间时刻出现「两处都有一半」的奇怪分布;位移插值则让质量真的移动过去,形状平滑变形。两者的均值相同(都是 $(1-t)m_\alpha+tm_\beta$),差别全在形状。选「两个高斯」:位移插值在每个时刻仍是高斯,且标准差线性变化 $\sigma_t=(1-t)\sigma_\alpha+t\sigma_\beta$(原书 Fig. 2.14);线性混合则是两个峰的叠加。选「直方图均衡化」:这正是 Fig. 2.10 下排直方图的变化过程。
高斯分布之间的距离 Distance between Gaussians
设 $\alpha=\mathcal{N}(m_\alpha,\Sigma_\alpha)$、$\beta=\mathcal{N}(m_\beta,\Sigma_\beta)$ 是 $\mathbb{R}^d$ 上的两个高斯分布。则线性(仿射)映射
满足 $T_\sharp\alpha=\beta$,并且是最优映射。它的传输代价给出闭式公式
其中 $\mathcal{B}$ 是正定矩阵之间的 Bures 距离(Bures metric)($\Sigma^{1/2}$ 为矩阵平方根):
为什么 T 是最优的
① $T$ 把 $\alpha$ 推成 $\beta$。验证变量替换公式 (2.8):代入 $T(x)-m_\beta=A(x-m_\alpha)$,并利用 $A^\top\Sigma_\beta^{-1}A=\Sigma_\alpha^{-1}$(等价于 $A\Sigma_\alpha A=\Sigma_\beta$,由 $A$ 的定义直接可得),$\rho_\beta(T(x))$ 的指数部分就变成 $\rho_\alpha(x)$ 的指数部分;而 $|\det T'(x)|=\det A=(\det\Sigma_\beta/\det\Sigma_\alpha)^{1/2}$ 恰好补上归一化常数之比。所以 $\rho_\alpha=|\det T'|\,\rho_\beta\circ T$,即 $T_\sharp\alpha=\beta$。
② $T$ 是凸函数的梯度。$T=\nabla\psi$,其中 $\psi(x)=\tfrac12\langle x-m_\alpha,A(x-m_\alpha)\rangle+\langle m_\beta,x\rangle$;$A$ 对称正定,所以 $\psi$ 凸。由 Brenier 定理(Rem. 2.24),推前 $\alpha$ 到 $\beta$ 的凸函数梯度就是最优映射。再计算这个映射的代价(用到 $\rho_\alpha$ 的一阶、二阶矩)就得到 (2.41)。原书 Fig. 2.13 把 Fig. 2.12 的两个高斯画成曲面,并画出了这个凸的 Brenier 势 $\psi$($T=\nabla\psi$)。
蓝色椭圆是 $\alpha$、红色是 $\beta$(实线 1σ、虚线 2σ 等高线)。拖动中心移动均值,拖动两个空心小圆旋转、拉伸主轴与副轴。灰色箭头是最优映射 $x\mapsto T(x)$(原书 Fig. 2.12);紫色椭圆与紫点是 $t$ 时刻的位移插值 $\big((1-t)\mathrm{Id}+tT\big)_\sharp\alpha$。默认参数取自 Fig. 2.12。
$\mathcal{W}_2^2$ 永远分成两块:均值之间距离的平方 + 协方差之间的 Bures 距离平方——这正是 Rem. 2.19「形状差异 + 均值位移²」的具体例子。点「只平移」:两个椭圆形状相同,$\mathcal{B}=0$,$A=\mathrm{I}$,映射是纯平移。点「对角协方差」:两个椭圆的轴都与坐标轴平行,Bures 距离退化为 Hellinger 距离 $\|\sqrt r-\sqrt s\|_2$(读数中两者相等)。无论怎么拖,$A$ 总是对称正定的——所以 $T$ 是凸函数 $\psi$ 的梯度,由 Brenier 定理它是最优的。插值过程中的每个中间分布也都是高斯。
对角与一维的特例。若 $\Sigma_\alpha=\mathrm{diag}(r_i)$、$\Sigma_\beta=\mathrm{diag}(s_i)$,Bures 距离就是 Hellinger 距离(Hellinger distance) $\mathcal{B}(\Sigma_\alpha,\Sigma_\beta)=\|\sqrt r-\sqrt s\|_2$。特别地,一维高斯 $\mathcal{N}(m,\sigma^2)$ 之间 $\mathcal{W}_2^2=(m_\alpha-m_\beta)^2+(\sigma_\alpha-\sigma_\beta)^2$——$\mathcal{W}_2$ 就是 $(m,\sigma)$ 平面上的欧氏距离,位移插值沿这个平面上的直线段走(下图)。可以证明 $\mathcal{B}$ 是协方差矩阵之间的距离,并且 $\mathcal{B}^2$ 对两个参数都是凸的。
进阶椭圆分布与 Gelbrich 下界 Rem. 2.32
Gelbrich(1990)把 Rem. 2.31 推广到椭圆等高分布(elliptically contoured distributions):
- 下界:对任意两个具有给定均值和协方差的测度,把它们换成具有相同均值、协方差的高斯后算出的 $\mathcal{W}_2$(即 (2.41))是真实 $\mathcal{W}_2$ 的一个下界(Gelbrich 1990, Thm 2.1)。
- 闭式推广:若 $\rho_\alpha(x)=\frac{1}{\sqrt{\det A}}h(\langle x-m_\alpha,A^{-1}(x-m_\alpha)\rangle)$、$\rho_\beta$ 同理(同一个生成函数 $h$,$\int h(\langle x,x\rangle)\mathrm{d}x=1$),则最优映射仍是线性映射 (2.40),$\mathcal{W}_2$ 仍由 (2.41) 给出,只是 Bures 项多一个只依赖 $h$ 的缩放因子:高斯($h(t)=e^{-t/2}$)为 1,椭球上的均匀分布为 $1/(d+2)$。原因是椭圆分布的协方差是其正定参数的常数倍。
一维经验分布 $\alpha=\tfrac13(\delta_0+\delta_1+\delta_3)$、$\beta=\tfrac13(\delta_1+\delta_2+\delta_5)$。$\mathcal{W}_1(\alpha,\beta)$ 等于多少?
本章小结
- 比较的对象:直方图 $a\in\Sigma_n$(只有权重)、离散测度 $\alpha=\sum_i a_i\delta_{x_i}$(权重 + 位置)、一般测度(进阶)。位置信息通过代价 $C_{i,j}=c(x_i,y_j)$ 进入 OT。
- Monge / 指派:确定性的「整堆搬运」$T_\sharp\alpha=\beta$。指派问题有 $n!$ 个候选;一般权重下 Monge 映射可能不存在($n\lt m$ 时必然不存在),可行集非凸。
- Kantorovich 松弛:允许质量拆分,用耦合 $P\in U(a,b)$(行和 $a$、列和 $b$)描述;$\mathrm{L}_C(a,b)=\min\langle C,P\rangle$ 是线性规划,总有解、对称。对均匀等数目的点云松弛无损(Prop. 2.1:Birkhoff 定理 + 线性规划最优解在顶点)。
- 度量:$C=D^p$ 时 $\mathrm{W}_p=\mathrm{L}_{D^p}^{1/p}$ 是距离(Prop. 2.2,三角不等式靠「粘合」)。$\mathrm{W}_p$ 能比较支撑不重叠的分布、恰好度量弱收敛;平移 $\tau$ 就得到 $\mathrm{W}_p=\tau$;$\mathcal{W}_2^2$ = 形状差异 + 均值位移²。
- 对偶:$\mathrm{L}_C(a,b)=\max\{\langle f,a\rangle+\langle g,b\rangle : f_i+g_j\le C_{i,j}\}$(Prop. 2.4)。势 $f,g$ = 取货价 / 送货价;最优方案只走紧路线(互补松弛 (2.23))。Brenier 定理:$\mathcal{W}_2$ 且源有密度时,最优耦合就是凸函数梯度 $T=\nabla\varphi$ 给出的映射。
- 特例:0-1 代价 → 总变差 $\tfrac12\|a-b\|_1$;一维 → 排序 / 分位数,$T=\mathcal{C}_\beta^{-1}\circ\mathcal{C}_\alpha$;高斯 → 线性映射 + Bures 距离。
| Monge / 指派 | Kantorovich(原问题) | 对偶问题 | |
|---|---|---|---|
| 未知量 | 映射 $T$(排列 $\sigma$) | 耦合矩阵 $P\in\mathbb{R}_+^{n\times m}$ | 势 $f\in\mathbb{R}^n$、$g\in\mathbb{R}^m$ |
| 约束 | $T_\sharp\alpha=\beta$(每点整体去一处) | 行和 $=a$,列和 $=b$ | $f_i+g_j\le C_{i,j}$ |
| 问题类型 | 组合的 / 非凸 | 线性规划(最小化) | 线性规划(最大化) |
| 总有解? | 否 | 是 | 是(离散情形) |
| 与 $\mathrm{L}_C$ 的关系 | $\ge\mathrm{L}_C$;均匀等数目(Prop. 2.1)或 $\mathcal{W}_2$ + 源有密度(Brenier)时相等 | $=\mathrm{L}_C$ | $=\mathrm{L}_C$(强对偶) |
| 可以直接写出答案的情形 | OT 的值 | 最优方案 |
|---|---|---|
| 0-1 代价 Rem. 2.26 | $\tfrac12\|a-b\|_1$(总变差) | 能原地不动的都不动,多余的补给缺的 |
| 一维 Rem. 2.28–2.30 | $\mathcal{W}_p^p=\int_0^1|\mathcal{C}_\alpha^{-1}-\mathcal{C}_\beta^{-1}|^p$;$\mathcal{W}_1=\int|\mathcal{C}_\alpha-\mathcal{C}_\beta|$ | 单调重排 $T=\mathcal{C}_\beta^{-1}\circ\mathcal{C}_\alpha$(排序配对) |
| 高斯 Rem. 2.31 | $\mathcal{W}_2^2=\|m_\alpha-m_\beta\|^2+\mathcal{B}(\Sigma_\alpha,\Sigma_\beta)^2$ | 线性映射 $T(x)=m_\beta+A(x-m_\alpha)$,$A$ 对称正定 |
与后续章节的联系:第 3 章解本章写下的线性规划(C-变换、互补松弛、网络单纯形、拍卖算法);第 4 章给它加上熵正则,得到 Sinkhorn 算法;第 5 章处理半离散情形;第 7 章的动态表述与位移插值、第 8 章的统计性质都建立在本章的 $\mathcal{W}_p$ 之上。
自测
前面各节已穿插了 8 道小题,下面再来几道综合题。
当 Monge 映射存在时,Kantorovich 问题的最优值与 Monge 问题的最优值(按质量加权的代价)之间是什么关系?
两个一维高斯 $\mathcal{N}(0,1)$ 与 $\mathcal{N}(4,9)$(第二个参数是方差)之间的 $\mathcal{W}_2$ 是多少?
代价矩阵对角线为 0、其余为 1。$a=(0.5,0.5,0)$,$b=(0,0.5,0.5)$,OT 的值 $\mathrm{L}_C(a,b)$ 是多少?
$T(x)=2x$ 把 $[0,1]$ 上的均匀分布推前成什么?
为什么说 Wasserstein 距离比逐点比较(如 L²、KL)更适合比较两团点云?
习题
原书没有习题,以下为本教材自拟,覆盖计算、概念辨析与简短证明。
提示
行和、列和确定了其余三个元素;非负性给出 $t$ 的范围。代价是 $t$ 的一次函数,最优在端点。对偶:在 $P^\star_{i,j}\gt0$ 的格子上令 $f_i+g_j=C_{i,j}$,并取 $f_1=0$。参考解答
(1) $P(t)=\begin{bmatrix}t & 0.6-t\\ 0.3-t & 0.1+t\end{bmatrix}$,非负性要求 $0\le t\le0.3$。
(2) $\langle C,P(t)\rangle=2(0.6-t)+1\cdot(0.3-t)=1.5-3t$,斜率为负,最优在 $t=0.3$:$P^\star=\begin{bmatrix}0.3 & 0.3\\ 0 & 0.4\end{bmatrix}$,$\mathrm{L}_C(a,b)=0.6$。
(3) $P^\star$ 的正元素在 $(1,1),(1,2),(2,2)$:$f_1+g_1=0$,$f_1+g_2=2$,$f_2+g_2=0$。取 $f_1=0$ 得 $g=(0,2)$、$f=(0,-2)$。检查剩下的约束 $f_2+g_1=-2\le C_{2,1}=1$ ✓。对偶值 $\langle f,a\rangle+\langle g,b\rangle=-2\times0.4+2\times0.7=0.6=\mathrm{L}_C(a,b)$,强对偶成立。
提示
Monge 映射只能把每个点的 ½ 整体送走,目标处能收到的质量只有几种组合。Kantorovich:想想第 1 个点「多出来」多少。参考解答
(1) 两个源点各带 ½,整体送往 $\{0,1\}$,目标处的质量只可能是 $(1,0)$、$(\tfrac12,\tfrac12)$ 或 $(0,1)$,都不等于 $(\tfrac13,\tfrac23)$,所以没有 Monge 映射。
(2) 位置 0 的 ½ 中留 ⅓ 在原地,把 ⅙ 搬到 1;位置 1 的 ½ 原地不动:$P^\star=\begin{bmatrix}1/3 & 1/6\\ 0 & 1/2\end{bmatrix}$,代价 $\tfrac16$。它最优,因为任何耦合都至少要把 $a_1-b_1=\tfrac16$ 的质量搬离 0,每单位至少花 1。于是 $\mathcal{W}_1=\tfrac16$。用 (2.37):在 $[0,1)$ 上 $|\mathcal{C}_\alpha-\mathcal{C}_\beta|=|\tfrac12-\tfrac13|=\tfrac16$,其余处为 0,积分得 $\tfrac16$ ✓。
提示
下界:$\langle C,P\rangle=1-\sum_iP_{i,i}$,而 $P_{i,i}$ 不能超过 $a_i$ 与 $b_i$。上界:构造一个让 $P_{i,i}=\min(a_i,b_i)$ 的耦合。参考解答
下界:对任意 $P\in U(a,b)$,$\langle C,P\rangle=\sum_{i\ne j}P_{i,j}=1-\sum_iP_{i,i}$,而 $P_{i,i}\le\min(a_i,b_i)$(它不超过所在行和与列和),故 $\langle C,P\rangle\ge1-\sum_i\min(a_i,b_i)$。
可达:令 $\delta=\sum_i(a_i-b_i)_+$,取 $P_{i,i}=\min(a_i,b_i)$,$P_{i,j}=(a_i-b_i)_+(b_j-a_j)_+/\delta$($i\ne j$)。第 $i$ 行和为 $\min(a_i,b_i)+(a_i-b_i)_+=a_i$,列和同理为 $b_j$,代价恰为 $\delta=1-\sum_i\min(a_i,b_i)$。
恒等式:因为 $\sum_i(a_i-b_i)=0$,正部之和等于负部之和,都等于 $\tfrac12\sum_i|a_i-b_i|$;又 $a_i-\min(a_i,b_i)=(a_i-b_i)_+$,所以 $1-\sum_i\min(a_i,b_i)=\tfrac12\|a-b\|_1$。(原书 Rem. 2.26 写作 $\|a-b\|_1$,少了因子 ½。)
提示
两组点都已排好序,直接按顺序配对,用 (2.33)。第 (3) 问把实数轴按所有支撑点切成小区间,在每段上 $\mathcal{C}_\alpha$、$\mathcal{C}_\beta$ 都是常数。参考解答
(1) $0\to1$,$2\to4$,$3\to5$,$7\to6$。
(2) 距离依次为 1、2、2、1:$\mathcal{W}_1=\tfrac{1+2+2+1}{4}=1.5$;$\mathcal{W}_2^2=\tfrac{1+4+4+1}{4}=2.5$,$\mathcal{W}_2=\sqrt{2.5}\approx1.581$。
(3) 在区间 $[0,1),[1,2),[2,3),[3,4),[4,5),[5,6),[6,7)$ 上 $|\mathcal{C}_\alpha-\mathcal{C}_\beta|$ 依次为 $\tfrac14,0,\tfrac14,\tfrac12,\tfrac14,0,\tfrac14$,每段长 1,总和 $1.5$ ✓。
提示
一维:$\mathcal{W}_2^2=(\Delta m)^2+(\Delta\sigma)^2$,映射是「标准化再反标准化」。对角情形 Bures = Hellinger,$A$ 也是对角阵。参考解答
(1) $\sigma_\alpha=2$,$\sigma_\beta=1$:$\mathcal{W}_2^2=(1-(-2))^2+(2-1)^2=10$,$\mathcal{W}_2=\sqrt{10}$。最优映射 $T(x)=-2+\tfrac12(x-1)$($A=\sigma_\beta/\sigma_\alpha=\tfrac12\gt0$,递增)。
(2) $\mathcal{B}^2=\|\sqrt r-\sqrt s\|^2=(2-1)^2+(1-3)^2=5$,均值相同,所以 $\mathcal{W}_2=\sqrt5$。对角时 $A=\mathrm{diag}(\sqrt{s_i/r_i})=\mathrm{diag}(\tfrac12,3)$:第一个方向压缩一半,第二个方向拉伸 3 倍;验证 $A\Sigma_\alpha A=\mathrm{diag}(\tfrac14\cdot4,\ 9\cdot1)=\Sigma_\beta$ ✓。
提示
考虑 $\sum_{i,j}P_{i,j}(C_{i,j}-f_i-g_j)$。参考解答
(1) $\langle C,P\rangle-\langle f,a\rangle-\langle g,b\rangle=\sum_{i,j}P_{i,j}(C_{i,j}-f_i-g_j)$(用到行和 $=a$、列和 $=b$),每一项都是非负数乘非负数,所以 $\ge0$。
(2) 对任何可行 $P'$,$\langle C,P'\rangle\ge\langle f,a\rangle+\langle g,b\rangle=\langle C,P\rangle$,所以 $P$ 最优;对任何可行 $(f',g')$,$\langle f',a\rangle+\langle g',b\rangle\le\langle C,P\rangle=\langle f,a\rangle+\langle g,b\rangle$,所以 $(f,g)$ 最优。
(3) 相等时和式为 0,而每一项 $\ge0$,故每一项都为 0:$P_{i,j}\gt0$ 时必有 $C_{i,j}-f_i-g_j=0$。这就是 (2.23)。
提示
上界:取耦合 $(X,X+\tau)$。下界:对任意耦合 $(X,Y)$,用 Jensen 不等式 $\mathbb{E}\|X-Y\|^2\ge\|\mathbb{E}(X-Y)\|^2$。参考解答
上界:令 $X\sim\alpha$、$Y=X+\tau$,则 $Y\sim T_\sharp\alpha$,$\mathbb{E}\|X-Y\|^2=\|\tau\|^2$,所以 $\mathcal{W}_2^2\le\|\tau\|^2$。
下界:对任意 $X\sim\alpha$、$Y\sim T_\sharp\alpha$ 的耦合,$\mathbb{E}\|X-Y\|^2\ge\|\mathbb{E}X-\mathbb{E}Y\|^2=\|m_\alpha-(m_\alpha+\tau)\|^2=\|\tau\|^2$。取最小值即得 $\mathcal{W}_2^2\ge\|\tau\|^2$。
也可以直接用 Rem. 2.19 的分解:两者居中后完全相同($\mathcal{W}_2(\tilde\alpha,\tilde\beta)=0$),只剩均值差 $\|\tau\|^2$。§2.4 的平移演示正是这个结论。
w1d(x, y, p),对两组等大小的一维样本(均匀权重)计算 $\mathcal{W}_p$,并用 Book.ot.emd 验证;它的复杂度是多少?(2) 对两团各 $n$ 个点的二维点云(均匀权重)调用 Book.ot.emd,返回的耦合为什么总是(缩放的)置换矩阵?如果最优排列不唯一会怎样?
提示
(1) 公式 (2.33):先排序再逐对相减。(2) 想想 Prop. 2.1 的证明:单纯形法类的算法返回的是多面体的顶点。参考解答
function w1d(x, y, p){
const xs = x.slice().sort((u, v) => u - v), ys = y.slice().sort((u, v) => u - v);
let s = 0; for (let i = 0; i < xs.length; i++) s += Math.pow(Math.abs(xs[i] - ys[i]), p);
return Math.pow(s / xs.length, 1 / p);
}
// 验证:const n = x.length, a = new Array(n).fill(1 / n);
// Math.pow(Book.ot.emd(a, a, Book.ot.cost(x, y, p)).cost, 1 / p) 应与 w1d(x, y, p) 相同
(1) 主要开销是排序,$O(n\log n)$;通用线性规划则要处理 $n^2$ 个变量,慢得多——这就是一维 OT「简单」的计算含义。
(2) Book.ot.emd 是运输单纯形法,它在多面体 $U(\mathbb{1}_n/n,\mathbb{1}_n/n)$ 的顶点之间移动并停在一个最优顶点上;由 Birkhoff 定理,顶点都是(缩放的)置换矩阵(Prop. 2.1)。若最优排列不唯一(例如 Rem. 2.3 的正方形),则连接这些最优顶点的整个面都是最优解(它们的凸组合也最优),算法只会返回其中某一个顶点——返回哪一个取决于实现细节。
算法基础 Algorithmic Foundations
离散最优传输就是一个线性规划。本章从「原始—对偶」的角度讲清三件事:最优解长什么样(顶点 = 树),怎样证明一个解是最优的(互补松弛),以及三类经典的精确算法——网络单纯形、对偶上升和拍卖算法,每一类都可以在下面的演示里一步一步地运行。
- 能把 Kantorovich 问题写成标准形线性规划,看懂约束矩阵 $A$ 的结构,并用「报价」的比喻说出对偶问题和弱对偶的含义;
- 会做 C-变换:固定一侧的对偶变量,直接写出另一侧的最佳值;知道为什么交替做 C-变换很快就会停滞;
- 会用互补松弛判定最优:$P_{ij}\gt 0$ 的格子必须满足 $f_i+g_j=C_{ij}$;「可行 + 互补」就是最优性证书;
- 理解运输多面体的顶点就是「支撑图没有环」的耦合,会用西北角法则造出一个顶点;
- 能逐步跟踪网络单纯形(求对偶 → 定价 → 找环 → 推流 θ → 换基)、对偶上升(最大流 → 标号 → 调价)与拍卖算法(出价 → 涨价 → 换主人);
- 说清这三种算法各自「保持什么、放松什么」,以及拍卖算法中 ε 在精度与速度之间的权衡。
- 离散 OT 是一个线性规划:$nm$ 个非负变量 $P_{ij}$,$n+m$ 个等式约束(行和、列和),其中恰好有一个是多余的。
- 对偶变量 $f_i, g_j$ 可以理解成「报价」:只要每条路线都满足 $f_i+g_j\le C_{ij}$,总报价 $\langle f,a\rangle+\langle g,b\rangle$ 就不超过最优运费(弱对偶);最高的报价恰好等于最优运费(强对偶)。
- C-变换:固定 $f$ 时,最好的 $g_j$ 就是第 $j$ 列上 $C_{ij}-f_i$ 的最小值。交替做 C / C̄ 变换一两轮就停住了,一般到不了最优。
- 互补松弛:最优耦合只在「报价恰好等于运费」($f_i+g_j=C_{ij}$)的格子上放质量;反过来,可行 + 互补就证明了最优。
- 运输多面体 $\mathrm{U}(a,b)$ 的顶点 ⇔ 支撑图没有环(树或森林),所以至多 $n+m-1$ 个非零元;西北角法则一次扫描就能给出一个顶点。
- 网络单纯形在顶点之间走:沿树求对偶 → 找约化代价为负的格子 → 加边成环 → 沿环推 θ → 换基,每一步代价不增。
- 对偶上升反过来:始终保持对偶可行,只在「平衡边」上用最大流运货;运不完就按标号集合 $S, S'$ 统一调价,对偶目标严格上升。
- 拍卖算法解指派问题:没分到物品的人对最想要的物品加价「最优与次优之差 + ε」;结果与最优至多差 $n\varepsilon$,ε 越小越准,但「价格战」越长(ε-scaling 可以缓解)。
第 2 章把最优传输写成了 Kantorovich 问题 (2.11) 和它的对偶问题 (2.20)。这一章回答一个非常实际的问题:怎样把它精确地算出来?答案来自组合优化与线性规划(linear programming)——这两个领域的诞生本身就和「运输问题」纠缠在一起。
运输问题最早由 Tolstoĭ(1930)、Hitchcock(1941)和 Kantorovich(1942)提出,后来 Koopmans(1949)也有重要贡献——都是「怎样把分散的物资最省钱地调运到需求地」。但他们都没有给出可证明正确的算法(Tolstoĭ 1939 年提出的「消环法」cycle violation method 只是启发式)。直到 Dantzig 提出单纯形法(simplex method)——而他当初的动机很大程度上正是运输问题——这类问题才被严格地解决。后来人们又发现,最优传输与最小费用网络流(minimum cost network flow)问题是等价的(Ford & Fulkerson 1962)。所以 OT 一直是优化领域的「明星例题」,至今仍常被用来给新人介绍优化。
最优解由一对「互补」的 $(P, (f,g))$ 刻画:$P$ 满足边缘约束(原始可行),$(f,g)$ 满足 $f_i+g_j\le C_{ij}$(对偶可行),并且 $P$ 只在 $f_i+g_j=C_{ij}$ 的格子上放质量(互补)。本章的三种算法就是从不同的一侧去「凑」这对解:
- 网络单纯形(§3.5):始终保持 $P$ 可行且互补,逐步修正 $(f,g)$ 直到对偶也可行;
- 对偶上升(§3.6):始终保持 $(f,g)$ 可行,逐步构造互补的 $P$ 直到它满足边缘约束;
- 拍卖算法(§3.7):把「互补」放宽成「差不多互补」(ε-互补松弛),换来简单而快速的更新。
3.1 Kantorovich 线性规划 The Kantorovich Linear Programs
这一节要解决的问题:把 OT 问题「翻译」成线性规划的标准语言。一旦翻译完成,线性规划几十年积累的理论(对偶、顶点、单纯形法)就都能直接拿来用。
回忆第 2 章的原始问题:在所有耦合(coupling)$P\in\mathrm{U}(a,b)$ 中,找总运费最小的那个。
目标是线性的($\sum C_{ij}P_{ij}$),约束也全是线性的(行和 = $a$、列和 = $b$、非负)——这正是线性规划(linear program, LP)。
标准形:把矩阵拉直成向量 Standard Form
线性规划的标准形(standard form)是:线性目标 $c^\top p$,等式约束 $Ap=q$,变量非负 $p\ge 0$。要把 (3.1) 写成这个样子,只需把 $n\times m$ 的矩阵 $P$ 按列拉直成长度为 $nm$ 的向量 $p$(第 $i+n(j-1)$ 个分量就是 $P_{ij}$),代价矩阵 $C$ 也同样拉直成 $c$。于是
这里 $A$ 是一个 $(n+m)\times nm$ 的 0/1 矩阵:前 $n$ 行各负责一个「行和」约束,后 $m$ 行各负责一个「列和」约束。原书用 Kronecker 积把它写成一行公式,但真正要记住的只有一句话:
左图是耦合矩阵 $P$ 的格子,右图是按列拉直后的约束矩阵 $A$(圆点 = 1,其余为 0)。点击左图任一格子(或右图任一列),看它对应 $A$ 的哪一列、出现在哪两个约束里;勾选「显示冗余」,看为什么 $A$ 的秩只有 $n+m-1$。
$A$ 的每一列都是「一个蓝点 + 一个红点」。把所有蓝色行(行和约束)加起来、和把所有红色行(列和约束)加起来,得到的都是全 1 的行向量——所以这 $n+m$ 个约束线性相关,秩恰好是 $n+m-1$。
$A$ 的 $n+m$ 行线性相关:前 $n$ 行之和与后 $m$ 行之和都等于全 1 行向量 $\mathbf 1_{nm}^\top$。直观地说,「所有行和加起来」与「所有列和加起来」都是总质量,所以只要前 $n+m-1$ 个约束成立,最后一个自动成立。删掉任意一行(以及右端对应的分量)就得到一个满秩的等价系统。
原书为了对称地对待 $a$ 和 $b$,保留了这个冗余的写法,并提醒:「退化」(degeneracy)会在后面的计算中时时冒出来——例如 §3.5 里对偶变量永远差一个常数不唯一。
对照原书:A 的 Kronecker 写法
原书写的是 $A=\left[\begin{smallmatrix}\mathbf 1_n^\top\otimes I_m \\ I_n\otimes \mathbf 1_m^\top\end{smallmatrix}\right]$。严格说来,在「按列拉直」的约定下应写成 $\left[\begin{smallmatrix}\mathbf 1_m^\top\otimes I_n \\ I_m\otimes \mathbf 1_n^\top\end{smallmatrix}\right]$(第一块 $[I_n\ I_n\ \cdots\ I_n]$ 求行和,第二块是分块对角的 $\mathbf 1_n^\top$ 求列和);原书的写法对应「按行拉直」并把右端写成 $\left[\begin{smallmatrix} b \\ a\end{smallmatrix}\right]$。这只是记号上的差别,不影响任何结论——理解「每列两个 1」就够了。
对偶问题与弱对偶 The Dual Program and Weak Duality
按照线性规划的对偶理论,(3.2) 的对偶问题是
把 $h$ 拆成两段 $h=(f,g)$,$f\in\mathbb R^n$ 对应行约束、$g\in\mathbb R^m$ 对应列约束。因为 $A$ 的第 $(i,j)$ 列只在第 $i$ 个和第 $n+j$ 个位置是 1,所以 $(A^\top h)_{(i,j)}=f_i+g_j$。约束 $A^\top h\le c$ 就是逐格的 $f_i+g_j\le C_{ij}$,目标就是 $\langle f,a\rangle+\langle g,b\rangle$——正是第 2 章的对偶问题 (2.20)(原书此处印作 (2.4))。
你要把仓库 $i$ 的 $a_i$ 份货运到工厂 $j$(需求 $b_j$),自己运每单位花 $C_{ij}$。一家外包商报价:在仓库 $i$ 取货每单位收 $f_i$,在工厂 $j$ 送货每单位收 $g_j$。只要每条路线都有 $f_i+g_j\le C_{ij}$(外包不比自己运贵),你就会接受;外包商的收入是 $\langle f,a\rangle+\langle g,b\rangle$。
弱对偶一句话就能看出:对任何可行的 $P$,$\ \langle f,a\rangle+\langle g,b\rangle=\sum_{ij}P_{ij}(f_i+g_j)\le\sum_{ij}P_{ij}C_{ij}$。所以任何一份「可接受的报价」都是最优运费的下界;强对偶说最高的报价恰好等于最优运费。
核心想法:把约束换成罚款。去掉边缘约束 $Ap=q$(记 $q=\left[\begin{smallmatrix} a \\ b\end{smallmatrix}\right]$),改为对违约部分收费 $h^\top(Ap-q)$。约束放松了,最小值只会更小,所以对任意 $h$ 都得到最优值 $\bar z=\mathrm{L}_C(a,b)$ 的一个下界 $\mathrm H(h)$;再在所有 $h$ 上取最好的下界,就得到对偶问题。
推导细节
定义 $\mathrm H(h)=\min_{p\ge 0}\ c^\top p-h^\top(Ap-q)$。设 $p^\star$ 是 (3.2) 的最优解,因为 $Ap^\star=q$:
另一方面 $\mathrm H(h)=h^\top q+\min_{p\ge 0}(c-A^\top h)^\top p$。只要 $c-A^\top h$ 有某个分量为负,就把 $p$ 在那个坐标上取得任意大,最小值为 $-\infty$;否则最小值为 0(取 $p=0$)。所以最好的下界是
这就是弱对偶。强对偶 $\underline z=\bar z$ 需要更长的证明(线性规划的强对偶定理,见 Bertsimas & Tsitsiklis 1997 §4.10)。
一个 3×4 的运输问题写成标准形 (3.2) 后,约束矩阵 $A$ 的秩是多少?
- OT = 标准形线性规划:$nm$ 个非负变量,$n+m$ 个等式约束(秩 $n+m-1$)。
- $A$ 是完全二部图的关联矩阵:每个变量 $P_{ij}$ 只在「行 $i$」和「列 $j$」两个约束里出现。
- 对偶变量 $(f,g)$ = 报价;可行报价给出下界(弱对偶),最优报价 = 最优运费(强对偶)。
3.2 C-变换 C-Transforms
这一节要解决的问题:对偶问题有 $n+m$ 个变量 $(f,g)$,它们之间互相牵制。能不能先固定一半,把另一半「一步到位」地求出来?可以——这就是 C-变换(C-transform)。它把对偶问题化成只关于 $f$ 的问题,是第 5 章半离散最优传输和本章拍卖算法的核心工具。
从第 2 章的对偶形式出发($\mathrm R(C)$ 是满足 $f_i+g_j\le C_{ij}$ 的所有 $(f,g)$):
给定 $f\in\mathbb R^n$,它的 C-变换 $f^C\in\mathbb R^m$;给定 $g\in\mathbb R^m$,它的 C̄-变换 $g^{\bar C}\in\mathbb R^n$:
用矩阵语言说:把第 $i$ 行减去 $f_i$,再取每一列的最小值,就是 $f^C$;把第 $j$ 列减去 $g_j$,再取每一行的最小值,就是 $g^{\bar C}$。
固定 $f$ 后,$g_j$ 要同时满足 $n$ 个约束 $g_j\le C_{ij}-f_i$($i=1,\dots,n$),最紧的那个决定了上限——所以 $(f,f^C)$ 可行,而且 $f^C$ 是所有可行的 $g$ 中逐分量最大的。因为 $b\ge 0$,把 $g$ 换成 $f^C$ 只会让目标变大:
$\langle f,a\rangle+\langle g,b\rangle\ \le\ \langle f,a\rangle+\langle f^C,b\rangle .$
用报价的比喻:仓库报价 $f$ 定下来以后,外包商在工厂 $j$ 能收的最高价就是「所有路线里 $C_{ij}-f_i$ 最小的那条」——再高一点,那条路线上客户就宁可自己运了。
于是对偶问题可以化成一个只关于 $f$、没有约束的问题:
因为 $f^C$ 的每个分量都是若干个关于 $f$ 的仿射函数取最小,(3.5) 的目标是分段仿射的凹函数(piecewise affine concave)——很好优化的一类函数,但它不可微,这也是第 4 章要引入熵正则的原因之一。
对称地,固定 $g$ 时最好的 $f$ 是 $g^{\bar C}$。那么从某个 $f$ 出发,交替做 C 与 C̄ 变换,目标会一路上升:
人们自然希望这样一直严格上升直到最优。可惜不行——很快就会停在一个「平台」上:
(不等号均为逐分量)
(i) 单调递减:$f\le f' \Rightarrow f^C\ge f'^C$;
(ii) 变换两次不会变小:$f^{C\bar C}\ge f$,$g^{\bar CC}\ge g$;
(iii) 变换三次等于变换一次:$f^{C\bar CC}=f^C$。
证明思路
(i) 直接由定义:$f$ 变大,$C_{ij}-f_i$ 变小,列最小值也变小。
(ii) $(f^{C\bar C})_i=\min_j\big(C_{ij}-(f^C)_j\big)$,而 $(f^C)_j=\min_{i'}(C_{i'j}-f_{i'})\le C_{ij}-f_i$(取 $i'=i$),所以每一项 $C_{ij}-(f^C)_j\ge f_i$,取最小值后仍 $\ge f_i$。$g^{\bar CC}\ge g$ 同理。
(iii) 令 $g=f^C$。由 (ii),$g^{\bar C}=f^{C\bar C}\ge f$;再由 (i)(变大后做 C-变换会变小)得 $f^{C\bar CC}\le f^C$。另一方面对 $g$ 用 (ii) 得 $f^{C\bar CC}=g^{\bar CC}\ge g=f^C$。两边夹住,所以相等。
(iii) 的意思是:做完「C、C̄」一轮之后,再怎么交替都原地不动了。下面的演示用一维的点和平方代价 $C_{ij}=(x_i-y_j)^2$ 把这件事画出来:
- 对每个源点 $x_i$,画一条抛物线 $y\mapsto (y-x_i)^2-f_i$(顶点在 $(x_i,-f_i)$);
- 每个目标点 $y_j$ 上的对偶变量画成红点 $(y_j, g_j)$;
- 约束 $f_i+g_j\le C_{ij}$ ⇔ 红点不高于任何一条蓝抛物线,即不高于它们的下包络(lower envelope)。
于是 C-变换 = 把每个红点移到下包络上(从可行的位置出发,就是往上顶,直到碰到包络);C̄-变换 = 把每条抛物线上下平移,直到恰好碰到某个红点(从可行的位置出发,就是往下压)。
左图:4 个源点(蓝)、5 个目标点(红),每个点的质量相同。可以上下拖动抛物线的顶点(改变 $f_i$)和红点(改变 $g_j$)。按钮执行 C / C̄ 变换。右图:松弛矩阵 $C_{ij}-f_i-g_j$(绿框 = 0,红底 = 违反约束)和对偶目标值的历史,虚线是最优值 $\mathrm{L}_C(a,b)$。
从 $f=g=0$ 出发:C-变换后每个红点都顶到了包络上(右图每列出现 0);C̄-变换后每条抛物线都压到了某个红点上(每行也出现 0)。之后再按哪个按钮都不动了——目标值卡在最优值下面很远的地方。「放入最优」后,接触点恰好就是最优运输的路线:要到达最优,必须让一组抛物线和红点协同移动,而不是一次只动一边。
- $f^C$ = 行减 $f$、列取最小;它是与 $f$ 搭配的最大可行 $g$。对偶问题因此化为无约束凹问题 (3.5)。
- 几何图像:约束 ⇔ 红点在抛物线族的下包络之下;C-变换把点顶到包络,C̄-变换把抛物线压到点。
- Prop. 3.1:$f^{C\bar CC}=f^C$,交替变换一轮后就停滞,不能单独当作求解算法。
3.3 互补松弛 Complementary Slackness
这一节要解决的问题:原始问题和对偶问题可以分别求解,得到最优的 $P^\star$ 和 $(f^\star,g^\star)$。它们之间有什么关系?答案是一个极其好用的「最优性证书」——后面的网络单纯形、对偶上升、拍卖算法,停机判据全都是它。
设 $P^\star$ 是原始问题 (2.11) 的最优解,$(f^\star,g^\star)$ 是对偶问题 (2.20) 的最优解。则对所有 $(i,j)$:
也就是说:若 $P^\star_{ij}\gt 0$,则必有 $f^\star_i+g^\star_j=C_{ij}$;若 $f^\star_i+g^\star_j\lt C_{ij}$,则必有 $P^\star_{ij}=0$。
证明思路
关键是一个对任何 $P\in\mathrm U(a,b)$ 和任何 $(f,g)$ 都成立的恒等式(利用 $P\mathbf 1_m=a$、$P^\top\mathbf 1_n=b$ 把 $\langle f,a\rangle+\langle g,b\rangle$ 展开成 $\sum_{ij}P_{ij}(f_i+g_j)$):
由强对偶,左边在最优处为 0。右边每一项都是「非负 × 非负」($P\ge 0$,对偶可行保证 $C-f\oplus g\ge 0$),和为 0 只能每一项都是 0。(原书命题中的公式印成了 $C_{ij}-f^\star_i+g^\star_j$,应为 $-g^\star_j$。)
反过来也成立。先给「互补」一个名字:
称矩阵 $P\in\mathbb R^{n\times m}$ 与向量对 $(f,g)$ 关于 $C$ 互补,如果对所有满足 $P_{ij}\gt 0$ 的 $(i,j)$,都有 $C_{ij}=f_i+g_j$。
若 $P$ 是原始可行解、$(f,g)$ 是对偶可行解,且二者互补,则 $P$ 与 $(f,g)$ 分别是原始、对偶问题的最优解。
证明思路
一行不等式链:由弱对偶和互补性,
两端相同,中间全部取等号,所以 $P$ 的代价达到最小值、$(f,g)$ 的目标达到最大值。
左图:蓝色源点 $x_i$ 与红色目标点 $y_j$(面积 ∝ 质量,可拖动),代价 $C_{ij}=10\,\|x_i-y_j\|^2$;连线是当前选中的耦合 $P$(线宽 ∝ 质量)。右图:用最优对偶 $(f^\star,g^\star)$ 算出的松弛 $C_{ij}-f^\star_i-g^\star_j$(绿框 = 0),蓝色圆盘 = $P_{ij}$。切换下拉框比较不同的 $P$。
选「最优耦合」时,所有圆盘都落在绿框(松弛 = 0)里,原始代价与对偶目标完全相等——这就是可行 + 互补的最优证书。换成西北角解或独立耦合,圆盘开始落在松弛为正的格子上,「差距」一栏恰好等于 Σ 圆盘质量 × 格子松弛:每一份放错地方的质量都按它所在格子的松弛「罚款」。
- 恒等式:$\langle C,P\rangle-(\langle f,a\rangle+\langle g,b\rangle)=\sum_{ij}P_{ij}(C_{ij}-f_i-g_j)$ 对一切 $P\in\mathrm U(a,b)$ 成立。
- 最优时差距为 0 ⇒ 有质量的格子松弛必为 0(Prop. 3.2);可行 + 互补 ⇒ 最优(Prop. 3.3)。
- 这给了每个算法一个停机判据:手里有一对可行且互补的解,就可以停了。
3.4 运输多面体的顶点 Vertices of the Transportation Polytope
这一节要解决的问题:线性规划的最优值总能在可行集的「角」上取到,所以只需要在 $\mathrm U(a,b)$ 的角上找。那么这些角长什么样?答案非常漂亮:角就是支撑图里没有环的耦合——稀疏、呈树状,至多 $n+m-1$ 个非零元。
凸集中的点 $x$ 称为顶点(极点),如果只要 $x=(y+z)/2$ 且 $y,z$ 都在该集合中,就必有 $x=y=z$。直观地说:顶点不能写成集合中另外两点的「中点」。
线性规划的基本定理(Bertsimas & Tsitsiklis 1997,Thm. 2.7):可行集非空且有界时,最小值一定在某个顶点上取到。$\mathrm U(a,b)$ 是有界的运输多面体(transportation polytope),所以找最优 $P$ 只需在它的顶点中找。
3.4.1 所有顶点的支撑都是树 Tree Structure of the Support of All Vertices of U(a, b)
把运输问题画成二部图(bipartite graph):左边 $n$ 个源点 $1,\dots,n$,右边 $m$ 个汇点 $1',\dots,m'$(加撇只是为了区分两边),每对 $(i,j')$ 之间一条边,边上的代价是 $C_{ij}$。一个运输方案就是这个图上的一个流:从源点 $i$ 流出 $a_i$,流入汇点 $j'$ 的总量为 $b_j$。
记 $S(P)=\{(i,j'):P_{ij}\gt 0\}$ 为 $P$ 的支撑(support),$G(P)$ 为只保留这些边的图。
若 $P$ 是 $\mathrm U(a,b)$ 的顶点,则图 $G(P)=(V\cup V',S(P))$ 没有环(是一棵树或若干棵树组成的森林)。特别地,$P$ 至多有 $n+m-1$ 个非零元。
证明思路(反证:有环就能「沿环来回挪」)
假设 $G(P)$ 有一个环 $i_1\to j_1'\to i_2\to j_2'\to\cdots\to i_k\to j_k'\to i_1$。取一个很小的 $\varepsilon$(小于环上所有流量),构造扰动矩阵 $E$:环上「从 $i$ 到 $j'$」方向的边记 $+\varepsilon$,「从 $j'$ 回到 $i$」方向的边记 $-\varepsilon$,其余为 0。
环上每个节点恰好连着一条 $+$ 边和一条 $-$ 边,所以 $E$ 的每一行、每一列之和都是 0:$E\mathbf 1_m=0$,$E^\top\mathbf 1_n=0$。于是 $Q=P+E$ 与 $R=P-E$ 的边缘分布和 $P$ 一样,又因 $\varepsilon$ 足够小而非负——都是可行解,且 $P=(Q+R)/2$、$Q\ne R$。这与「$P$ 是顶点」矛盾。
最后,$k$ 个节点的无环图至多有 $k-1$ 条边;这里有 $n+m$ 个节点,所以至多 $n+m-1$ 条边,也就是至多 $n+m-1$ 个非零元。
反过来也成立(原书 §3.5 开头就是这样使用本命题的):支撑无环的可行解一定是顶点。理由:若 $P=(Q+R)/2$,由非负性 $Q$、$R$ 的支撑都含在 $S(P)$ 里;而在一片森林上,边缘分布能唯一确定每条边的流量(叶子节点只连一条边,这条边必须承担它的全部质量;删掉叶子,重复),所以 $Q=R=P$。
最小的非平凡例子是 2×3:只有 $(2-1)(3-1)=2$ 个自由度,所以整个 $\mathrm U(a,b)$ 可以画在平面上。取 $x=P_{11}$、$y=P_{12}$ 作坐标,其余 4 个元素都由边缘约束算出;每个元素 $\ge 0$ 给出一个半平面,六个半平面围成一个(至多)六边形。
拖动黑点在可行集 $\mathrm U(a,b)$(左图多边形)里移动,右图同步显示耦合矩阵和它的二部图;靠近顶点会自动吸附。多边形每条边旁标着「在这条边上哪个元素为 0」。若支撑中有环,左图会画出沿环扰动得到的 $Q$、$R$ 两点。滑块改变边缘分布,看多边形的形状如何变化。
在多边形内部,6 个元素全为正,二部图(5 个节点、6 条边)一定有环;在边上,一个元素为 0,还剩 5 条边、仍然有一个环,沿环扰动恰好是沿着这条边的方向;只有在顶点,两个元素为 0,剩下 4 = n+m−1 条边构成一棵树,再也没有可以挪动的方向。代价是 $(x,y)$ 的线性函数,等高线是平行直线,最低的那条总是碰在某个顶点上。
2×2:只有 1 个自由度,$\mathrm U(a,b)$ 是一条线段,两个端点就是顶点(各有一个 0 元素,支撑 3 条边成一条路径)。
指派问题:$n=m$、$a=b=\mathbf 1_n/n$ 时,$\mathrm U(a,b)$ 是 Birkhoff 多面体,顶点恰好是(除以 $n$ 的)置换矩阵——第 2 章 Prop. 2.1 的依据。置换矩阵只有 $n$ 个非零元,远少于 $2n-1$:它的支撑是 $n$ 条互不相连的边组成的森林,这是「退化」顶点的典型例子。
3.4.2 西北角法则 The North-West Corner Rule
怎样快速得到一个顶点?西北角法则(north-west corner rule)只需不超过 $n+m$ 步,它常被用来初始化在原始问题上工作的算法(比如下一节的网络单纯形)。
- 从左上角(「西北角」)$i=j=1$ 开始,记剩余供给 $r\leftarrow a_1$、剩余需求 $c\leftarrow b_1$。
- 令 $t=\min(r,c)$,填 $P_{ij}\leftarrow t$,并更新 $r\leftarrow r-t$,$c\leftarrow c-t$。
- 若 $r=0$(第 $i$ 行用完),$i$ 加 1,$r\leftarrow a_i$;若 $c=0$(第 $j$ 列填满),$j$ 加 1,$c\leftarrow b_j$(两者可能同时发生)。
- 重复第 2–3 步,直到 $P_{nm}$ 被赋值。
一句话:从左上角出发,能填多少填多少;行用完就往下走,列填满就往右走。这样得到的唯一方案记作 $\mathrm{NW}(a,b)$。
跟着原书的例子 $a=(0.2,0.5,0.3)$、$b=(0.5,0.1,0.4)$ 走一遍(左:表格与剩余量;右:支撑图逐步长成一棵树):
第 1 步:准备
光标(●)放在左上角 $(1,1)$。剩余供给 $r=a_1=0.2$,剩余需求 $c=b_1=0.5$。
第 2 步:$P_{11}=\min(0.2,\,0.5)=0.2$
第 1 行的供给用完($r=0$)→ 下移到第 2 行,$r=a_2=0.5$;第 1 列还缺 $c=0.3$。
第 3 步:$P_{21}=\min(0.5,\,0.3)=0.3$
第 1 列填满($c=0$)→ 右移到第 2 列,$c=b_2=0.1$;第 2 行还剩 $r=0.2$。
第 4 步:$P_{22}=\min(0.2,\,0.1)=0.1$
第 2 列填满 → 右移,$c=b_3=0.4$;第 2 行还剩 $r=0.1$。
第 5 步:$P_{23}=\min(0.1,\,0.4)=0.1$
第 2 行用完 → 下移,$r=a_3=0.3$;第 3 列还缺 $c=0.3$。
第 6 步:$P_{33}=\min(0.3,\,0.3)=0.3$,结束
行、列同时用完。共 5 个非零元 $=n+m-1$,支撑是一棵树(一条从 1 走到 3′ 的路径)——由 Prop. 3.4 的反方向(无环 ⇒ 顶点)可知 $\mathrm{NW}(a,b)$ 是 $\mathrm U(a,b)$ 的一个顶点。
第 7 步:换个顺序,得到另一个顶点
先把行按 $\sigma=(3,1,2)$、列按 $\sigma'=(3,2,1)$ 重排,得 $a_\sigma=(0.3,0.2,0.5)$、$b_{\sigma'}=(0.4,0.1,0.5)$,在重排后的表上做西北角(左图,行列标号是原来的编号),再把行列换回原顺序,就得到 $\mathrm U(a,b)$ 的另一个顶点 $\left[\begin{smallmatrix}0 & 0.1 & 0.1 \\ 0.5 & 0 & 0 \\ 0 & 0 & 0.3\end{smallmatrix}\right]$(右图)。注意在重排后的表里,填到第 2 行第 2 列时,该行剩余 $0.2-0.1=0.1$ 恰好等于该列需求 $0.1$,行、列同时用完,光标斜着跳到右下角,所以只有 4 个非零元:支撑是两棵树组成的森林——一个退化顶点。
所有「先重排、再做西北角、再排回来」得到的方案组成集合 $\mathcal N(a,b)=\{\mathrm{NW}_{\sigma^{-1}\sigma'^{-1}}(a_\sigma,b_{\sigma'})\}$。它们都至多有 $n+m-1$ 个非零元;不同的 $(\sigma,\sigma')$ 可能给出同一张表(指数多个);并且 $\mathcal N(a,b)$ 只是顶点集合的一个子集(通常是真子集,Brualdi 2006 Cor. 8.1.4)。
一个可行耦合 $P$ 的支撑图里有一个环。关于 $P$ 可以得出什么结论?
- LP 的最优值在顶点取到;$\mathrm U(a,b)$ 的顶点 ⇔ 支撑图无环(树或森林),至多 $n+m-1$ 个非零元。
- 有环 ⇒ 可以沿环交替 $\pm\varepsilon$ 扰动 ⇒ 是两个可行解的中点 ⇒ 不是顶点。
- 西北角法则一次扫描给出一个顶点;重排行列可得更多顶点(集合 $\mathcal N(a,b)$)。
3.5 网络单纯形法的直观描述 A Heuristic Description of the Network Simplex
这一节要解决的问题:怎样从一个顶点出发,一步步走到最优顶点?把前两节拼起来,思路就出来了。设 $P$ 是一个支撑无环的可行解(一个顶点)。由 Prop. 3.3,只要找到一对与 $P$ 互补、并且可行的对偶 $(f,g)$,就证明了 $P$ 最优。网络单纯形法(network simplex)建立在两条简单的原则上:
- 对每个顶点 $P$,都能配出一对与它互补的 $(f,g)$——沿着树「传播」一下就行;
- 如果这对 $(f,g)$ 可行,停机,$P$ 最优;否则就修改 $P$(保持可行),让它的互补对偶「更接近可行」。
3.5.1 求与 P 互补的对偶变量 Obtaining a Dual Pair Complementary to P
互补要求:对支撑中的每条边 $(i,j')\in S(P)$,都有 $f_i+g_j=C_{ij}$。设 $S(P)=\{(i_1,j_1'),\dots,(i_s,j_s')\}$,这是 $s$ 个方程、$n+m$ 个未知数的线性方程组:
因为 $s\le n+m-1\lt n+m$,方程组总是欠定的。多出的自由度有两个来源:一是 Rem. 3.1 说的约束冗余(整体上 $f+t$、$g-t$ 永远是另一组解);二是当 $G(P)$ 不连通、是由几棵树组成的森林时,每棵树各自多出一个自由度——未定的对偶变量个数恰好等于连通分支的个数。例如原书图 3.3 中有 $5+6=11$ 个对偶变量,却只有 8 条边、8 个方程,分成 3 棵树。
解法非常简单:在每棵树里任选一个根,令它的对偶变量为 0,然后沿树边传播(广度或深度优先都行)。每走过一条边 $(i,j')$,它的一端已知,另一端就由 $g_j=C_{ij}-f_i$ 或 $f_i=C_{ij}-g_j$ 唯一确定。
3.5.2 网络单纯形的更新 Network Simplex Update
对每个格子算一下约化代价(reduced cost)$\ r_{ij}=C_{ij}-f_i-g_j$(这是单纯形法的标准术语,原书没有起名字)。树上的边 $r_{ij}=0$;若所有 $r_{ij}\ge 0$,$(f,g)$ 可行,由 Prop. 3.3 $P$ 已经最优。否则找一个「违规」的格子 $(i,j')$:$f_i+g_j\gt C_{ij}$,即 $r_{ij}\lt 0$。
先令图 $G$ 等于 $G(P)$,再把违规的边 $(i,j')$ 加进去。会出现两种情况:
- (a) $G$ 仍是森林——$(i,j')$ 连接了两棵原本分开的树。这时 $P$ 完全不变,只是两棵树合成一棵、少了一个自由度,重新按 §3.5.1 计算 $(f,g)$ 即可。这种更新叫退化更新(degenerate update):边进入了 $G$,但 $P_{ij}$ 仍是 0(此后 $G(P)\subseteq G$,$G$ 里可以有流量为 0 的边)。
- (b) $G$ 出现了一个环。这时要从环上删掉一条边使 $G$ 恢复成森林,同时修改 $P$ 保持可行、并且 $G(P)\subseteq G$。做法和 Prop. 3.4 的证明如出一辙:从新边出发给环定向,$i_1\to j_1'\to i_2\to j_2'\to\cdots\to j_l'\to i_{l+1}=i_1$(其中 $i_1=i$、$j_1=j$),「$i\to j'$」方向的边标 +,「$j'\to i$」方向的边标 −,然后沿环推流:
$\theta$ 取「能推多少推多少」:受限于环上 − 边里最小的流量,$\theta=\min_k P_{i_{k+1},j_k}$。取到最小值的那条 − 边流量降为 0,把它从 $G$ 中删掉(出基(leaving edge)),而 $(i,j')$ 留下(入基(entering edge))。最后按 §3.5.1 重新计算 $(f,g)$。
3.5.3 原始解的改进 Improvement of the Primal Solution
虽然更新的动机是「让对偶更接近可行」,但它同时保证了原始代价只降不升。情形 (a) 中 $P$ 不变;情形 (b) 中:
第二个等号是因为:除新边外,环上所有边都在旧的 $G$ 里,满足 $C=f_i+g_j$;把这些 $f_i+g_j$ 代进交错和,每个节点的对偶变量恰好一加一减互相抵消,只剩下新边的 $C_{ij}-f_i-g_j$。由于 $r_{ij}\lt 0$,只要 $\theta\gt 0$ 代价就严格下降;$\theta=0$ 时(例如某条 − 边的流量本来就是 0)只是图 $G$ 变了而 $P$ 不变,这是单纯形法中常见的退化换基。(原书此处把条件印成了 $C_{ij}\lt f_i-g_j$,应为 $C_{ij}\lt f_i+g_j$。)
- 初始化:用西北角法则(§3.4.2)得到顶点 $P$,令 $G\leftarrow G(P)$,沿树求出互补的 $(f,g)$(§3.5.1)。
- 定价:找约束 $C-f\oplus g\ge 0$ 的违规格子 $(i,j')$;若没有,$P$ 最优,停止。
- 加边:把 $(i,j')$ 加入 $G$。若 $G$ 仍无环(情形 a),更新 $(f,g)$,回到第 2 步。
- 推流换基:若有环(情形 b),以 $(i,j')$ 为 + 给环定向,沿环推 $\theta$,删去流量最小的 − 边,更新 $P$、$G$ 与 $(f,g)$,回到第 2 步。
找环、遍历树等图操作都可以高效实现(Bertsekas 1998 §5)。Orlin(1997)首先证明了网络单纯形可以在多项式时间内结束;Tarjan(1997)借助更好的数据结构选择枢轴边,给出 $O\big((n+m)nm\log(n+m)\log((n+m)\|C\|_\infty)\big)$ 的界。
左图:每格左上角灰字是代价 $C_{ij}$;蓝底格子是当前图 $G$ 中的边,中间是流量 $P_{ij}$;其余格子在「定价」阶段显示约化代价 $r_{ij}=C_{ij}-f_i-g_j$(负数标红)。表格左侧、上方是对偶变量 $f_i$、$g_j$,右侧、下方是边缘分布 $a$、$b$。右图:同一时刻的二部图(不同颜色 = 不同的树;绿 = 环上的 + 边,红 = − 边)。用「下一步」逐阶段执行:求对偶 → 定价 → 加边 → 推流。
例 1 的西北角解支撑只有 3 棵树(边缘分布的部分和在 0.2 与 0.75 处重合),前两次加边都是情形 (a):把树连起来,$P$ 不变。之后每次换基都沿一个环推流,代价按 $\theta\times r_{ij}$ 精确下降;当所有约化代价 $\ge 0$ 时停机,最终代价与 Book.ot.emd 独立算出的最优值一致。随机问题里偶尔会看到 $\theta=0$ 的退化换基:图变了,代价没变。
网络单纯形中加入违规边 $(i,j')$ 后形成了环,推流量 $\theta$ 由什么决定?
- 对偶来自树:每棵树选根设 0,沿边用 $f_i+g_j=C_{ij}$ 传播;自由度个数 = 连通分支个数。
- 定价找 $r_{ij}\lt 0$;加边后若不成环(情形 a)只更新对偶,若成环(情形 b)沿环推 $\theta$ 并删掉被推空的 − 边。
- 代价变化 $=\theta\,r_{ij}\le 0$:网络单纯形在顶点之间单调下降,直到可行 + 互补。
3.6 对偶上升法 Dual Ascent Methods
这一节要解决的问题:能不能从对偶这一侧出发?网络单纯形始终保持 $P$ 可行,一步步让对偶变得可行;对偶上升法(dual ascent methods)反其道而行——始终保持 $(f,g)$ 可行,每次给一组 $f_i$ 加价、一组 $g_j$ 降价,让对偶目标严格上升,直到能找到一个与之互补的可行 $P$ 为止。
这类方法比网络单纯形还早几十年:可以追溯到 Borchardt 与 Jacobi(1865),以及后来的 König 和 Egerváry(Kuhn 1955 有回顾)。其中最有名的是匈牙利算法(Hungarian algorithm),但它只处理 $a=b=\mathbf 1_n/n$ 的特殊情形(指派问题)。下面介绍一般的对偶上升框架(原书的叙述主要依据 Bertsimas & Tsitsiklis 1997 §7.7),需要用到最大流(maximum flow)问题。
对 $S\subset\llbracket n\rrbracket$、$S'\subset\llbracket m\rrbracket'=\{1',\dots,m'\}$,记 $\mathbf 1_S\in\mathbb R^n$ 为「在 $S$ 的下标处为 1、其余为 0」的向量,$\mathbf 1_{S'}\in\mathbb R^m$ 同理。
设 $(f,g)$ 对偶可行。若 $f_i+g_j=C_{ij}$,称边 $(i,j')$ 为平衡边(balanced edge)(松弛为 0,「报价 = 运费」);若 $f_i+g_j\lt C_{ij}$,称为非活跃边(inactive edge)。
由互补松弛,最优的 $P$ 只能用平衡边运货。所以对偶上升的每一步都在问:只走平衡边,能不能把所有质量运完?能,就找到了互补的可行 $P$,结束;不能,就调价,让新的边变成平衡边。调价的方式由下面两个命题给出。
当 $\varepsilon\gt 0$ 足够小时仍对偶可行,只要满足:对每个 $i\in S$,从 $i$ 出发的平衡边都通向 $S'$ 中的节点。
证明思路
看每条边 $(i,j')$ 的 $f_i+g_j$ 怎样变化:$i\in S$、$j'\in S'$ 时 $+\varepsilon-\varepsilon$,不变;$i\notin S$、$j'\in S'$ 时减小,更安全;两者都不在时不变;只有 $i\in S$、$j'\notin S'$ 时增加 $\varepsilon$。条件保证这类边都是非活跃边(有正的松弛),所以只要 $\varepsilon$ 不超过它们的最小松弛,约束 $\tilde f_i+\tilde g_j\le C_{ij}$ 就全部成立。能取的最大步长正是
取到最小值的那条边在调价后变成新的平衡边。(原书的证明取了一个更保守的 $\varepsilon$,结论相同。)
要么 $(f,g)$ 已是问题 (3.4) 的最优解;要么存在 $S\subset\llbracket n\rrbracket$、$S'\subset\llbracket m\rrbracket'$,使 $(f,g)+\varepsilon(\mathbf 1_S,-\mathbf 1_{S'})$ 对足够小的 $\varepsilon\gt 0$ 可行,并且目标严格更大。
证明思路(最大流 + 标号,对应原书图 3.6)
① 建网络。只保留平衡边,容量无穷;再加一个源 $s$,连向每个 $i$ 的边容量为 $a_i$;一个汇 $t$,每个 $j'$ 连向 $t$ 的边容量为 $b_j$。用 Ford–Fulkerson 算法求最大流。
② 若最大流 = 1(全部质量):令 $P_{ij}$ 为边 $(i,j')$ 上的流量,它满足边缘约束、只用平衡边——与 $(f,g)$ 互补的可行解,由 Prop. 3.3 两者都最优。
③ 若最大流 $\lt 1$:运行标号算法(labeling algorithm):从 $s$ 出发,能沿「未饱和的 $s\to i$ 边」「平衡边 $i\to j'$(容量无穷,总能走)」「有流量的边反向 $j'\to i$」到达的节点都打上标号。因为流已经最大,$t$ 不会被标号。记 $S$、$S'$ 为被标号的行与列。平衡边从 $S$ 出发只能到 $S'$,所以 Prop. 3.5 适用。
④ 目标严格上升:目标变化是 $\varepsilon\,(\mathbf 1_S^\top a-\mathbf 1_{S'}^\top b)$。记 $A$、$C$ 分别为流入 $S$、流出 $S'$ 的流量(从 $s$ 与到 $t$)。流出 $S$ 的流量只能进入 $S'$,流入 $S'$ 的流量也只能来自 $S$(否则那一行会被反向标号),所以 $A=C$。$S$ 至少含一个未饱和的行(标号从它开始),其余行 $\le a_i$,故 $A\lt \mathbf 1_S^\top a$;$S'$ 中每个 $j'\to t$ 都饱和(否则 $t$ 被标号),故 $C=\mathbf 1_{S'}^\top b$。于是 $\mathbf 1_S^\top a-\mathbf 1_{S'}^\top b\gt A-C=0$。
用 Prop. 3.6 构造的 $S,S'$ 作方向、Prop. 3.5 允许的步长作 $\varepsilon$,就得到经典的原始—对偶法(primal-dual method);把它用在指派问题上,就是匈牙利算法。
左图:网络 $s\to$ 行 $i\to$ 列 $j'\to t$。灰色虚线是平衡边($f_i+g_j=C_{ij}$),蓝色粗线是当前的流;橙色的 $s\to i$ 边表示还没运完的供给,橙色圆圈是标号集合 $S\cup S'$。右图上:松弛矩阵(绿框 = 平衡边,框内数字 = 流量);右图下:对偶目标逐步上升,虚线是最优值。问题与上一节的演示相同,可以对比两种算法的结果。
每一轮:先只沿平衡边求最大流(流量从上一轮继续增加,已有的流不会失效);运不完时,标号集合 $S$ 的总供给严格大于 $S'$ 的总需求——「卡住」的正是这批仓库。于是给 $S$ 加价、给 $S'$ 降价,对偶目标上升 $\varepsilon\,(a(S)-b(S'))$,并出现一条新的平衡边。有时流量不增加、只是标号集合变大,但目标总在上升;当流量达到 1 时,得到的 $P$ 与网络单纯形的最优代价一致。
对偶上升与「对偶网络单纯形」有相似之处,但至少有两点重要区别:
- 单纯形类方法的迭代点总是可行集(对偶时是 $\mathrm R(C)$)的顶点;对偶上升没有这个限制,迭代点可以在可行集的内部。
- 对偶网络单纯形构造的 $P$ 始终满足边缘约束,只有收敛时才满足非负;对偶上升构造的 $P$(即最大流)始终非负,但只有收敛时才满足边缘约束。
- 对偶上升保持 $(f,g)$ 可行,只允许在平衡边上运输;用最大流检查「能不能运完」。
- 运不完时,标号算法给出 $S,S'$,满足 $a(S)\gt b(S')$;沿 $(\mathbf 1_S,-\mathbf 1_{S'})$ 调价,目标严格上升(Prop. 3.5、3.6)。
- 这就是原始—对偶法;在指派问题上它就是匈牙利算法。
3.7 拍卖算法 Auction Algorithm
这一节要解决的问题:对于指派问题($n$ 个人、$n$ 件物品,一一配对,使总代价 $\sum_i C_{i\sigma_i}$ 最小),有没有比前面更简单、更容易并行的算法?拍卖算法(auction algorithm)由 Bertsekas(1981)提出,后与 Eckstein(1988)一起改进,有很自然的经济学解释(Bertsekas 1992)。它也可以推广到任意边缘分布,但这里只讲指派问题。
指派问题中的互补松弛 Complementary Slackness
指派问题的顶点都是置换矩阵 $P_\sigma$,互补松弛因此变得格外简单。设 $\sigma^\star$ 与 $(f^\star,g^\star)$ 为原始、对偶最优解,则 $f^\star_i+g^\star_{\sigma^\star_i}=C_{i,\sigma^\star_i}$。又由 §3.2 的 C-变换原理,可以取 $f^\star=g^{\star\bar C}$,于是
反过来,只要某个 $g$ 和置换 $\sigma$ 满足
则 $\sigma$ 是最优指派,$(g^{\bar C},g)$ 是最优对偶。
部分指派与 ε-互补松弛 Partial Assignments and ε-Complementary Slackness
算法维护一个三元组 $(S,\xi,g)$:$S\subset\llbracket n\rrbracket$ 是已经分到物品的人,$\xi$ 是从 $S$ 到物品的单射(部分指派),$g$ 是对偶向量(负的价格)。每次迭代后保持三条性质:
- (a) ε-互补松弛(ε-CS):对所有 $i\in S$,$\ C_{i,\xi_i}-g_{\xi_i}\le\varepsilon+\min_j\ C_{ij}-g_j$ ——每个已分配的人都「差不多满意」,离最好的选择至多差 $\varepsilon$;
- (b) $S$ 的大小不会减少;
- (c) 有某个 $g_j$ 至少下降 $\varepsilon$(某件物品的价格至少上涨 $\varepsilon$)。
拍卖更新 Auction Algorithm Updates
挑一个还没分到物品的人 $i\notin S$,找出他眼中最好和次好的物品:
$j^1_i\in\operatorname{argmin}_j\ C_{ij}-g_j,\qquad j^2_i\in\operatorname{argmin}_{j\ne j^1_i}\ C_{ij}-g_j .$
- 出价(更新 $g$):把 $g_{j^1_i}$ 减去「次好与最好的差 + ε」:
$$g_{j^1_i}\ \leftarrow\ g_{j^1_i}-\underbrace{\Big[(C_{i,j^2_i}-g_{j^2_i})-(C_{i,j^1_i}-g_{j^1_i})+\varepsilon\Big]}_{\ge\,\varepsilon\,\gt\,0}\ =\ C_{i,j^1_i}-(C_{i,j^2_i}-g_{j^2_i})-\varepsilon .$$(3.9)
- 换主人(更新 $S$ 与 $\xi$):若有 $i'\in S$ 原本拿着 $j^1_i$,把他踢出:$S\leftarrow S\setminus\{i'\}$;然后令 $\xi_i=j^1_i$,$S\leftarrow S\cup\{i\}$。
先用一个 3×3 的小例子手算一遍:代价 $C=\left[\begin{smallmatrix}0 & 1 & 5 \\ 1 & 1 & 5 \\ 4 & 1 & 3\end{smallmatrix}\right]$,$\varepsilon=0.5$。人 1、人 2 都觉得物品 1′、2′ 便宜,人 3 最喜欢 2′——三个人抢两件好物品,会打一场小小的「价格战」。下面用价格 $p_j=-g_j$ 叙述(出价就是涨价),每一步都对应式 (3.9)。
开始:价格全为 0,没有人分到物品
每一轮挑一个还没分到物品的人(这里取编号最小的),计算他眼中的 $w_j=C_{ij}+p_j$,找出最好的 $j^1$ 与次好的 $j^2$。
第 1 次出价:人 1
$w=(0,1,5)$,最好 1′、次好 2′。1′ 涨价 $(1-0)+0.5=1.5$,人 1 得到 1′。
第 2 次出价:人 2
$w=(1+1.5,\ 1+0,\ 5)=(2.5,1,5)$,最好 2′、次好 1′。2′ 涨价 $(2.5-1)+0.5=2$,人 2 得到 2′。
第 3 次出价:人 3
$w=(4+1.5,\ 1+2,\ 3)=(5.5,3,3)$:2′ 与 3′ 并列最好(取编号小的 2′),次好的 3′ 同样是 3。差为 0,所以 2′ 只涨 $\varepsilon=0.5$——这正是 $\varepsilon$ 必须为正的原因:否则价格不动,可能永远兜圈子。人 3 拿走 2′,人 2 被挤掉。
第 4 次出价:人 2
$w=(1+1.5,\ 1+2.5,\ 5)=(2.5,3.5,5)$,最好 1′、次好 2′。1′ 涨价 $(3.5-2.5)+0.5=1.5$,人 1 被挤掉。
第 5 次出价:人 1
$w=(0+3,\ 1+2.5,\ 5)=(3,3.5,5)$,仍然最想要 1′。1′ 涨价 $(3.5-3)+0.5=1$,人 2 又被挤掉——价格战还在继续,1′、2′ 的价格轮番上涨。
第 6 次出价:人 2
$w=(1+4,\ 1+2.5,\ 5)=(5,3.5,5)$,最好 2′、次好 1′。2′ 涨价 $(5-3.5)+0.5=2$,人 3 被挤掉。
第 7 次出价:人 3
$w=(4+4,\ 1+4.5,\ 3+0)=(8,5.5,3)$:2′ 已经涨到 4.5,没人抢的 3′ 反而最划算。3′ 涨价 $(5.5-3)+0.5=3$,人 3 得到 3′。人人都有物品,拍卖结束。
结束:检查 ε-互补松弛与最优性
最终价格 $p=(4,\,4.5,\,3)$,指派 $1\to1'$、$2\to2'$、$3\to3'$。三人眼中的 $w$ 分别是 $(4,5.5,8)$、$(5,5.5,8)$、$(8,5.5,6)$:人 1 拿到的正是最好的;人 2、人 3 拿到的比最好的贵 $0.5=\varepsilon$——恰好「差不多满意」。总代价 $0+1+3=4$,等于最优值(Prop. 3.9 只保证差距 $\le n\varepsilon=1.5$,这里实际为 0)。
左图:蓝色圆 = 人 $i$,红色方块 = 物品 $j$,方块旁的数字是价格 $p_j=-g_j$,蓝线是当前指派;橙色箭头指向出价人最想要的 $j^1$,虚线指向次好的 $j^2$。右上:所有物品的价格(橙色部分 = 本次涨价)。右下:出价人眼中的「代价 + 价格」$C_{ij}+p_j$(出价前),最矮的是 $j^1$、次矮的是 $j^2$。代价 $C_{ij}=10\,\|x_i-y_j\|^2$。
每次出价只动一件物品的价格,而且只涨不跌;被挤掉的人之后面对更高的价格,会转向别的物品。结束时总代价与最优值(勾选「显示最优指派」可对照)至多差 $n\varepsilon$:把 ε 调大,出价次数变少,但可能停在一个稍差的指派上;把 ε 调小,结果更准,但几个人可能围绕同一件物品反复小幅加价。
算法性质 Algorithmic Properties
从 $S=\varnothing$、没有任何指派、$g=\mathbf 0$ 开始,反复执行上面两步,直到 $S=\llbracket n\rrbracket$(人人都有物品)为止。性质 (b)、(c) 从 (3.9) 一眼可见;一开始 $S$ 为空,ε-CS 自然成立,而下面的命题保证它一直成立。
拍卖算法的每次迭代都保持 ε-互补松弛。
证明思路
对出价人 $i$:由 (3.9),新价格下 $C_{i,j^1}-g^{\mathrm{new}}_{j^1}=\varepsilon+(C_{i,j^2}-g_{j^2})=\varepsilon+\min_{j\ne j^1}(C_{ij}-g_j)$;因为价格只涨不跌($g^{\mathrm{new}}\le g$),右边 $\le\varepsilon+\min_{j\ne j^1}(C_{ij}-g^{\mathrm{new}}_j)$,而对 $j=j^1$ 不等式显然成立,所以 ε-CS 对 $i$ 成立。
对其他已分配的人 $i'$:他的物品价格没变,而别的物品只会变贵,「最好的选择」只会变差,所以原来的 ε-CS 仍然成立。
拍卖算法的迭代次数至多为 $N=n\|C\|_\infty/\varepsilon$(这里代价非负)。
证明思路
物品一旦被出过价,就一直有主人(只会换主人,不会空置)。所以只要算法还没停,就有某件物品 $j$ 从未被出过价,$g_j=0$。每次出价让被出价物品的 $g$ 至少下降 $\varepsilon$;若某件物品 $j'$ 已被出价超过约 $\|C\|_\infty/\varepsilon$ 次,则 $g_{j'}\lt-\|C\|_\infty$,于是对任何人 $i$,$C_{ij'}-g_{j'}\gt\|C\|_\infty\ge C_{ij}-g_j$——$j'$ 比从没人要的 $j$ 还差,不会再有人对它出价。每件物品至多被出价约 $\|C\|_\infty/\varepsilon$ 次,总共至多约 $n\|C\|_\infty/\varepsilon$ 次。
上面的界意味着朴素实现需要约 $n^3\|C\|_\infty/\varepsilon$ 次运算(原书写作 $N^3\|C\|_\infty/\varepsilon$),ε 很小时很慢。巧妙的办法是 ε-scaling:先用大的 ε 快速得到一组「大致正确」的价格,再逐步缩小 ε,每一阶段沿用上一阶段的价格重新拍卖。这样复杂度可以降到约 $n^3\log\|C\|_\infty$(Bertsekas 1998 p. 264)。
拍卖算法找到的指派 $\xi$,总代价至多比最优值 $t^\star$ 大 $n\varepsilon$:$\ \sum_i C_{i,\xi_i}\le t^\star+n\varepsilon$。
证明思路
核心:弱对偶 + 对每个人把 ε-CS 加起来。$(g^{\bar C},g)$ 对偶可行,所以由弱对偶 $t^\star\ge\sum_i\min_j(C_{ij}-g_j)+\sum_j g_j$。再由 ε-CS,$\min_j(C_{ij}-g_j)\ge C_{i,\xi_i}-g_{\xi_i}-\varepsilon$。因为 $\xi$ 是置换,$\sum_i g_{\xi_i}=\sum_j g_j$ 恰好抵消:
对同一个 $n=8$ 的指派问题,用 13 个不同的 ε(从 $10^{-3}$ 到 1)各完整地跑一遍拍卖。左图:出价次数(对数坐标);右图:结果比最优多出的代价(空心点 = 恰好最优),虚线是 Prop. 3.9 的上界 $n\varepsilon$。蓝色 = 普通拍卖;绿色 = ε-scaling(从 $\varepsilon_0=\|C\|_\infty/4$ 开始,每阶段除以 5,沿用价格,直到目标 ε)。
「拥挤」时所有人看各物品的代价都差不多,大家轮流对同几件物品小幅加价(每次只涨 ε 左右),ε 缩小 10 倍,出价次数就大幅增加——这正是 Prop. 3.8 的 $1/\varepsilon$ 因子。ε-scaling 先用大 ε 把价格「粗调」到位,出价次数少得多。右图中所有点都在虚线 $n\varepsilon$ 之下;ε 足够小时,结果直接就是最优指派。点分布均匀时,价格战不明显,普通拍卖本来就很快。
所以拍卖算法可以看成使用 C-变换机制的另一种方式——它在 C-变换中加入了「次好」的信息和一点点 ε,从而打破了 §3.2 中交替变换的僵局。下一章介绍另一种思路:正则化,即 Sinkhorn 算法,它和拍卖算法也有不少相似之处(Schmitzer 2016b)。最后值得一提:在低维欧氏空间的规则网格上,这些经典的线性规划求解器还可以和多尺度(multiscale)策略结合,获得显著的加速(Schmitzer 2016a;Oberman & Ruan 2015)。
拍卖算法中,人 $i$ 出价时物品 $j^1$ 的价格 $p_{j^1}=-g_{j^1}$ 上涨多少?
- 指派问题的最优性 ⇔ 每个人在当前价格下都拿到最想要的物品((3.7)、(3.8))。
- 拍卖:没分到的人对最想要的物品加价「次好与最好之差 + ε」,并挤走原主人;ε-CS 始终成立(Prop. 3.7)。
- 出价次数 $\le n\|C\|_\infty/\varepsilon$(Prop. 3.8),结果至多差 $n\varepsilon$(Prop. 3.9);ε-scaling 兼顾精度与速度(Rem. 3.3)。
本章小结
- 问题:离散 OT 是标准形线性规划 (3.2),约束矩阵是完全二部图的关联矩阵,秩 $n+m-1$;对偶 (3.3)/(3.4) 中的 $(f,g)$ 是「报价」,可行报价给出下界(弱对偶),最优报价等于最优运费(强对偶)。
- C-变换:固定 $f$ 时最好的 $g$ 是 $f^C$(行减 $f$、列取最小),对偶化为无约束凹问题 (3.5);但 $f^{C\bar CC}=f^C$,交替变换一轮即停滞(Prop. 3.1)。
- 最优性证书:$\langle C,P\rangle-\langle f,a\rangle-\langle g,b\rangle=\sum P_{ij}(C_{ij}-f_i-g_j)$;可行 + 互补 ⇔ 最优(Prop. 3.2、3.3)。
- 结构:$\mathrm U(a,b)$ 的顶点 ⇔ 支撑无环(Prop. 3.4),至多 $n+m-1$ 个非零元;西北角法则给出一个顶点。
- 算法:三种精确方法都在「凑」一对可行且(ε-)互补的解,只是出发的一侧不同:
| 网络单纯形 §3.5 | 对偶上升 §3.6 | 拍卖算法 §3.7 | |
|---|---|---|---|
| 始终保持 | $P$ 可行(是顶点),$(f,g)$ 与之互补 | $(f,g)$ 可行;$P$ 只走平衡边(非负) | ε-互补松弛;部分指派 |
| 逐步追求 | 对偶可行(所有 $r_{ij}\ge 0$) | $P$ 满足边缘约束(最大流 = 1) | 每个人都分到物品 |
| 一步的核心 | 沿树求对偶 → 找 $r_{ij}\lt 0$ → 找环 → 推 $\theta$ | 最大流 → 标号 $S,S'$ → 调价 $\varepsilon$ | 最好/次好 → 按 (3.9) 涨价 → 换主人 |
| 单调量 | 原始代价不增(降 $\theta\,|r_{ij}|$) | 对偶目标严格上升 | 价格只涨不跌 |
| 结果 | 精确最优 | 精确最优 | 至多差 $n\varepsilon$(Prop. 3.9) |
| 适用范围 | 一般的 $a,b$ | 一般的 $a,b$(指派时 = 匈牙利算法) | 指派问题(可推广) |
概念之间的联系:互补松弛(§3.3)是所有算法的停机判据;「顶点 = 树」(§3.4)让网络单纯形能沿树唯一地解出对偶,也保证每次换基仍是顶点;C-变换(§3.2)说明「一次只动一边」会卡住——网络单纯形沿树、对偶上升按集合 $S,S'$ 成组地移动对偶变量,拍卖算法则借助「次好」与 ε 打破僵局。下一章的 Sinkhorn 算法换一条路:给问题加上熵正则,得到光滑、可并行的迭代。
自测
从某个 $f$ 出发,交替做 C-变换和 C̄-变换,对偶目标会怎样?
已知 $P$ 原始可行、$(f,g)$ 对偶可行,并且 $\langle C,P\rangle=\langle f,a\rangle+\langle g,b\rangle$。能得出什么?
一个 5×7 的运输问题,运输多面体的顶点至多有几个非零元?
网络单纯形中,把违规边 $(i,j')$ 加入图 $G$ 后没有形成环。这说明什么?
对偶上升中,只走平衡边的最大流小于 1。标号得到的集合 $S$(行)与 $S'$(列)满足什么?
$n\times n$ 指派问题的代价全是整数。ε 至少取多小,就能保证拍卖算法给出最优指派?
下面哪种方法的迭代点可能位于对偶可行集 $\mathrm R(C)$ 的内部,而不必是顶点?
在拍卖算法中把 ε 调小,通常会发生什么?
习题
提示
边缘约束确定了其余三个元素:$P_{12}=0.6-t$,$P_{21}=0.5-t$,$P_{22}=t-0.1$;四个元素都非负给出 $t$ 的范围。代价是 $t$ 的一次函数。参考解答
(1) $P=\left[\begin{smallmatrix}t & 0.6-t \\ 0.5-t & t-0.1\end{smallmatrix}\right]$,$t\in[0.1,0.5]$。顶点 $t=0.1$:$\left[\begin{smallmatrix}0.1 & 0.5 \\ 0.4 & 0\end{smallmatrix}\right]$;$t=0.5$:$\left[\begin{smallmatrix}0.5 & 0.1 \\ 0 & 0.4\end{smallmatrix}\right]$。两者都恰有 3 个非零元,支撑是一条路径(树)。
(2) 代价 $=t+3(0.6-t)+2(0.5-t)+(t-0.1)=2.7-3t$,在 $t=0.5$ 取最小值 $1.2$,$P^\star=\left[\begin{smallmatrix}0.5 & 0.1 \\ 0 & 0.4\end{smallmatrix}\right]$。
(3) 支撑边 $(1,1'),(1,2'),(2,2')$。令 $f_1=0$,则 $g_1=C_{11}-f_1=1$,$g_2=C_{12}-f_1=3$,$f_2=C_{22}-g_2=-2$。唯一的非树格子 $(2,1')$:$f_2+g_1=-1\le C_{21}=2$,可行。对偶目标 $0.6\cdot 0+0.4\cdot(-2)+0.5\cdot 1+0.5\cdot 3=1.2$,与最优代价相等。
提示
$f^C$:第 $i$ 行减去 $f_i$,取每列最小值;$g^{\bar C}$:第 $j$ 列减去 $g_j$,取每行最小值。参考解答
(1) $C-f$ 的两行为 $(1,4,2)$ 与 $(8,6,10)$,列最小值 $f^C=(1,4,2)$。$C-f^C$ 的两行为 $(0,0,0)$ 与 $(2,-3,3)$,行最小值 $f^{C\bar C}=(0,-3)\ge f=(0,-5)$,(ii) 成立。再做 C-变换:$C-f^{C\bar C}$ 的两行为 $(1,4,2)$ 与 $(6,4,8)$,列最小值 $(1,4,2)=f^C$,(iii) 成立。
(2) $\langle f,a\rangle+\langle f^C,b\rangle=-2.5+7/3=-1/6$;$\langle f^{C\bar C},a\rangle+\langle f^C,b\rangle=-1.5+7/3=5/6$。
(3) 之后再交替也不会变,平台值 $5/6$ 只有最优值 $5/3$ 的一半。(一组最优对偶是 $f^\star=(0,2)$、$g^\star=(1,-1,2)$,目标 $1+2/3=5/3$。)
提示
(1) $P=\left[\begin{smallmatrix}t & 1/2-t \\ 1/2-t & t\end{smallmatrix}\right]$。(2) 一棵有 $t$ 个节点的树恰有 $t-1$ 条边;因为 $a_i,b_j\gt 0$,没有孤立节点。参考解答
(1) $t\in[0,\tfrac12]$,顶点是 $t=0$ 与 $t=\tfrac12$,即 $\tfrac12\left[\begin{smallmatrix}0 & 1 \\ 1 & 0\end{smallmatrix}\right]$ 和 $\tfrac12\left[\begin{smallmatrix}1 & 0 \\ 0 & 1\end{smallmatrix}\right]$(除以 2 的置换矩阵)。每个只有 2 个非零元,支撑是两条不相连的边:2 棵树组成的森林,少于 $n+m-1=3$——退化顶点。
(2) 由 Prop. 3.4,$G(P)$ 无环,是 $k$ 棵树。每个节点都有质量,所以至少连着一条边,全部 $n+m$ 个节点分布在这 $k$ 棵树里。第 $\ell$ 棵树有 $t_\ell$ 个节点、$t_\ell-1$ 条边,总边数 $\sum_\ell(t_\ell-1)=(n+m)-k$。
(3) (3.6) 有 $n+m-k$ 个方程、$n+m$ 个未知数,并且每棵树内部的方程可以沿树唯一求解,所以恰有 $k$ 个自由度——每棵树的根各一个。(1) 中 $k=2$,对偶 $(f,g)$ 有两个任意常数。
提示
西北角解 $\left[\begin{smallmatrix}0.2 & 0 & 0 \\ 0.3 & 0.1 & 0.1 \\ 0 & 0 & 0.3\end{smallmatrix}\right]$,树边 $(1,1'),(2,1'),(2,2'),(2,3'),(3,3')$,代价 1.9。参考解答
(1) $f_1=0\Rightarrow g_1=1\Rightarrow f_2=C_{21}-g_1=0\Rightarrow g_2=4,\ g_3=4\Rightarrow f_3=C_{33}-g_3=-2$。
(2) $r_{12}=3-0-4=-1$,$r_{13}=4-0-4=0$,$r_{31}=6+2-1=7$,$r_{32}=5+2-4=3$。只有 $(1,2')$ 为负,入基。
(3) 环:$1\to 2'$(+)、$2'\to 2$(−,$P_{22}=0.1$)、$2\to 1'$(+)、$1'\to 1$(−,$P_{11}=0.2$)。$\theta=\min(0.1,0.2)=0.1$,$(2,2')$ 出基。新解 $\left[\begin{smallmatrix}0.1 & 0.1 & 0 \\ 0.4 & 0 & 0.1 \\ 0 & 0 & 0.3\end{smallmatrix}\right]$,代价 $1.9+0.1\times(-1)=1.8$。
(4) 新树边 $(1,1'),(1,2'),(2,1'),(2,3'),(3,3')$:$f=(0,0,-2)$,$g=(1,3,4)$。非树格子 $r_{13}=0$,$r_{22}=1$,$r_{31}=7$,$r_{32}=4$,全部 $\ge 0$,由 Prop. 3.3 最优(与 Book.ot.emd 的 1.8 一致)。$r_{13}=0$ 说明还存在代价相同的其他最优解。
提示
$g=f^C=(1,2)$(每列最小值)。第 2 行此时没有平衡边。参考解答
(1) 松弛矩阵 $C-f\oplus g=\left[\begin{smallmatrix}0 & 0 \\ 2 & 3\end{smallmatrix}\right]$,平衡边只有 $(1,1'),(1,2')$。第 2 行运不出去,最大流 $=a_1=0.5$(例如全部走 $1\to 1'$)。对偶目标 $0+0.5\cdot1+0.5\cdot2=1.5$。
(2) $s\to 2$ 未饱和,标号 2;从 2 出发没有平衡边,于是 $S=\{2\}$、$S'=\varnothing$($s\to1$ 已饱和,1 不被标号)。$\varepsilon=\min(C_{21}-f_2-g_1,\ C_{22}-f_2-g_2)=\min(2,3)=2$,$f_2\leftarrow 2$。目标增加 $\varepsilon\,(a_2-0)=1$,变为 2.5;$(2,1')$ 成为新的平衡边。
(3) 增广路 $s\to 2\to 1'\to 1\to 2'\to t$(其中 $1'\to1$ 是把原有流量退回),推 0.5,最大流 = 1:$P=\left[\begin{smallmatrix}0 & 0.5 \\ 0.5 & 0\end{smallmatrix}\right]$,代价 $0.5\cdot2+0.5\cdot3=2.5$,等于对偶目标,由 Prop. 3.3 最优。(另一个指派的代价是 3。)
提示
用 Prop. 3.9,再利用「两个整数的差如果小于 1 就等于 0」。参考解答
设拍卖结果的代价为 $t=\sum_i C_{i\xi_i}$,最优为 $t^\star$。两者都是整数之和,因此是整数;由 Prop. 3.9,$0\le t-t^\star\le n\varepsilon\lt 1$,所以 $t=t^\star$。对实数代价,可以先把 $C$ 放大并取整(例如乘以 $10^k$),这样误差可控;或者直接接受 $n\varepsilon$ 的误差——ε 的大小就是精度与速度之间的旋钮。
提示
想象两个人都最想要同一件物品、且对它和次好物品的评价几乎一样:每次出价只能涨「差 + ε」≈ ε。ε-CS 依赖于 ε:换成更小的 ε 后,旧的指派未必满足新的 ε-CS。参考解答
(1) 人都挤在一起时,每个人对各物品的代价几乎相同,「次好 − 最好」接近 0,每次出价只把价格抬高约 ε。要把某件抢手物品的价格抬到足以让大家分流的水平 Δ,需要约 Δ/ε 次出价,而且多个人轮流互相挤掉,总次数随 $1/\varepsilon$ 增长(Prop. 3.8 的上界 $n\|C\|_\infty/\varepsilon$ 正是这个因子)。
(2) 伪代码:g ← 0;ε ← ε₀(如 ‖C‖∞/4);循环 { 清空指派;用当前 g 和 ε 运行拍卖直到人人有物品;若 ε ≤ ε_目标 则停止;ε ← ε/5 }。大 ε 阶段用很少的出价就把价格粗调到接近最优对偶的位置;后续小 ε 阶段的价格只需在此基础上微调,每件物品只需再涨几个 ε,避免了从 0 开始、以 ε 为步长的漫长爬升。
(3) 旧指派只满足「旧 ε」的 ε-CS,对更小的新 ε 可能不成立,而 Prop. 3.7–3.9 的保证都依赖于 ε-CS 一直成立;清空指派后 $S=\varnothing$,ε-CS 平凡成立,价格作为「热启动」保留下来即可。
最优传输的熵正则化 Entropic Regularization of Optimal Transport
给最优传输加一点「熵」:精确但笨重的线性规划,就变成了只需反复「缩放行、缩放列」的 Sinkhorn 算法——这是今天实际计算最优传输最常用的方法,也是全书最重要的一章。
- 说清熵正则化问题 $\mathrm{L}^\varepsilon_C(a,b)$ 是什么,以及参数 $\varepsilon$ 如何在「精确最优传输」与「独立耦合 $ab^\top$」之间插值(Prop. 4.1)。
- 理解最优解一定形如 $P=\operatorname{diag}(u)\,K\operatorname{diag}(v)$(Prop. 4.3),并能手算 Sinkhorn 迭代的几步。
- 知道 Sinkhorn 为什么线性收敛(Hilbert 射影度量),以及 $\varepsilon$ 变小时为什么会变慢、甚至数值溢出。
- 掌握三类加速技巧(批量并行、网格上的可分离卷积、外推)与对数域的稳定实现(soft-min)。
- 会用 Sinkhorn 的输出给真正的 OT 代价做上下界(Sinkhorn 散度),并了解把边缘约束换成惩罚项的广义 Sinkhorn(非平衡 OT)。
- 熵正则化:在 OT 目标上减去 $\varepsilon H(P)$。新问题严格凸、解唯一、每个元素都为正,而且对输入光滑。
- $\varepsilon\to 0$ 回到精确 OT(若有多个最优解,选其中熵最大的);$\varepsilon\to\infty$ 变成独立耦合 $ab^\top$。$\varepsilon$ 越大,耦合越「模糊」。
- 最优解只有 $n+m$ 个自由度:$P_{ij}=u_iK_{ij}v_j$,其中 $K=e^{-C/\varepsilon}$ 是 Gibbs 核。
- Sinkhorn 算法 = 交替缩放:$u\leftarrow a/(Kv)$ 让行和对上,$v\leftarrow b/(K^\top u)$ 让列和对上;每步只是矩阵–向量乘法,天生适合 GPU 与批量计算。
- 收敛是线性的(正矩阵在 Hilbert 度量下是压缩映射),但 $\varepsilon$ 越小越慢;太小时朴素实现还会下溢/溢出,要改用对数域(log-sum-exp)。
- 对偶解给出真实 OT 代价的下界,原始解给出上界,两者之差恰为 $\varepsilon\times$(香农熵)。
- 把硬边缘约束换成一般的函数 $F,G$,同样的缩放迭代依然成立——这就是广义 Sinkhorn,可解非平衡 OT、重心等问题。
第 3 章的精确算法(网络单纯形、拍卖算法)能算出精确的最优传输,但它们的复杂度大约是 $O(n^3\log n)$,难以并行,而且得到的最优值对输入不光滑——没法方便地求导、放进机器学习模型里。本章换一个思路:不再精确求解,而是在目标里加一个熵惩罚,把问题「软化」。原书开篇列出了这样做的五个好处,它们也正是本章的线索:
| 好处 | 具体含义 | 本章位置 |
|---|---|---|
| ① 算法简单 | 正则化问题可以用交替最小化求解:就是 Sinkhorn 迭代 | 4.2 |
| ② 只有矩阵–向量乘法 | 每步是 $Kv$、$K^\top u$ 这样的乘法,特别适合 GPU | 4.2、4.3 |
| ③ 不必存代价矩阵 | 只需要知道「核 $K$ 作用在一个向量上」的结果,比如网格上的高斯模糊 | 4.3 |
| ④ 批量计算 | 许多直方图共享同一支撑时,把矩阵–向量乘法合并成矩阵–矩阵乘法 | 4.3 |
| ⑤ 光滑、可微 | 近似距离对直方图权重和点的位置都光滑,可用自动微分求梯度 | 4.5、第 9 章 |
4.1 熵正则化 Entropic Regularization
这一节要解决的问题:最优传输是一个线性规划,它的解稀疏(大部分元素为 0)、可能不唯一、对输入不光滑。我们给目标加上一个「鼓励摊开」的熵项,得到一个严格凸的新问题;一个参数 $\varepsilon$ 控制摊开的程度。
离散熵与正则化问题 Discrete Entropy and the Regularized Problem
质量摊得越开,$H$ 越大;质量集中在少数格子上,$H$ 就小。对向量也用同样的定义。
两个小细节值得记住:
- 那个「$-1$」只是为了公式好看:它让 $\partial H/\partial P_{ij}=-\log P_{ij}$。对总质量为 1 的 $P$,$H(P)$ 就等于香农熵(Shannon entropy)加 1。
- $H$ 是 1-强凹(1-strongly concave) 的:它的 Hessian 是 $-\operatorname{diag}(1/P_{ij})$,而 $P_{ij}\le 1$。所以 $-H$ 是一个「碗形」的强凸函数,加到目标上会让最优解唯一。
第一项是运输总代价(想少花钱),第二项 $-\varepsilon H(P)$ 惩罚「过于集中」(想摊开)。$\varepsilon\gt 0$ 是两者之间的汇率。目标函数是 $\varepsilon$-强凸的,所以 (4.2) 有唯一解,记为 $P_\varepsilon$。
先在最简单的情形里看熵起了什么作用。原书Fig. 4.1在概率单纯形 $\Sigma_3$(一个三角形)上最小化线性函数 $\langle c,p\rangle$:这是一个线性规划,解总落在顶点上(最稀疏的点)。加上 $-\varepsilon H(p)$ 之后,解有闭式 $p_\varepsilon\propto e^{-c/\varepsilon}$(即 softmax),它随 $\varepsilon$ 增大离开边界、走向三角形的「熵中心」$(\tfrac13,\tfrac13,\tfrac13)$。
三角形是 $\Sigma_3$,三个顶点是 $(1,0,0)$、$(0,1,0)$、$(0,0,1)$。拖动箭头的尖端(或点击三角形内任意处)设定代价 $c$:箭头指向「代价下降最快」的方向,越长代价差越大。拖动 $\varepsilon$ 滑块。颜色越深,目标值 $\langle c,p\rangle-\varepsilon H(p)$ 越小;黑点是最优解 $p_\varepsilon$,灰色曲线是 $\varepsilon$ 从 0 变到 ∞ 时解走过的路径。
$\varepsilon$ 很小时解贴在顶点上(稀疏);$\varepsilon$ 变大,解沿灰色路径进入三角形内部,最终到达中心——所有分量都为正,最「模糊」。点「让两个顶点代价相同」:这时整条底边都是线性规划的最优解(不唯一),而 $\varepsilon\to 0$ 时 $p_\varepsilon$ 恰好收敛到底边中点,也就是最优解中熵最大的那一个——这正是下面 Prop. 4.1 的内容。
ε 的两个极限 Convergence with ε
(4.2) 的唯一解 $P_\varepsilon$ 满足:
- $\varepsilon\to 0$:$P_\varepsilon$ 收敛到原 Kantorovich 问题所有最优解中熵最大的那一个 $$P_\varepsilon\xrightarrow{\varepsilon\to 0}\operatorname*{argmin}_P\big\{-H(P):\ P\in U(a,b),\ \langle P,C\rangle=\mathrm{L}_C(a,b)\big\},\qquad \mathrm{L}^\varepsilon_C(a,b)\xrightarrow{\varepsilon\to0}\mathrm{L}_C(a,b);$$(4.3)
- $\varepsilon\to\infty$:$P_\varepsilon\to a\otimes b=ab^\top=(a_ib_j)_{ij}$,即独立耦合(tensor product coupling)。(4.4)
证明思路
核心想法:拿 $P_\varepsilon$ 和任意一个 OT 最优解 $P$ 比较两个问题的最优性。
取 $\varepsilon_\ell\to0$,记 $P_\ell=P_{\varepsilon_\ell}$。$U(a,b)$ 有界且闭,可以抽出收敛子列 $P_\ell\to P^\star\in U(a,b)$。设 $P$ 是任一 OT 最优解。$P$ 对原问题最优、$P_\ell$ 对正则问题最优,于是
令 $\ell\to\infty$:右边趋于 0,所以 $\langle C,P^\star\rangle=\langle C,P\rangle$,$P^\star$ 也是 OT 最优解。再把 (4.5) 两边除以 $\varepsilon_\ell$ 取极限,得 $H(P)\le H(P^\star)$:$P^\star$ 的熵不小于任何最优解,即它是 (4.3) 的解。$-H$ 严格凸,(4.3) 的解唯一,所以整个序列都收敛到它。$\varepsilon\to\infty$ 时同理,只是熵项占主导,极限变成 $\min_{P\in U(a,b)}-H(P)$,其解就是 $ab^\top$。
换句话说:$\varepsilon$ 很小时,熵项只在「平局」时起作用(在一堆同样便宜的方案里挑最分散的);$\varepsilon$ 很大时代价几乎被忽略,得到的是「最随意」的方案——两个边缘分布的独立乘积,相当于每个源按比例把质量撒给所有目标。
左图是耦合矩阵 $P_\varepsilon$ 的热力图(行 = 源位置,左侧红条是 $a$;列 = 目标位置,上方蓝条是 $b$),颜色越深质量越多。拖动 $\varepsilon$ 滑块。右侧两张小图给出运输代价与互信息随 $\varepsilon$ 的变化,竖线标出当前的 $\varepsilon$。可以切换到 copula 视图(进阶,见下文 Rem. 4.4)。
$\varepsilon$ 小时,$P_\varepsilon$ 收缩成精确 OT 解那条细细的「单调阶梯」(勾选黑点对比),代价逼近精确值;$\varepsilon$ 大时,热力图变成 $a$ 与 $b$ 的外积——每一行都是 $b$ 的缩放,代价升到 $\langle C,ab^\top\rangle$,互信息降到 0。代价和互信息此消彼长:$\varepsilon$ 就是在「省钱」与「随机」之间调节的旋钮。
KL 投影与 Gibbs 核 KL Projection and the Gibbs Kernel
(4.2) 还有一个非常有用的改写:它是某个矩阵在 KL 散度意义下的「投影」。
$K$ 称为代价 $C$ 对应的 Gibbs 核(Gibbs kernel)。
为什么(一行验算)
把 $\log K_{ij}=-C_{ij}/\varepsilon$ 代入 KL 的定义:$\varepsilon\,\mathrm{KL}(P|K)=\langle P,C\rangle+\varepsilon\sum P_{ij}(\log P_{ij}-1)+\varepsilon\sum K_{ij}=\langle P,C\rangle-\varepsilon H(P)+\text{常数}$。两个目标只差一个与 $P$ 无关的常数,最优解当然相同。
名字来自统计物理:概率 $\propto e^{-\text{能量}/\text{温度}}$,$\varepsilon$ 扮演温度。降温($\varepsilon\to0$)系统「冻结」到能量最低态——精确 OT 解;升温($\varepsilon\to\infty$)达到最大无序——独立耦合。
离散测度与一般测度 Discrete and General Measures
对离散测度 $\alpha=\sum_i a_i\delta_{x_i}$、$\beta=\sum_j b_j\delta_{y_j}$,定义 $\mathcal{L}^\varepsilon_c(\alpha,\beta)=\mathrm{L}^\varepsilon_C(a,b)$,其中 $C_{ij}=c(x_i,y_j)$ (4.8)。这个记号强调了结果依赖于点的位置——下面的演示里你可以直接拖动这些位置。
红点是源 $x_i$,蓝点是目标 $y_j$(各 10 个,质量相等),代价 $c(x,y)=\|x-y\|^2$。灰线连接 $x_i$ 与 $y_j$,线越粗、越深表示 $P_{ij}$ 越大(只画大于最大值 2% 的元素)。直接拖动任意一个点,或拖动 $\varepsilon$ 滑块;可叠加精确 OT 解(紫色虚线)与重心投影(青色箭头,见 Rem. 4.11)。
$\varepsilon$ 小时每个红点几乎只连向一个蓝点(精确 OT 在等质量时是一个置换,恰好 10 条线);$\varepsilon$ 增大,每个点的质量被撒向越来越多的目标,连线变成一团「毛线」,代价上升。打开重心投影:它把每个 $x_i$ 送到它所连目标的加权平均,$\varepsilon$ 越大,所有箭头越被拉向目标点云的中心。
进阶:一般测度、静态 Schrödinger 问题、互信息与 copula(Rem. 4.2–4.4)
一般形式 Rem. 4.2。对任意测度,把离散熵换成相对乘积测度 $\alpha\otimes\beta$ 的相对熵:
其中 KL 按 (4.10) 推广到测度($\pi$ 对参考测度没有密度时记为 $+\infty$)。Prop. 4.2 说明参考测度其实不重要,只有它的支撑(零测集)重要:换成与 $\alpha\otimes\beta$ 零测集相同的 $\alpha'\otimes\beta'$,目标只差一个常数 $\mathrm{KL}(\alpha\otimes\beta|\alpha'\otimes\beta')$,解不变。(4.9) 同样可写成 KL 投影 $\min_\pi\mathrm{KL}(\pi|\mathcal K)$,$\mathrm d\mathcal K=e^{-c/\varepsilon}\mathrm d\alpha\,\mathrm d\beta$ (4.11),这就是 Schrödinger 1931 年在统计物理中提出的静态 Schrödinger 问题(static Schrödinger problem);§7.6 给出它在路径空间上的「动态」版本。
互信息 Rem. 4.3。用随机变量的语言,$\mathcal{L}^\varepsilon_c(\alpha,\beta)=\min_{X\sim\alpha,Y\sim\beta}\mathbb E[c(X,Y)]+\varepsilon I(X,Y)$,其中 $I(X,Y)=\mathrm{KL}(\pi|\alpha\otimes\beta)\ge0$ 是 $X,Y$ 的互信息(mutual information),等于 0 当且仅当两者独立。熵正则化 = 「运费低」与「$X$、$Y$ 之间不要太相关」的折中。
独立与完全相关 Rem. 4.4。$\varepsilon\to\infty$ 时 $\pi_\varepsilon\to\alpha\otimes\beta$,$X,Y$ 独立;$\varepsilon\to0$ 时(若 $\alpha,\beta$ 有密度)$\pi_0$ 集中在 Monge 映射 $T$ 的图像上,$Y=T(X)$,两者「完全相关」。一维时可以用 copula 看清相关结构:$\xi_\pi(s,t)=\mathcal C_\pi(\mathcal C_\alpha^{-1}(s),\mathcal C_\beta^{-1}(t))$,$\mathcal C_\pi$ 是二维累积分布函数。独立时 $\xi(s,t)=st$,完全相关时 $\xi(s,t)=\min(s,t)$;$\varepsilon$ 在两者之间插值(原书 Fig. 4.4,上面演示的 copula 视图)。(原书此处把完全相关的情形也写成了「ε = +∞」,应为 ε → 0。)
把 ε 调得非常大时,熵正则化的最优耦合 P_ε 会趋向什么?
4.2 Sinkhorn 算法及其收敛性 Sinkhorn's Algorithm and Its Convergence
这一节要解决的问题:怎样把 $P_\varepsilon$ 真正算出来?关键发现是最优解的结构极其简单——只需给 Gibbs 核的每一行、每一列各乘一个缩放因子。于是 $nm$ 个未知数变成 $n+m$ 个,交替地让行和、列和对上即可。这就是 Sinkhorn 算法。
解的形式:缩放后的 Gibbs 核 Form of the Solution
(4.2) 的解唯一,且存在两个(未知的)正向量 $u\in\mathbb R^n_+$、$v\in\mathbb R^m_+$,使
证明思路
核心想法:拉格朗日乘子法,一阶条件直接解出 $P$。
给两组边缘约束各引入对偶变量 $f\in\mathbb R^n$、$g\in\mathbb R^m$,拉格朗日函数为 $\mathcal E(P,f,g)=\langle P,C\rangle-\varepsilon H(P)-\langle f,P\mathbb 1_m-a\rangle-\langle g,P^\top\mathbb 1_n-b\rangle$。对 $P_{ij}$ 求导并令其为零:$C_{ij}+\varepsilon\log P_{ij}-f_i-g_j=0$,所以 $P_{ij}=e^{f_i/\varepsilon}\,e^{-C_{ij}/\varepsilon}\,e^{g_j/\varepsilon}$。令 $u=e^{f/\varepsilon}$、$v=e^{g/\varepsilon}$ 即得。
矩阵缩放与 Sinkhorn 迭代 Regularized OT as Matrix Scaling
把 $P=\operatorname{diag}(u)K\operatorname{diag}(v)$ 代入两个边缘约束 (4.13),由于 $\operatorname{diag}(v)\mathbb 1_m=v$,约束化简为
$\odot$ 是逐元素乘法。在数值分析里这叫矩阵缩放问题(matrix scaling problem)。两组方程各自都很好解:固定 $v$,第一组直接给出 $u=a/(Kv)$;固定 $u$,第二组给出 $v=b/(K^\top u)$。交替进行,就是 Sinkhorn 算法:
K ← exp(−C/ε); v ← 1
重复,直到 ‖u ⊙ (K v) − a‖₁ < tol:
u ← a ./ (K v) # 行缩放:之后每一行的和恰好是 a
v ← b ./ (Kᵀ u) # 列缩放:之后每一列的和恰好是 b
输出 P = diag(u) · K · diag(v)
除法都是逐元素的。每一步只需要一次矩阵–向量乘法,外加 $n$ 或 $m$ 次除法。
- 缩放因子不唯一,耦合唯一。若 $(u,v)$ 满足 (4.13),则 $(\lambda u,v/\lambda)$ 也满足($\lambda\gt0$);不同的初值会得到不同的 $u,v$,但 $\operatorname{diag}(u)K\operatorname{diag}(v)$ 总是同一个最优耦合。
- 一定收敛。原因有两种讲法:交替 KL 投影(Rem. 4.8)和 Hilbert 度量下的压缩(Rem. 4.14),下面都会讲到。
- 演化的样子。耦合从 Gibbs 核 $K$(一条对角带)出发,一步步把质量「挪」向满足边缘的位置(原书 Fig. 4.5 上排)。
下面用一个 4×4 的小例子手动走几步。位置 $x=y=(0,1,2,3)$,$C_{ij}=|x_i-y_j|^2$,$\varepsilon=1$;源 $a=(0.4,0.3,0.2,0.1)$ 偏左,目标 $b=(0.1,0.2,0.3,0.4)$ 偏右,所以质量要整体向右搬。
第 1 步:从 Gibbs 核出发
$K=e^{-C/\varepsilon}$:对角线上是 1,离对角线越远越小(右上角 $e^{-9}\approx 0.0001$)。初始 $u=v=\mathbb 1$,所以 $P=K$。行和、列和都远离目标(红色 ✗)。
第 2 步:行缩放 u ← a / (Kv)
每一行乘上一个数,使行和恰好等于 $a_i$:四行全部 ✓。但列和被带偏了——列误差 $\|P^\top\mathbb 1-b\|_1=0.748$。
第 3 步:列缩放 v ← b / (Kᵀu)
每一列乘一个数,四列全部 ✓;行和又被打乱,但误差变小了:$\|P\mathbb 1-a\|_1=0.638$。注意右下角的元素变大了——质量开始向右移动。
第 4 步:第二轮行缩放
行又全部 ✓,列误差降到 $0.524$。每一轮只修正一个边缘,却会少许破坏另一个——但破坏得越来越少。
第 5 步:第二轮列缩放
列 ✓,行误差 $0.424$。行误差从 0.638 降到 0.424,下一轮是 0.270:每轮大约乘以同一个比例(这里约 0.65)——这就是线性收敛。
第 6 步:10 轮之后
行误差只剩 $0.011$,矩阵几乎不再变化。$u$ 的第一项已经很大、$v$ 的最后一项也很大:它们在把 $K$ 的质量推向右上方。
第 7 步:收敛,并与精确 OT 对比
200 轮后两个边缘都满足。右侧是精确 OT 解(第 3 章的网络单纯形):只有 $n+m-1=7$ 个非零元,代价 $1.400$;熵正则解每个元素都为正,代价 $1.564$ 略高——这正是「模糊」的代价。
左图是当前耦合 $P^{(\ell)}=\operatorname{diag}(u^{(\ell)})K\operatorname{diag}(v^{(\ell)})$;左侧红色空心条是目标 $a$、实心条是当前行和,上方蓝色同理(列)。点「半步」交替做行缩放、列缩放,或点「播放」。右图是行误差 $\|P^{(\ell)}\mathbb 1-a\|_1$(对数坐标)随迭代次数的变化。
第一次行缩放后,红色实心条与空心条完全重合(行 ✓),蓝色的却不重合;下一步反过来。随着迭代进行,两边的误差都越来越小,热力图从对角带 $K$ 逐渐「弯」成最终的耦合。右图中误差曲线在对数坐标下接近直线——线性收敛;把 $\varepsilon$ 调小再重置,直线明显变平(变慢)。
历史与复杂度 History and Complexity
Rem. 4.5 这个迭代被独立发现过很多次,名字也很多:统计学里叫 迭代比例拟合(iterative proportional fitting procedure, IPFP),经济学里叫 RAS 方法,指派问题里叫 softassign。收敛性由 Sinkhorn(1964)证明,算法因此得名。2013 年 Cuturi 指出它能高效、可并行地近似 OT,并给出可微的损失函数,此后在机器学习、视觉、图形学中广泛使用。
Altschuler 等(2017)证明:取 $\varepsilon=\tau/(4\log n)$,做 $O(\|C\|_\infty^3\log n\,\tau^{-3})$ 次 Sinkhorn 迭代,再加一步「取整」(rounding)得到严格可行的 $\hat P\in U(a,b)$,就能保证 $\langle\hat P,C\rangle\le\mathrm L_C(a,b)+\tau$。每次迭代 $O(n^2)$,所以总计算量 $O(n^2\log n\,\tau^{-3})$——对输入规模 $n^2$ 几乎是线性的。(原书印作 ε = 4log(n)/τ,那是 Altschuler 等人记号里 $1/\varepsilon$ 的值。)
取整步骤在做什么
迭代停下时,$P=\operatorname{diag}(u)K\operatorname{diag}(v)$ 的边缘只是近似满足。取整分三步:① 把行和超过 $a_i$ 的行按比例缩小;② 再把列和超过 $b_j$ 的列按比例缩小——现在每行、每列都「不超标」;③ 缺的质量 $\Delta_a=a-\hat P\mathbb 1$、$\Delta_b=b-\hat P^\top\mathbb 1$ 用一个秩 1 矩阵 $\Delta_a\Delta_b^\top/\|\Delta_a\|_1$ 补上。结果严格属于 $U(a,b)$,而且与原 $P$ 的距离受边缘误差 $\|a-P\mathbb 1\|_1+\|b-P^\top\mathbb 1\|_1$ 控制。Dvurechensky 等(2018)后来改进了上面的界。
理论上 $\varepsilon\to0$ 时收敛会变慢(Rem. 4.14、4.15)。但实践中你往往先遇到另一个问题:$K$ 的某些元素小到双精度浮点数存不下,变成 0;于是 $Kv$ 或 $K^\top u$ 出现越来越小直至为 0 的元素,(4.15) 中出现除以 0。解决办法是在对数域里计算 $u,v$(§4.4、Rem. 4.23)。
Sinkhorn 的另外几种视角 Other Viewpoints (Remarks 4.8–4.11)
交替 KL 投影 Rem. 4.8。记 $\mathcal C^1_a=\{P:P\mathbb 1_m=a\}$(行约束)、$\mathcal C^2_b=\{P:P^\top\mathbb 1_n=b\}$(列约束),则 $U(a,b)=\mathcal C^1_a\cap\mathcal C^2_b$。交替做 KL 意义下的投影
$P^{(\ell+1)}=\operatorname{Proj}^{\mathrm{KL}}_{\mathcal C^1_a}(P^{(\ell)}),\quad P^{(\ell+2)}=\operatorname{Proj}^{\mathrm{KL}}_{\mathcal C^2_b}(P^{(\ell+1)})$ (4.16)
就是 Bregman(1967)的迭代投影法;因为两个集合都是仿射的,它收敛到 (4.7) 的解。它与 Sinkhorn 完全等价:$P^{(2\ell)}=\operatorname{diag}(u^{(\ell)})K\operatorname{diag}(v^{(\ell)})$,$P^{(2\ell+1)}=\operatorname{diag}(u^{(\ell+1)})K\operatorname{diag}(v^{(\ell)})$——向 $\mathcal C^1_a$ 做 KL 投影恰好就是「每行乘一个数」。实践中仍用 (4.15),因为它只存两个向量。
近端点算法 Rem. 4.9。如果想要的是 $\varepsilon=0$ 的精确解,可以反复求解 $P^{(\ell+1)}=\operatorname*{argmin}_{P\in U(a,b)}\mathrm{KL}(P|P^{(\ell)})+\tfrac1\varepsilon\langle P,C\rangle$ (4.17)。每一步都是一个 Sinkhorn 问题,只是核换成 $e^{-C/\varepsilon}\odot P^{(\ell)}$;展开后相当于用核 $e^{-C/(\varepsilon/\ell)}$——也就是让正则化参数按 $\varepsilon/\ell$ 逐渐减小。这与「$\varepsilon$ 退火」(从大 $\varepsilon$ 开始、逐步减小,用上一次的解热启动)的思路一脉相承(Kosowsky–Yuille 1994);在低维空间里配合多尺度稀疏网格(Schmitzer 2016)非常高效。
其他正则项 Rem. 4.10。把 $-H(P)$ 换成任何严格凸的 $R(P)$ 也可以,例如二次正则 $R(P)=\sum_{ij}P_{ij}^2$ (4.18),或 Tsallis 熵。区别在于:熵里的 $\log$ 自动把 $P$ 挡在正象限内,不需要再加 $P\ge0$;二次正则却必须显式加上非负约束,约束集不再是仿射的,交替 Bregman 投影不再收敛,要改用 Dykstra 算法(Benamou 等 2015)。
| 熵正则 $R=-H$ | 二次正则 $R=\|\cdot\|^2+\iota_{\mathbb R_+}$ | |
|---|---|---|
| 解的样子 | 处处为正(稠密、模糊) | 稀疏(原书 Fig. 4.6 下排) |
| 需要非负约束吗 | 不需要(log 自动保证) | 需要 |
| 算法 | Sinkhorn:只有矩阵–向量乘法 | Dykstra 算法 + 单纯形上的投影(Condat 2015) |
| 速度与并行 | 快,易于 GPU 批量 | 较慢,难以同时算多个 OT |
重心投影 Rem. 4.11。耦合 $P$ 不是映射;若想要一个「把 $x_i$ 送到哪里」的映射,可以取它所连目标的加权平均(重心投影(barycentric projection)):
它只在 $\alpha$ 的支撑点上有定义。若 $P$ 是置换矩阵,$T$ 就是 Monge 映射;$\varepsilon\to0$ 时(若 Monge 映射唯一)它收敛到 Monge 映射,$\varepsilon\gt0$ 时给出它的光滑近似。一般测度的版本见 (4.20)。应用包括图像的颜色迁移(原书 Fig. 9.6)。在上面 §4.1 的点云演示里勾选「重心投影」就能看到它。
为什么收敛:Hilbert 射影度量 Convergence via the Hilbert Projective Metric
收敛性证明的关键观察:$u$ 与 $\lambda u$ 给出同一个耦合,所以不该比较向量本身,而该比较它们的方向(从原点出发的射线)。Hilbert 射影度量正是这样一种「射线之间的距离」。
对正向量 $u,u'$:$d_{\mathcal H}(u,u')=\log\max_{i,j}\dfrac{u_iu'_j}{u_ju'_i}$。取对数后,它等于
它满足三角不等式,且 $d_{\mathcal H}(u,u')=0$ 当且仅当 $u=ru'$($r\gt0$):它是射线(正锥的射影空间)上的完备距离。变差半范数与 $\ell^\infty$ 范数相近:$\|f\|_{\mathrm{var}}\le2\|f\|_\infty$;若固定某个 $f_i=0$,还有 $\|f\|_\infty\le\|f\|_{\mathrm{var}}$。对偶变量 $f=\varepsilon\log u$ 本来就只确定到一个常数,所以这个度量用起来恰到好处。
设 $K$ 的元素全为正,则对任意正向量 $v,v'$:
几何上:$K$ 把整个正锥压进一个更窄的锥(下图),任意两条射线之间的夹角都被按比例缩小。
Rem. 4.13 典型应用是 Perron–Frobenius 定理的定量证明:若 $K\gt0$ 且 $K^\top\mathbb 1=\mathbb 1$(列随机矩阵),它把概率单纯形 $\Sigma_n$ 映入自身且是严格压缩,因此存在唯一的不变分布 $p^\star=Kp^\star$,并且 $d_{\mathcal H}(K^\ell p_0,p^\star)\le\lambda(K)^\ell d_{\mathcal H}(p_0,p^\star)$——线性收敛(原书 Fig. 4.8)。
$(u^{(\ell)},v^{(\ell)})\to(u^\star,v^\star)$,并且
还有可以直接计算的「后验」界 $d_{\mathcal H}(u^{(\ell)},u^\star)\le\dfrac{d_{\mathcal H}(P^{(\ell)}\mathbb 1_m,a)}{1-\lambda(K)^2}$ (4.23),以及 $\|\log P^{(\ell)}-\log P^\star\|_\infty\le d_{\mathcal H}(u^{(\ell)},u^\star)+d_{\mathcal H}(v^{(\ell)},v^\star)$ (4.24)。
证明思路
核心想法:一次缩放 = 乘以 $K$ 再取倒数;取倒数不改变 $d_{\mathcal H}$,乘以 $K$ 至少压缩 $\lambda(K)$ 倍。
对正向量有 $d_{\mathcal H}(v,v')=d_{\mathcal H}(v/v',\mathbb 1)=d_{\mathcal H}(\mathbb 1/v,\mathbb 1/v')$(逐元素除以 $a$ 也不改变距离)。于是 $d_{\mathcal H}(u^{(\ell+1)},u^\star)=d_{\mathcal H}\big(\tfrac{a}{Kv^{(\ell)}},\tfrac{a}{Kv^\star}\big)=d_{\mathcal H}(Kv^{(\ell)},Kv^\star)\le\lambda(K)\,d_{\mathcal H}(v^{(\ell)},v^\star)$。 行、列各压缩一次,一整轮压缩 $\lambda(K)^2$,得 (4.22)。再用三角不等式 $d_{\mathcal H}(u^{(\ell)},u^\star)\le d_{\mathcal H}(u^{(\ell+1)},u^{(\ell)})+\lambda^2 d_{\mathcal H}(u^{(\ell)},u^\star)$,并注意 $u^{(\ell)}\odot(Kv^{(\ell)})=P^{(\ell)}\mathbb 1_m$,即得 (4.23)。
实用含义:(4.23) 说明边缘误差 $\|P^{(\ell)}\mathbb 1_m-a\|_1$、$\|P^{(\ell)\top}\mathbb 1_n-b\|_1$ 是可靠的停止准则;由 (4.21),对偶变量 $f^{(\ell)}=\varepsilon\log u^{(\ell)}$ 在 $\|\cdot\|_{\mathrm{var}}$ 下也线性收敛。(Linial 等 1998 还证明了每次迭代都会增大缩放后矩阵的积和式 permanent。)
全局速度 $\lambda(K)^2$ 往往极其悲观:$\eta(K)$ 形如 $e^{M/\varepsilon}$($M$ 由代价决定),所以 $1-\lambda(K)\approx 2e^{-M/(2\varepsilon)}$,随 $1/\varepsilon$ 指数变小(原书记作 $1-\lambda(K)\sim e^{-1/\varepsilon}$)。当 $C$ 接近随机矩阵时这个速度基本是准的;但在「简单」情形(例如 $\varepsilon=0$ 时存在光滑的 Monge 映射)实际要快得多。更精细的是局部分析:把一轮 Sinkhorn 写成对偶变量的不动点迭代 $f^{(\ell+1)}=\Phi(f^{(\ell)})$,在最优点处的 Jacobian 为
它是正矩阵且每行和为 1,最大特征值是 1(特征向量 $\mathbb 1$,对应「整体加常数」的自由度,无关紧要);真正决定速度的是第二大特征值 $1-\kappa$:$\|f^{(\ell)}-f\|=O((1-\kappa)^\ell)$。在简单情形数值上 $\kappa\sim\varepsilon$。
对四个 $\varepsilon$ 各跑一次 Sinkhorn,纵轴是行误差 $\log_{10}\|P^{(\ell)}\mathbb 1-a\|_1$,横轴是迭代次数。切换问题类型:「光滑」= 一维网格上的平方代价(存在 Monge 映射);「随机」= 元素为 $[0,1]$ 均匀随机数的代价矩阵。勾选后显示 Thm. 4.2 的理论保证(虚线)。$\omega$ 是过松弛参数(Rem. 4.20,§4.3),$\omega=1$ 就是普通 Sinkhorn。
每条曲线在对数坐标下都近似直线:线性收敛。$\varepsilon$ 每缩小约 3 倍,直线就明显变平。表中「理论」一列的 $1-\lambda(K)^2$ 小到可以忽略(虚线几乎是水平的),而实测的每步收缩要快得多——这就是 Rem. 4.15 说的「全局界很悲观」。切到「随机」代价:同样的 $\varepsilon$ 慢得多,小 $\varepsilon$ 在 600 步内几乎不动。把 $\omega$ 调到 1.5~1.6:本来收敛慢的小 $\varepsilon$ 曲线,迭代次数减少到约 1/3~1/5;而本来就快的大 $\varepsilon$ 曲线反而会变慢——最合适的 $\omega$ 取决于收敛速度本身。$\omega$ 再大(小 $\varepsilon$ 时 1.7 左右起)就会振荡甚至发散,所以实用的外推算法都要配合安全措施。
Sinkhorn 刚做完一次列缩放 v ← b / (Kᵀu) 时,下列哪个说法正确?
为什么缩放因子 (u, v) 与 (2u, v/2) 被认为是「一样好」的?
4.3 加速 Sinkhorn 迭代 Speeding Up Sinkhorn's Iterations
这一节要解决的问题:Sinkhorn 每一步的瓶颈是乘以 $K$ 和 $K^\top$,朴素实现要 $O(nm)$ 次运算。能不能更快?原书给了四个方向:同时算很多对(把矩阵–向量乘法变成矩阵–矩阵乘法)、利用网格结构(乘以 $K$ = 卷积)、在曲面上用热方程近似、以及外推加速收敛。
批量并行与 GPU Parallel and GPU-Friendly Computation
Rem. 4.16 若要同时计算 $N$ 对直方图 $(a_1,b_1),\dots,(a_N,b_N)$ 的正则化距离,把它们排成矩阵 $A=[a_1,\dots,a_N]$($n\times N$)、$B=[b_1,\dots,b_N]$($m\times N$),$N$ 个 Sinkhorn 可以齐步走:
除法仍是逐元素的。一次矩阵–矩阵乘法 $KV$ 就完成了 $N$ 次矩阵–向量乘法——这正是 GPU 最擅长的运算(BLAS-3)。收敛后 $N$ 个正则化代价也能用几次矩阵运算一并算出。这是 Sinkhorn 能在大规模直方图比较中流行的根本原因。
可分离核:网格上的卷积 Separable Kernels on Grids
Rem. 4.17 这是最重要的加速。设每个下标都是 $d$ 维网格上的一个多重下标 $i=(i_1,\dots,i_d)$,并且代价沿各坐标可加:$C_{ij}=\sum_k C^k_{i_kj_k}$。那么 Gibbs 核就可分离为乘积:
于是计算 $Ku$ 时根本不必构造 $n\times n$ 的大矩阵($n=\prod_k n_k$ 随维数指数增长),只要沿每个坐标轴依次作用一维的 $K^k$。当 $n=m$ 时,复杂度从 $O(n^2)$ 降到 $O(n^{1+1/d})$。
最典型的例子:$[0,1]^d$ 上的规则网格,代价 $\|x-y\|_q^q=\sum_k|x_k-y_k|^q$,一维核 $K^k_{rs}=\exp(-|\tfrac{r-s}{n_k}|^q/\varepsilon)$ 就是一个卷积。$d=2$、$q=2$ 时它是高斯模糊:把 $u$ 排成 $n_1\times n_2$ 的图像 $U$,则 $Ku$ 对应 $K^1UK^2$——先对每一列、再对每一行做一维高斯模糊,只需 $n_1^2n_2+n_1n_2^2$ 次运算,而不是 $n_1^2n_2^2$。正是这一点让 Sinkhorn 能处理 $200^3=8\times10^6$ 个格点的三维形状(Solomon 等 2015;Bonneel 等 2016)。
二维 N×N 网格上的直方图,代价为平方欧氏距离。上排拆解「乘以 K」:源图像 $a$ 先逐行做一维高斯模糊,再逐列做一次——结果与乘以 $N^2\times N^2$ 的大矩阵 $K$ 完全相同。下排左:用这种卷积跑 Sinkhorn,红色是源 $a$、蓝色是目标 $b$,青色箭头是重心投影 $T(x_i)$;点击源图像中任一点,下排右显示耦合 $P$ 的对应一行:这一点的质量被送往哪里。拖动 $\varepsilon$ 改变模糊半径;「对比用时」实测稠密矩阵乘法与可分离卷积。
上排三幅图说明:「乘以 $K$」= 用宽度约 $\sqrt{\varepsilon/2}$ 的高斯核模糊图像,而二维高斯模糊可以拆成两次一维模糊。32×32 网格已有 1024 个点,稠密的 $K$ 有一百万个元素;可分离卷积每次只需 $2N^3$ 次乘法,快十几倍,网格越大优势越大(64×64 时稠密矩阵要 134 MB,这里干脆不构造)。$\varepsilon$ 变大时,箭头变短、所有箭头都被拉向目标的中心——重心投影被「平均」掉了;右下图中一个点的质量被撒得更开。
近似卷积与热核 Approximated Convolutions and the Heat Kernel
Rem. 4.18 更一般地,只要核是平移不变的($K_{ij}=k_{i-j}$,均匀网格上总是如此),$Kv=k\star v$ 就是卷积,可以用近线性时间的算法近似:快速傅里叶变换(假设周期边界;但 $\varepsilon$ 小时数值不稳定,常常不可接受),或用一串递归滤波器近似高斯卷积(Deriche 1993;比较见 Getreuer 2013)。
Rem. 4.19 在曲面(流形)上,测地距离的核 $e^{-d_{\mathcal M}^p/\varepsilon}$ 不是卷积,但 Varadhan 公式说它与热扩散密切相关:
- $p=2$:$\sqrt{-4t\log\mathcal H_t(x,y)}=d_{\mathcal M}(x,y)+o(t)$ (4.29),$\mathcal H_t$ 是热方程 $\partial_tg=\Delta_{\mathcal M}g$ 的热核。所以乘以 $K$ ≈ 让热量扩散 $t=\varepsilon/4$ 的时间:用离散 Laplace 矩阵 $L$(如余切 Laplacian),做 $R$ 步隐式 Euler,即乘以 $(\mathrm{Id}-\tfrac tRL)^{-R}$。
- $p=1$:$-\tfrac{\sqrt t}{2}\log\mathcal P_t(x,y)=d_{\mathcal M}(x,y)+o(t)$,$\mathcal P_t=(\mathrm{Id}-t\Delta_{\mathcal M})^{-1}$ (4.28):取 $\varepsilon=\sqrt t/2$,乘以 $K$ 换成解一个线性方程组 $(\mathrm{Id}-tL)w=v$。
这些线性系统每次迭代都要解,但矩阵不变,可以预先做一次稀疏 Cholesky 分解;二维曲面上每次 Sinkhorn 迭代因此只需近线性的代价(Crane 等 2013 的「热方法求测地线」;Solomon 等 2015 首先与 Sinkhorn 结合)。
外推加速 Extrapolation Acceleration
Rem. 4.20 Sinkhorn 是一个不动点迭代(Rem. 4.15),所以可以套用经典的线性或非线性外推。最简单的是过松弛(over-relaxation),类似逐次超松弛法(SOR):在对数域里把每次更新写成 $f\leftarrow(1-\omega)f+\omega\,\hat f$($\hat f$ 是普通 Sinkhorn 的新值,$1\lt\omega\lt2$)。它把局部线性速度从 $O((1-\kappa)^\ell)$ 提升到 $O((1-\sqrt\kappa)^\ell)$——$\kappa$ 越小($\varepsilon$ 越小)收益越大。回到上面 §4.2 的收敛速度演示,把 $\omega$ 调到 1.6 就能亲眼看到:$\varepsilon=0.003$ 时每轮收缩因子从约 0.95 变成约 0.80,接近 $1-\sqrt\kappa$(这里 $\kappa\approx0.045$,$\sqrt\kappa\approx0.21$),迭代次数少了约 4/5。但 $\omega$ 不能太大,否则会振荡发散;本来就收敛很快($\kappa$ 大)时,外推也没有好处。
在 d 维规则网格上(共 n 个格点)使用平方欧氏代价,利用可分离核乘一次 K 大约需要多少运算?
4.4 稳定性与对数域计算 Stability and Log-Domain Computations
这一节要解决的问题:当 $\varepsilon$ 相对于代价 $C$ 很小时,朴素的 Sinkhorn 会数值溢出或下溢(Rem. 4.7)。办法是改存缩放因子的对数 $f=\varepsilon\log u$、$g=\varepsilon\log v$。它们恰好就是熵正则问题对偶的变量:从对偶的角度看,Sinkhorn 是块坐标上升,每一步是一个 soft-min,可以用经典的 log-sum-exp 技巧稳定地算出来。
熵正则化的对偶问题 The Entropic Dual
最优的 $(f,g)$ 与 (4.12) 中的缩放因子满足 $(u,v)=(e^{f/\varepsilon},e^{g/\varepsilon})$ (4.31)。注意最后一项就是 $\varepsilon\sum_{ij}e^{(f_i+g_j-C_{ij})/\varepsilon}$。
证明思路
核心想法:把 Prop. 4.3 证明中得到的 $P_{ij}=e^{(f_i+g_j-C_{ij})/\varepsilon}$ 代回拉格朗日函数。
代回后对偶函数为 $\langle e^{f/\varepsilon},(K\odot C)e^{g/\varepsilon}\rangle-\varepsilon H(P)$ (4.32)。又因为 $\varepsilon\log P_{ij}=f_i+g_j-C_{ij}$,负熵 $\varepsilon\langle P,\log P-1\rangle$ 可以显式写成 $-\langle e^{f/\varepsilon},(K\odot C)e^{g/\varepsilon}\rangle+\langle f,a\rangle+\langle g,b\rangle-\varepsilon\langle e^{f/\varepsilon},Ke^{g/\varepsilon}\rangle$,第一项与 (4.32) 的第一项相消,剩下的正是 (4.30)。
Sinkhorn = 对偶上的块坐标上升 Sinkhorn as Block Coordinate Ascent
Rem. 4.21 记 (4.30) 的目标为 $Q(f,g)$。它对 $f$、$g$ 的梯度是
梯度 = 目标边缘 − 当前边缘。固定 $g$、令 $\nabla_fQ=0$,可以精确解出最优的 $f$;再固定 $f$ 解 $g$:
这正是 (4.15) 取对数:$(f^{(\ell)},g^{(\ell)})=\varepsilon(\log u^{(\ell)},\log v^{(\ell)})$。所以每半步 Sinkhorn 都在一组变量上把对偶目标精确最大化,对偶值单调上升。
soft-min 视角 Soft-Min Rewriting
$\varepsilon\to0$ 时 $\min_\varepsilon z\to\min z$;它是 min 的一个可微近似(原书 Fig. 4.9)。精确地,$\min z-\varepsilon\log n\le\min_\varepsilon z\le\min z$(习题 4.5)。
Rem. 4.22 用 soft-min 改写 (4.35)–(4.36):
对比第 3 章的 c-变换 $f_i=\min_j(C_{ij}-g_j)$:Sinkhorn 就是在交替做「软 c-变换」(也叫熵 c-变换,见 §5.3 的 (5.11)),再加上一个 $\varepsilon\log a_i$ 的修正。原书把对矩阵每行、每列取 soft-min 的操作记为 $\mathrm{Min}^{\mathrm{row}}_\varepsilon$、$\mathrm{Min}^{\mathrm{col}}_\varepsilon$,于是 $f^{(\ell+1)}=\mathrm{Min}^{\mathrm{row}}_\varepsilon(C-\mathbb 1_ng^{(\ell)\top})+\varepsilon\log a$ (4.40–4.41)。
左图柱子是向量 $z$ 的 6 个分量,上下拖动柱顶改变它们;实线是 $\min z$,虚线是 $\min_\varepsilon z$,柱子下方的紫色小条是权重 $e^{-z_i/\varepsilon}/\sum_k e^{-z_k/\varepsilon}$(soft-min 对各分量的「关注度」)。右图是 $\min_\varepsilon z$ 随 $\varepsilon$ 的变化与两条界。「整体平移 s」给所有分量加同一个常数:看朴素公式何时算崩、稳定公式 (4.42) 为何不受影响。
$\varepsilon$ 大时 soft-min 明显低于 min,而且权重分散在所有分量上;$\varepsilon$ 小时权重几乎全压在最小的分量上,soft-min 贴近 min——所以它是 min 的光滑版本。把平移 $s$ 调大(比如 100 以上)并把 $\varepsilon$ 调小:$e^{-z_i/\varepsilon}$ 全部下溢为 0,朴素公式得到 $-\varepsilon\log 0=+\infty$;稳定公式先减去最小值,指数里的数都 $\le0$ 且最大的恰为 0,求和至少是 1,永远不会出问题。
对数域 Sinkhorn Log-Domain Sinkhorn
先用 log-sum-exp 技巧稳定地计算 soft-min:记 $\underline z=\min z$,
更进一步,不必每次减 $\min z$,可以减去上一步的势:记 $S(f,g)=(C_{ij}-f_i-g_j)_{ij}$,
与 (4.15) 数学上等价,但 $S(f,g)$ 在迭代中始终有界,所以对任意 $\varepsilon\gt0$ 都数值稳定。代价是每步要算 $nm$ 次 $\exp$,比矩阵乘法慢得多,而且很难像 (4.26) 那样把多个问题打包并行。在低维欧氏空间,可以配合「$\varepsilon$ 逐步减小 + 多尺度稀疏网格」大幅提速(Schmitzer 2016)。
同一个一维问题(40 个格点,代价 $|x-y|^2\le1$),分别用朴素迭代 (4.15)(直接存 $u,v,K$)和对数域迭代(存 $f=\varepsilon\log u$、$g=\varepsilon\log v$)各跑 300 轮。左上:朴素迭代里的 $\log_{10}u_i$(红)与 $\log_{10}v_j$(蓝),虚线是对数域算出的「真实」值 $f_i/(\varepsilon\ln10)$;灰色带是双精度浮点数表示不了的范围(绝对值超过约 $10^{308}$ 或小于约 $10^{-308}$)。右上:$K$ 中下溢成 0 的元素(红格)。左下:两种实现的边缘误差。把 $\varepsilon$ 往小拖。
$u,v$ 的数量级范围大约与 $1/\varepsilon$ 成正比:$\varepsilon=10^{-2}$ 时还在 $10^{\pm 30}$ 以内,$\varepsilon=10^{-3}$ 时已达 $10^{\pm 130}$,$\varepsilon\approx3\times10^{-4}$ 时撞上 $10^{\pm308}$ 的墙,出现 $+\infty$、$0/0$(非数),朴素迭代崩溃。与此同时 $K$ 里越来越多的元素下溢为 0($\varepsilon\lt1/745$ 时开始出现)。而对数域里的 $f,g$ 始终是普通大小的数($|f|$ 不超过代价的量级),算法照常运行——只是 $\varepsilon$ 很小时收敛本身变慢(300 轮后误差仍较大,§4.2)。
进阶:一般测度的对偶(Rem. 4.24–4.25)
Rem. 4.24 对一般测度,对偶 (4.30) 变成 $\sup_{f,g}\int f\,\mathrm d\alpha+\int g\,\mathrm d\beta-\varepsilon\int e^{(-c(x,y)+f(x)+g(y))/\varepsilon}\mathrm d\alpha(x)\mathrm d\beta(y)$ (4.45),它是对原问题约束集 $\mathcal R(c)$ (2.24) 的光滑化,$\varepsilon\to0$ 时还原。证明最优势函数存在(sup 能取到)比经典 OT 难:没有 c-变换可用,势函数也不自动 Lipschitz;可以借助 Sinkhorn 迭代的收敛来证明(Chizat 等 2018)。
Rem. 4.25 当 $\alpha,\beta$ 都是概率测度时,还有另一种无约束对偶:$\sup_{f,g}\int f\,\mathrm d\alpha+\int g\,\mathrm d\beta+\min_\varepsilon(c-f\oplus g)$ (4.46),其中 soft-min 在 $\mathcal X\times\mathcal Y$ 上关于 $\alpha\otimes\beta$ 取。它与 (4.45) 最优值相同,但条件数更好(目标的 Hessian 一致有界);缺点是其中的 $\log$ 使它无法直接用于 §5.4 的随机优化(Rem. 5.3)。另一种改善条件数的办法是半对偶(§5.3、Rem. 5.1)。
ε 很小时,朴素 Sinkhorn(直接存 u、v、K)通常最先出现的问题是什么?
4.5 最优传输代价的正则化近似 Regularized Approximations of the Optimal Transport Cost
这一节要解决的问题:我们真正关心的往往是精确的 OT 代价 $\mathrm L_C(a,b)$(比如 Wasserstein 距离),而 Sinkhorn 给出的是一堆近似量。它们各自是上界还是下界?差多少?停在有限步时还靠得住吗?另外,熵正则代价本身光滑、凸、梯度现成,是很好的损失函数。
对偶解给出下界 Dual Potentials Are Feasible
(4.30) 的任意最优解 $(f^\star,g^\star)$ 都满足 $f^\star_i+g^\star_j\le C_{ij}$,即属于 Kantorovich 可行势集合 $\mathbf R(C)$ (2.21)。因此对任意 $\varepsilon$,$\langle f^\star,a\rangle+\langle g^\star,b\rangle\le\mathrm L_C(a,b)$。
证明思路
最优耦合 $P^\star_{ij}=e^{(f^\star_i+g^\star_j-C_{ij})/\varepsilon}$ 是概率耦合,所以每个元素 $\le1$,即 $f^\star_i+g^\star_j-C_{ij}\le0$。可行的对偶势给出原问题的下界(弱对偶)。(原书证明里指数的符号印反了。)
$\mathrm L^\varepsilon_C(a,b)$ 关于 $(a,b)$ 是联合凸函数($\varepsilon\ge0$)。当 $\varepsilon\gt0$ 时它可微,梯度就是最优对偶变量:$\nabla\mathrm L^\varepsilon_C(a,b)=(f^\star,g^\star)$(取各分量之和为 0 的那一组)。
这是熵正则化在机器学习中大受欢迎的原因之一:跑完 Sinkhorn,梯度就免费得到了——$f^\star$ 告诉你「把一点质量从 $a$ 的哪个位置挪走,代价下降得最多」。第 9 章会把它当作损失函数来拟合模型。
Sinkhorn 散度:夹住真实的 OT 代价 Sinkhorn Divergences
设 $P^\star$ 是 (4.2) 的解,$(f^\star,g^\star)$ 是 (4.30) 的解。
也就是:拿 Sinkhorn 的耦合去算真实运费(原始),或拿 Sinkhorn 的势去算对偶目标(对偶)。
Cuturi(2013)提出用这两个量从两侧逼近 Wasserstein 距离:
下界来自 Prop. 4.5(对偶可行),上界来自 $P^\star\in U(a,b)$(原始可行);间隙恰好是 $\varepsilon$ 乘以 $P^\star$ 的香农熵,而香农熵不超过 $\log(nm)$,所以两者之差不超过 $\varepsilon\log(nm)$。
证明思路
$\mathfrak P-\mathfrak D=\sum_{ij}P^\star_{ij}C_{ij}-\sum_if^\star_ia_i-\sum_jg^\star_jb_j=\sum_{ij}P^\star_{ij}(C_{ij}-f^\star_i-g^\star_j)$(用了 $P^\star$ 的边缘是 $a,b$)。而 $\varepsilon\log P^\star_{ij}=f^\star_i+g^\star_j-C_{ij}$,所以括号里等于 $-\varepsilon\log P^\star_{ij}$。原书的写法是:原始与对偶最优值相等,$\mathrm L^\varepsilon_C=\mathfrak P-\varepsilon H(P^\star)=\mathfrak D-\varepsilon\langle e^{f^\star/\varepsilon},Ke^{g^\star/\varepsilon}\rangle$,最后一个内积就是 $P^\star$ 的元素总和 $=1$。
有限步停止时 Finite Sinkhorn Divergences
上面的关系只在 Sinkhorn 收敛后才成立,而实践中总是跑有限的 $L$ 步就停。好消息是对偶那一侧在任何时候都靠得住:
只要 $L\ge1$,$\mathfrak D^{(L)}_C(a,b)$ 就是一个下界:$\mathfrak D^{(L)}_C(a,b)\le\mathrm L_C(a,b)$(更精确地,$\le\mathfrak D^\varepsilon_C(a,b)$)。(原书把右边写作 $\mathrm L^\varepsilon_C$,理由同上面的注。)
证明思路
每次列缩放 (4.36) 之后,矩阵 $e^{(f_i+g_j-C_{ij})/\varepsilon}$ 的列和恰好是 $b_j\le1$,所以每个元素 $\le1$,即 $f^{(L)}_i+g^{(L)}_j\le C_{ij}$:$(f^{(L)},g^{(L)})$ 是对偶可行的,弱对偶给出下界。又因为此时 $\sum_{ij}P_{ij}=1$,$\mathfrak D^{(L)}-\varepsilon$ 恰是 (4.30) 的目标值,而它不超过最大值 $\mathfrak D^\varepsilon-\varepsilon$。
- 原始迭代不可行 Rem. 4.26:中途的 $P^{(\ell)}$ 边缘不对,$\langle C,P^{(\ell)}\rangle$ 不是上界——前几步它甚至远小于真值(每个源的质量只在附近打转,还没被「推」到目标去)。要得到可靠的上界,先用 Rem. 4.6 的取整把它变成可行耦合,这一步同样可以批量并行(Lacombe 等 2018)。
- 非凸但可微 Rem. 4.27:$\mathfrak D^{(L)}_C(a,b)$ 一般不是 $(a,b)$ 的凸函数(数值上很容易验证),但它是可微的,可以对 $C$、$a$、$b$ 做自动微分(§9.1.3)。
源 $a$ 是一个高斯形的直方图,目标 $b_t$ 是它向右平移 $t$ 的结果(一维、平方代价,所以精确值约为 $t^2$)。横轴是平移量 $t$,各条曲线是不同的量。拖动图中的竖线选择 $t$,下方读出数值。勾选「有限 L 步」可以看 Prop. 4.8 与 Rem. 4.26;「去偏」是第 8 章 §8.5 会讲的修正(这里先预告)。
红线(原始 $\mathfrak P^\varepsilon$)永远在黑线(精确值)之上,蓝线(对偶 $\mathfrak D^\varepsilon$)永远在其下,间隙 = $\varepsilon\times$香农熵,随 $\varepsilon$ 减小而收窄。注意 $t=0$ 时 $a=b$,精确代价是 0,而 $\mathfrak P^\varepsilon(a,a)\gt0$:熵正则化带有偏差;去偏后的曲线在 $t=0$ 处回到 0,并且紧贴精确值。打开「有限 L 步」:蓝色虚线 $\mathfrak D^{(L)}$ 始终在下方(下界不失效);紫色点线 $\langle C,P^{(L)}\rangle$ 在 $L$ 很小(比如 1)时明显低于真值——它不是上界;$L$ 增大后它才逐渐爬回红线。再把 $\varepsilon$ 调大:对偶下界变得非常松,而原始上界离真值并不远。
Sinkhorn 只跑了 L = 3 步就停下。下列哪个量仍然是精确 OT 代价 L_C(a,b) 的可靠下界?
4.6 广义 Sinkhorn Generalized Sinkhorn
这一节要解决的问题:OT 的许多变体——边缘质量可以不守恒的非平衡 OT、Wasserstein 重心、梯度流——都有同样的结构:熵项,加上「只依赖于两个边缘的函数」。能否用同一个 Sinkhorn 框架求解?可以:只需把两步缩放里的「$a/(Kv)$」换成一个邻近算子。
取 $F=\iota_{\{a\}}$、$G=\iota_{\{b\}}$(指示函数:在集合内为 0,否则为 $+\infty$ (4.50))就回到硬约束的 (4.2)。Prop. 4.3 的证明照搬过来:(4.49) 的解仍形如 $P=\operatorname{diag}(u)K\operatorname{diag}(v)$。
读法:$Kv$ 是「如果不缩放行,行和会是多少」;邻近算子把它拉向 $F$ 想要的边缘(在 KL 意义下折中);$u$ 就是需要乘上的比例。$F=\iota_{\{a\}}$ 时 $\operatorname{Prox}=a$,正好回到 $u=a/(Kv)$。
这套迭代的价值在于 $\operatorname{Prox}^{\mathrm{KL}}_F$ 常常有闭式或很容易算。特别地,若 $F(s)=\sum_iF_i(s_i)$ 可分离,邻近算子就是逐个坐标的标量优化问题。对某些 $F,G$ 可以证明线性收敛,也能推广到一般测度,并同样可以在对数域中稳定地实现(Chizat 等 2018)。
把硬约束换成软惩罚 $F=\lambda\,\mathrm{KL}(\cdot\,|\,a)$、$G=\lambda\,\mathrm{KL}(\cdot\,|\,b)$:边缘可以偏离目标,但要付「违约金」。这时质量不必守恒,$a$ 与 $b$ 的总质量也可以不同。邻近算子有闭式,迭代变成
只是给普通 Sinkhorn 的更新加了一个小于 1 的指数!$\lambda\to\infty$ 时指数 $\to1$,回到平衡 OT;$\lambda\to0$ 时指数 $\to0$,$u,v\to1$,边缘完全不受约束。
推导
按 (4.49) 的尺度把目标除以 $\varepsilon$,要算的是 $\operatorname*{argmin}_{s'}\mathrm{KL}(s'|s)+\tfrac\lambda\varepsilon\mathrm{KL}(s'|a)$。逐坐标求导:$\log\tfrac{s'_i}{s_i}+\tfrac\lambda\varepsilon\log\tfrac{s'_i}{a_i}=0$,得 $s'_i=s_i^{\varepsilon/(\varepsilon+\lambda)}a_i^{\lambda/(\varepsilon+\lambda)}$。于是 $u_i=s'_i/s_i=(a_i/s_i)^{\lambda/(\lambda+\varepsilon)}$,其中 $s=Kv$。
源 $a$(左侧红色空心条)有两团:一团在左边,一团远在右下;目标 $b$(上方蓝色空心条)只有中间一团,总质量可调。实心条是解的实际边缘 $P\mathbb 1$、$P^\top\mathbb 1$。拖动 $\lambda$(违约的代价)与 $b$ 的总质量。
$\lambda$ 大时解接近平衡 OT:右下那团质量几乎全部被长途运到中间(热力图下方、第二团对应的那几行出现一块),运输代价高。$\lambda$ 小时,把它运过去不如「违约」划算:它大部分被销毁(左侧红色实心条在下方几乎消失),中间的目标也收不满(蓝色实心条低于空心条),总质量小于 1。把 $b$ 的质量调得与 $a$ 不同:平衡 OT 此时根本无解,而非平衡 OT 照样给出方案,总质量落在两者之间。($\lambda$ 再小到与 $\varepsilon$ 相当时,熵项本身会开始「凭空」增加质量,所以滑块下限取在 $\lambda\approx0.02$。)
(4.49) 的对偶问题是
$F^*$ 是 Fenchel–Legendre 共轭,$(u,v)=(e^{f/\varepsilon},e^{g/\varepsilon})$ 仍是 (4.12) 中的缩放。取 $F=\iota_{\{a\}}$ 时 $-F^*(-f)=\langle f,a\rangle$,正好回到 (4.30)。(原书把前两项写作 $-F^*(f)-G^*(g)$,只是符号约定不同。)广义 Sinkhorn (4.51) 是 Dykstra 算法(Bregman 版本)的特例,也是在这个对偶上的交替最大化。
(4.49) 还能进一步推广到多于两个函数、多于一个耦合的情形(Chizat 等 2018):多边缘问题的 Sinkhorn(§10.1 的 (10.2))、熵正则的 Wasserstein 重心(§9.2 的 (9.15) 与迭代 (9.18))、梯度流(§9.3 的 (9.26))都是它的特例。第 10 章的非平衡 OT 迭代 (10.9) 正是上面那个例子。
本章小结
- 熵正则化 (4.2):$\min_{P\in U(a,b)}\langle P,C\rangle-\varepsilon H(P)$。严格凸 → 解 $P_\varepsilon$ 唯一且处处为正;它是 Gibbs 核 $K=e^{-C/\varepsilon}$ 在 $U(a,b)$ 上的 KL 投影 (4.7)。
- ε 的两端(Prop. 4.1):$\varepsilon\to0$ 得到熵最大的精确 OT 解,$\varepsilon\to\infty$ 得到独立耦合 $ab^\top$。$\varepsilon$ 越大越模糊、越好算。
- 缩放形式(Prop. 4.3):$P=\operatorname{diag}(u)K\operatorname{diag}(v)$,$u=e^{f/\varepsilon}$、$v=e^{g/\varepsilon}$,$f,g$ 是对偶变量(「价格」)。
- Sinkhorn (4.15):交替 $u\leftarrow a/(Kv)$、$v\leftarrow b/(K^\top u)$;等价于交替 KL 投影 (4.16),也等价于对偶上的块坐标上升 (4.35–4.36)。
- 收敛(Thm. 4.1–4.2):正矩阵在 Hilbert 射影度量下是压缩映射 → 线性收敛;全局界 $\lambda(K)^2$ 极其悲观,局部速度 $1-\kappa$,简单情形 $\kappa\sim\varepsilon$;用边缘误差做停止准则。
- 加速(§4.3):批量 (4.26)、网格上的可分离卷积 (4.27)、曲面上的热核 (4.28–4.29)、过松弛外推(Rem. 4.20)。
- 稳定(§4.4):$\varepsilon$ 小时朴素迭代溢出;改在对数域用 soft-min / log-sum-exp (4.42–4.44),任意 $\varepsilon$ 都稳定,但每步 $nm$ 次 exp。
- 近似 OT 代价(§4.5):对偶值(含有限 $L$ 步的)是下界,收敛后的 $\langle C,P^\star\rangle$ 是上界,间隙 $=\varepsilon\times$香农熵 $\le\varepsilon\log(nm)$;$\mathrm L^\varepsilon_C$ 光滑、凸,梯度是 $(f^\star,g^\star)$。
- 广义 Sinkhorn(§4.6):边缘约束换成函数 $F,G$,把缩放换成 KL 邻近算子 (4.51);KL 惩罚得到非平衡 OT:$u=(a/Kv)^{\lambda/(\lambda+\varepsilon)}$。
概念链条:熵 → Gibbs 核与 KL 投影 → 行列缩放形式 → Sinkhorn 迭代 → (取对数)对偶与 soft c-变换 → 稳定实现、上下界、梯度 → 广义问题。
| 量 | 定义 | 与精确代价 $\mathrm L_C$ 的关系 |
|---|---|---|
| $\mathrm L_C(a,b)$ | 精确 OT(线性规划,第 2–3 章) | — |
| $\mathrm L^\varepsilon_C(a,b)$ | 熵正则问题 (4.2) 的最优值 | $\varepsilon\to0$ 时趋于 $\mathrm L_C$;光滑、凸、可微 |
| $\mathfrak P^\varepsilon_C(a,b)$ | $\langle C,P^\star\rangle$,原始 Sinkhorn 散度 | 上界 $\ge\mathrm L_C$;有偏差:$\mathfrak P^\varepsilon(a,a)\gt0$ |
| $\mathfrak D^\varepsilon_C(a,b)$ | $\langle f^\star,a\rangle+\langle g^\star,b\rangle$,对偶 Sinkhorn 散度 | 下界 $\le\mathrm L_C$;$\mathfrak P-\mathfrak D=\varepsilon\times$香农熵 |
| $\mathfrak D^{(L)}_C(a,b)$ | 第 $L$ 步的势给出的对偶值 (4.48) | 任意 $L\ge1$ 都是下界;可微但一般不凸 |
| $\langle C,P^{(\ell)}\rangle$ | 中途耦合的运费 | 不是界(不可行);取整后才是上界 |
| 实现选择 | 优点 | 缺点 |
|---|---|---|
| 朴素 (4.15) | 只有矩阵–向量乘法,可批量 (4.26)、可用卷积 (4.27),GPU 极快 | $\varepsilon$ 相对代价过小时溢出/下溢 |
| 对数域 (4.43–4.44) | 对任意 $\varepsilon$ 数值稳定 | 每步 $nm$ 次 exp,慢;难以批量 |
| 减小 $\varepsilon$ | 更接近精确 OT,偏差更小 | 收敛变慢(Thm. 4.2、Rem. 4.15),更易溢出 |
| 加速技巧 | 过松弛(Rem. 4.20)、$\varepsilon$ 逐步减小并热启动(Rem. 4.9) | 过松弛参数过大可能振荡 |
自测
某问题的精确 OT 有无穷多个最优耦合。ε → 0 时熵正则解 P_ε 收敛到哪一个?
代价矩阵可以写成 C_ij = α_i + β_j(可加代价)。熵正则解 P_ε 是什么?
为什么 ε 越小,Sinkhorn 收敛得越慢?
在二维规则网格上、平方欧氏代价下,「用 Gibbs 核 K 乘一个向量 v」在图像上相当于什么操作?
收敛后,原始 Sinkhorn 散度 ⟨C,P*⟩ 与对偶 Sinkhorn 散度 ⟨f*,a⟩+⟨g*,b⟩ 之差等于什么?
非平衡 OT 的广义 Sinkhorn 更新是 u ← (a/Kv)^(λ/(λ+ε))。当惩罚强度 λ → ∞ 时会怎样?
习题
提示
由对称性 $P=\begin{bmatrix}p & \tfrac12-p\\ \tfrac12-p & p\end{bmatrix}$。对角缩放 $\operatorname{diag}(u)K\operatorname{diag}(v)$ 不改变「交叉比」$\frac{P_{11}P_{22}}{P_{12}P_{21}}$。参考解答
$K=\begin{bmatrix}1 & k\\ k & 1\end{bmatrix}$,$k=e^{-1/\varepsilon}$。由 Prop. 4.3,$P=\operatorname{diag}(u)K\operatorname{diag}(v)$,于是 $\frac{P_{11}P_{22}}{P_{12}P_{21}}=\frac{K_{11}K_{22}}{K_{12}K_{21}}=\frac1{k^2}=e^{2/\varepsilon}$。代入对称形式:$\frac{p^2}{(1/2-p)^2}=e^{2/\varepsilon}$,得 $\frac{p}{1/2-p}=e^{1/\varepsilon}$,即 $$p=\frac{1}{2\,(1+e^{-1/\varepsilon})},\qquad \langle C,P_\varepsilon\rangle=2\Big(\frac12-p\Big)=\frac{1}{1+e^{1/\varepsilon}}.$$ $\varepsilon\to0$:$p\to\tfrac12$,$P_\varepsilon\to\tfrac12 I$(精确 OT,代价 0);$\varepsilon\to\infty$:$p\to\tfrac14$,$P_\varepsilon\to ab^\top$(代价 $\tfrac12$)。提示
在 KL 的定义 (4.6) 里代入 $\log K_{ij}=-C_{ij}/\varepsilon$。参考解答
$\varepsilon\,\mathrm{KL}(P|K)=\varepsilon\sum P_{ij}\log P_{ij}-\varepsilon\sum P_{ij}\log K_{ij}-\varepsilon\sum P_{ij}+\varepsilon\sum K_{ij}=\varepsilon\sum P_{ij}(\log P_{ij}-1)+\langle P,C\rangle+\varepsilon\sum K_{ij}=\langle P,C\rangle-\varepsilon H(P)+\varepsilon\sum K_{ij}$。两边只差与 $P$ 无关的常数 $\varepsilon\sum K_{ij}$,所以在 $U(a,b)$ 上的最小值点相同。提示
(ii) 找 $u,v$ 使 $u_iK_{ij}v_j=a_ib_j$;再用解的唯一性。参考解答
(i) $\langle P,C\rangle=\sum_{ij}P_{ij}\alpha_i+\sum_{ij}P_{ij}\beta_j=\langle\alpha,a\rangle+\langle\beta,b\rangle$,与 $P$ 无关。(ii) 取 $u_i=a_ie^{\alpha_i/\varepsilon}$、$v_j=b_je^{\beta_j/\varepsilon}$,则 $u_iK_{ij}v_j=a_ie^{\alpha_i/\varepsilon}e^{-(\alpha_i+\beta_j)/\varepsilon}b_je^{\beta_j/\varepsilon}=a_ib_j$,且 $ab^\top$ 的边缘正是 $a,b$。形如 $\operatorname{diag}(u)K\operatorname{diag}(v)$ 且边缘正确的矩阵满足 (4.2) 的全部最优性条件(Prop. 4.3 证明中的一阶条件,取 $f=\varepsilon\log u$、$g=\varepsilon\log v$),而 (4.2) 严格凸、解唯一,所以 $P_\varepsilon=ab^\top$。这与 Prop. 4.1 一致:所有耦合都最优时,熵最大的那个就是 $ab^\top$。提示
(c) 在 $\eta(K)$ 的定义里,比值最大时分子取两个对角元、分母取两个非对角元。参考解答
(a) 对 $(i,j)=(2,1)$,$\frac{u_2u'_1}{u_1u'_2}=\frac{2\cdot2}{1\cdot1}=4$ 最大,$d_{\mathcal H}=\log4\approx1.386$;按 (4.21),$\log u-\log u'=(-\log2,\log2)$,变差 $=2\log2=\log4$ ✓。(b) $\frac{u_i\lambda u_j}{u_j\lambda u_i}=1$,$\log1=0$。(c) $\eta(K)=\frac{1\cdot1}{k\cdot k}=k^{-2}$,$\sqrt\eta=1/k$,$\lambda(K)=\frac{1/k-1}{1/k+1}=\frac{1-k}{1+k}$。取 $k=e^{-1/\varepsilon}$ 得 $\lambda(K)=\tanh\frac{1}{2\varepsilon}$,$\varepsilon\to0$ 时 $\lambda\to1$:压缩越来越弱,Thm. 4.2 保证的收敛越来越慢。提示
用 $e^{-\min z/\varepsilon}\le\sum_ie^{-z_i/\varepsilon}\le n\,e^{-\min z/\varepsilon}$。参考解答
对提示中的不等式取 $-\varepsilon\log$(单调递减)即得两边的界。右边的等号需要其余各项 $e^{-z_i/\varepsilon}$ 都为 0,对有限的 $z$ 不可能取到,只在 $\varepsilon\to0$ 时逼近;左边的等号当且仅当所有 $z_i$ 相等。梯度:$\frac{\partial\min_\varepsilon z}{\partial z_i}=\frac{e^{-z_i/\varepsilon}}{\sum_ke^{-z_k/\varepsilon}}$,即 softmax 权重——它们为正、和为 1,所以 soft-min 处处可微,而 min 在并列处不可微。提示
用 (4.47) 的证明得到的等式 $\mathfrak P-\mathfrak D=-\varepsilon\sum P^\star_{ij}\log P^\star_{ij}$,以及 $\mathfrak D\le\mathrm L_C\le\mathfrak P$。参考解答
$P^\star$ 是 $nm$ 个格子上的概率分布,其香农熵 $-\sum P^\star\log P^\star$ 介于 0 与 $\log(nm)$ 之间(均匀分布时最大),乘以 $\varepsilon$ 即得。由于 $\mathrm L_C$ 夹在 $\mathfrak D$ 与 $\mathfrak P$ 之间,两者与 $\mathrm L_C$ 的距离都不超过间隙 $\varepsilon\log(nm)\le\tau$。这与 Rem. 4.6 中取 $\varepsilon$ 正比于 $\tau/\log n$ 的做法一致;代价是 $\varepsilon$ 越小,Sinkhorn 需要的迭代越多。提示
(a) 解 $e^{-1/\varepsilon}\lt4.9\times10^{-324}$。(b) $u=e^{f/\varepsilon}$。(c) 参照 (4.38) 与 (4.42)。参考解答
(a) $1/\varepsilon\gt\ln(4.9\times10^{-324})^{-1}\approx744.4$,即 $\varepsilon\lt1/744\approx1.34\times10^{-3}$ 时离对角最远的元素开始下溢为 0(与 §4.4 演示一致)。(b) $u_i=e^{f_i/\varepsilon}$、$v_j=e^{g_j/\varepsilon}$,而 $f,g$ 的取值跨度与代价同一量级,所以 $u,v$ 的数量级跨度约为 $10^{\pm c/(\varepsilon\ln10)}$,$\varepsilon=10^{-3}$ 时已达 $10^{\pm130}$ 左右(演示实测),再小就越过 $10^{\pm308}$;此外 $a_i$ 很小的位置还会把 $u_i$ 进一步推向下溢。(c) 对每个 $i$:先算 $z_j=(C_{ij}-g_j)/\varepsilon$,令 $\underline z=\min_jz_j$,$f_i=\varepsilon\log a_i+\varepsilon\underline z-\varepsilon\log\sum_je^{-(z_j-\underline z)}$;$g$ 同理。每半步需要 $nm$ 次 exp 与加法,比朴素版本的 $nm$ 次乘加慢,但对任何 $\varepsilon$ 都不会溢出。半离散最优传输 Semidiscrete Optimal Transport
一边是连续分布(比如铺满正方形的一层"面粉"),一边只有 m 个点。最优传输会把整个区域切成 m 块"势力范围",每块整体搬到一个点上。本章讲清楚:这些块由什么决定、长什么样,以及怎样用梯度法、牛顿法和随机梯度把它们调到刚好合适。
- 说清 c-变换 / c̄-变换的定义和几何图像("一排碗的下包络"),以及为什么它"只能改进一次"。
- 把半离散 OT 写成关于 m 个权重 $\mathbf g$ 的有限维凹最大化,并解释梯度 = "目标质量 − 单元质量"。
- 认识 Laguerre 单元、Voronoi 图与幂图(power diagram),理解最优映射是分片常数的。
- 理解熵正则如何把"硬分配"变成"软分配"(单位分解、与多类 logistic 回归的联系),以及为什么目标变光滑后适合牛顿类方法。
- 会写出半离散问题的随机梯度更新(SGD 与带平均的 SGA),理解步长衰减与平均各自的作用。
- 半离散:$\alpha$ 连续(有密度),$\beta=\sum_j \mathbf b_j\delta_{y_j}$ 只有 m 个点。最优传输把空间切成 m 块,第 j 块整块送到 $y_j$——映射是分片常数的。
- c-变换 $f^c(y)=\inf_x c(x,y)-f(x)$:固定一个对偶势时,另一个势的最优取法;几何上是"一排碗的下包络"。它只能改进一次($f^{c\bar cc}=f^c$),所以不加正则的交替最大化会原地打转。
- 用 c̄-变换消去 f 后,对偶问题变成对向量 $\mathbf g\in\mathbb R^m$ 的无约束凹最大化 $\mathcal E(\mathbf g)$——尽管 $\alpha$ 是连续的,未知数却只有 m 个。
- $\mathbf g$ 决定 Laguerre 单元:点 x 归属于 $c(x,y_j)-\mathbf g_j$ 最小的站点。$\mathbf g$ 全相等时就是 Voronoi 图;$c=\|x-y\|^2$ 时单元是凸多边形(幂图)。
- 梯度 $\nabla\mathcal E(\mathbf g)_j=\mathbf b_j-\alpha(\mathbb L_j(\mathbf g))$:哪个单元"吃"得不够,就提高它的权重让它扩张;最优时每个单元的质量恰好等于 $\mathbf b_j$。
- 熵正则把 min 换成 soft-min:边界变软,单元指示函数变成"软分配" $\chi^\varepsilon_j$(和为 1,形同多类 logistic 回归);目标光滑,梯度 $1/\varepsilon$-Lipschitz,适合牛顿 / L-BFGS。
- $\mathcal E^\varepsilon(\mathbf g)$ 是对 $x\sim\alpha$ 的期望,所以只要能从 $\alpha$ 采样就能做随机梯度:SGD 需要步长衰减(误差 $O(1/\sqrt\ell)$),对迭代做平均(SGA)更快。两边都连续时只能在熵正则对偶上做随机优化(Rem. 5.3)。
前几章处理的大多是"离散对离散":两堆点之间求一个耦合矩阵 $\mathbf P$。本章换一个非常常见、而且几何味道很浓的场景:一边是连续分布 $\alpha$(有密度,比如正方形上的均匀分布、一张图片的亮度),另一边是离散分布 $\beta=\sum_{j=1}^m \mathbf b_j\delta_{y_j}$(m 个"站点",第 j 个需要质量 $\mathbf b_j$)。这就是半离散最优传输(semidiscrete optimal transport)。原书第 2 章的 Fig. 2.5 已经预告过这三种情形:
原书开篇一段话点出了本章的三条主线:
- 几何:低维时,从连续密度到离散测度的最优传输是一个分片常数映射——每个站点 $y_j$ 的"原像"是一块(或几块不相连的)区域。代价为欧氏距离平方时,这些区域就是计算几何里的 Laguerre 单元(Laguerre cells):把 Voronoi 单元的边界按常数平移而得。于是可以借用计算几何的快速算法。
- 随机优化:高维时没法把区域精确切出来,但半离散问题可以看成一个随机规划(stochastic programming)问题,只靠从 $\alpha$ 采样来求解;再加一点熵正则效果更好——这把第 4 章的熵正则推广到了新场景。
- 工具:一切都建立在 c-变换(c-transform) 之上。第 3 章 §3.2 只对代价矩阵讲过它,这里推广到一般的代价函数。c-变换是凸分析中 Legendre 变换(Legendre transform) 的推广,在 OT 的理论和算法中都处于枢纽地位。
5.1 c-变换与 c̄-变换 c-Transform and c̄-Transform
这一节要解决的问题:对偶问题有两个未知函数 f、g,还被"对所有 (x, y) 都成立"的约束捆在一起,不好直接优化。c-变换告诉我们:只要知道其中一个,另一个的最佳选择可以直接写出来。于是两个未知函数减成一个,约束也消失了——这是整章的出发点。
回顾:对偶问题 The Dual Problem (2.24)
回忆第 2 章的对偶问题 (2.24):
原书把约束用指示函数 $\iota_{\mathcal R(c)}(f,g)$(满足约束时为 0,否则为 $-\infty$,记号见 (4.50))写进目标,记整个目标为 $\mathcal E(f,g)$。借用 Rem. 2.21 的"物流外包"比喻:f(x) 是在 x 收货的单价,g(y) 是在 y 送货的单价,约束说任何一对 (x, y) 的"收 + 送"都不能贵过真实运费 c(x, y);在这个前提下,报价方希望总收入越高越好。
定义:c-变换与 c̄-变换 Definition (5.1)–(5.2)
一句话直觉:收货价 f 定好之后,y 处的送货价最多能定多高?必须对每一个可能的来源 x 都满足 $g(y)\le c(x,y)-f(x)$,所以最高只能取这些上限中最小的那个。
其中 $\bar c(y,x)\overset{\text{def.}}{=}c(x,y)$ 只是把代价的两个参数对调——c̄-变换就是"站在 $\mathcal Y$ 这一侧"做同样的事。
$$f^c\in\operatorname*{argmax}_g\ \mathcal E(f,g),\qquad g^{\bar c}\in\operatorname*{argmax}_f\ \mathcal E(f,g).$$
为什么成立
固定 f。目标里 g 只以 $\int g\,\mathrm d\beta$ 出现,而 $\beta\ge 0$,所以 g 越大越好;唯一的限制是对每个 y 和所有 x 都有 $g(y)\le c(x,y)-f(x)$,即 $g(y)\le\inf_x\,[c(x,y)-f(x)]=f^c(y)$。$g=f^c$ 恰好把每个上限取满,自然最优。另一半同理。
注意:部分最大化只在 $\beta$(或 $\alpha$)的支撑上决定了最优值,而定义 (5.1) 却给出了定义在整个 $\mathcal Y$(或 $\mathcal X$)上的函数——这是把对偶解自然地延拓到全空间的一种方式。
几何图像:一排"碗"的下包络 Geometric Picture
当 $\mathcal X=\mathbb R^d$、$c(x,y)=\|x-y\|^p$ 时,$f^c$ 叫做 $-f$ 与 $\|\cdot\|^p$ 的下确界卷积(inf-convolution),这个公式也常被称为 Hopf–Lax 公式(Hopf–Lax formula)(它给出 Hamilton–Jacobi 方程的解)。下面的演示中,f 只在 m 个点上有值(离散的 $\alpha$),包络由 m 只碗构成——这正是下一节半离散情形要用到的;如果 f 是连续函数,就是无穷多只碗、碗底沿曲线 $-f$ 滑动。
拖动彩色圆点(碗底,位置 $(y_j,-\mathbf g_j)$):左右移动站点,上下改变权重。最粗的那条线是下包络 $\mathbf g^{\bar c}(x)=\min_j c(x,y_j)-\mathbf g_j$;底部彩条标出每一段包络由哪只碗构成(一维的 Laguerre 单元)。切换 p 看碗的形状如何变化;点"c̄c 往返"看看再变换一次会发生什么。
初始时有一只碗(第 2 个站点)整个悬在包络上方——它的单元是空的,完全"没生意"。勾选"c̄c 往返":每只碗被往下压,直到刚好碰到包络(空心圆是新碗底);包络本身一点没变,但对偶目标 E 变大了。点"用 g^c̄c 替换 g"后再做一次往返:什么都不动了——这就是"只能改进一次"。再试试 p = 1/2,并把第 3 个碗底往下拖到 −0.3 左右:碗变成尖顶的"钉子",第 3 个站点的单元被别的站点切成好几段不相连的区间。
取 $\mathcal X=\{0,1\}$,$f(0)=0$,$f(1)=0.5$,代价 $c(x,y)=|x-y|^2$。则 $f^c(y)=\min\{\,y^2,\ (y-1)^2-0.5\,\}$。两只碗在 $y^2=(y-1)^2-0.5$ 即 $y=0.25$ 处相交:$y\lt 0.25$ 时包络是第一只碗,$y\gt 0.25$ 时是第二只。如果 $f(0)=f(1)$,分界点会在正中间 $0.5$;f(1) 更大让分界点向 0 推进了 0.25——势函数越大,占的地盘越大。这就是下一节 Laguerre 单元的一维雏形。
c-凹函数与 Legendre 变换 c-Concavity
映射 $(f,g)\mapsto(g^{\bar c},f^c)$ 把一对对偶势替换成"更好"的一对(对偶目标 $\mathcal E$ 不降)。能写成 $f^c$ 或 $g^{\bar c}$ 形式的函数称为 c-凹函数(c-concave function) 或 c̄-凹函数。特例 $c(x,y)=\langle x,y\rangle$、$\mathcal X=\mathcal Y=\mathbb R^d$ 时,$f^c(y)=\inf_x\langle x,y\rangle-f(x)$ 是一族线性函数的下包络,这时 c-凹就是通常意义下的凹函数;而且 $f^c(y)=-(-f)^*(-y)$,其中 $\varphi^*(y)=\sup_x\langle x,y\rangle-\varphi(x)$ 是 Legendre 变换——除了几处正负号,c-变换就是 Legendre 变换。所以说 c-变换是 Legendre 变换的推广。
只能改进一次 One Improvement Only
既然 c-变换能改进对偶势,能不能反复做 $f\to f^c\to f^{c\bar c}\to\cdots$ 一路改进到最优?不能。把 Prop. 3.1(矩阵情形)自然推广到连续情形,有
证明思路(三行)
① 单调性:$f\le f'$ 则 $f^c\ge f'^c$(减去更大的数,下确界更小)。② 往返不降:由定义 $f^c(y)\le c(x,y)-f(x)$ 对一切 x, y 成立,移项得 $c(x,y)-f^c(y)\ge f(x)$,对 y 取下确界即 $f^{c\bar c}\ge f$。③ 由②和①,$f^{c\bar cc}=(f^{c\bar c})^c\le f^c$;另一方面把②用在函数 $f^c$ 上(对 c̄-变换同样成立),得 $(f^c)^{\bar cc}\ge f^c$。两边夹逼即相等。
这条性质说明:用这种方式"改进"对偶势只能改进一次。换句话说,对 f、g 做交替最大化不会收敛到最优——它马上就进入循环。这是约束(不光滑的耦合)把两组变量捆在一起时的典型现象。与之形成鲜明对比的是第 4 章的熵正则:正则化后对偶目标 (4.30) 是光滑的,交替最大化恰好就是 Sinkhorn 迭代 (4.43)(4.44),而且会收敛。把 Sinkhorn 写成对偶变量的形式,它做的正是熵光滑版的 c-变换:把 min 换成 soft-min(见 5.3 节)。
只剩一个势函数:半对偶形式 Single-Potential Formulation (5.4)–(5.5)
利用 (5.3),可以把 (2.24) 改写成只关于一个势函数的无约束凸规划(对 f 是凹最大化):
约束去哪儿了?它被 c-变换"自动满足"了:$(f,f^c)$ 永远是可行的一对。由于映射 $(f,g)\mapsto(g^{\bar c},f^c)$ 可以迭代,还可以额外要求 f 是 c̄-凹的、g 是 c-凹的而不损失最优值。这一点在理论上很重要:c-凹函数自带正则性(例如 $c=d^p$ 时是 Lipschitz 的),借此可以证明对偶问题 (2.24) 的解存在(第 2 章 §2.5 提到的"c-变换的机制"就是指这个)。
固定 f 后,g 在点 y 处的最佳取值 f^c(y) 是怎么来的?
反复交替做 c-变换和 c̄-变换(f → f^c → f^{cc̄} → …)会怎样?
- c-变换 = 固定一个对偶势时另一个的最优选择 = 一排碗的下包络;它推广了 Legendre 变换。
- $f^{c\bar cc}=f^c$:只能改进一次,交替最大化会原地打转;熵正则(soft-min)才让交替迭代收敛。
- 用 c-变换消元,得到只关于一个势函数的无约束问题 (5.4)(5.5)——下一节它在半离散情形变成有限维问题。
5.2 半离散形式 Semidiscrete Formulation
这一节要解决的问题:当 $\beta=\sum_j\mathbf b_j\delta_{y_j}$ 只有 m 个点时,(5.5) 里的未知函数 g 其实只是 m 个数。于是一个关于连续分布的无穷维问题,变成了关于向量 $\mathbf g\in\mathbb R^m$ 的有限维凹最大化。本节讲清它的几何(Laguerre 单元)和解法(梯度上升、牛顿法)。(若 $\alpha$ 是离散的而 $\beta$ 连续,交换两者的角色即可。)
离散的 c̄-变换 Discrete c̄-Transform (5.6)
把 (5.2) 中的下确界限制在 $\beta$ 的支撑 $(y_j)_j$ 上:对 $\mathbf g\in\mathbb R^m$,
它把一个向量 $\mathbf g$ 变成 $\mathcal X$ 上的一个连续函数 $\mathbf g^{\bar c}\in\mathcal C(\mathcal X)$。当取 $\mathcal Y=\operatorname{supp}\beta$ 时,它与 (5.2) 一致。
这正是上一节演示里的"m 只碗的下包络"。原书 Fig. 5.1 上半部分画的就是一维的例子(代价 $|x-y|^p$,p 从 1/2 到 2,红点在 $(y_j,-\mathbf g_j)$),下半部分是二维的例子:背景颜色是 $\mathbf g^{\bar c}$ 的数值,粗黑线围出的区域就是下面要定义的 Laguerre 单元。下面的演示 2 可以复现它。
有限维的对偶问题 A Finite-Dimensional Dual (5.7)
关键的一步:把离散 c̄-变换代入半对偶 (5.5),得到一个只有 m 个未知数的优化问题:
$\mathcal E$ 是凹函数:对每个固定的 x,$\mathbf g\mapsto\mathbf g^{\bar c}(x)$ 是 m 个仿射函数的最小值(凹),对 x 积分、再加上线性项,仍然是凹的。所以这是一个没有约束、没有局部极大陷阱的问题。
Laguerre 单元 Laguerre Cells
一句话直觉:$\mathbf g^{\bar c}(x)$ 里的 min 在哪个 j 处取到,x 就"归属"于哪个站点。把归属于同一站点的点收集起来,就是它的"势力范围"。
这些单元给出了 $\mathcal X$ 的一个剖分 $\mathcal X=\bigcup_j\mathbb L_j(\mathbf g)$(相邻单元只在边界上重叠;对欧氏距离平方等常见代价,只要 $\alpha$ 有密度,边界的质量就是 0)。当 $\mathbf g$ 是常数向量时,Laguerre 单元就是 Voronoi 图(Voronoi diagram):每个点归属于离它最近(代价最小)的站点。
有了单元,目标函数可以方便地改写为(在每个单元内,min 就是那一项):
$\alpha$ 是正方形上的均匀分布。拖动圆点移动站点(拖动时也会选中它),用滑块调节被选中站点的权重 $\mathbf g_j$。右图:每个单元的质量 $\alpha(\mathbb L_j)$(彩色柱)与目标 $\mathbf b_j=1/m$(虚线)。挑战:只靠手动调权重,能让所有柱子都对齐虚线吗?
$\mathbf g$ 全为 0 时是 Voronoi 图:边界是相邻站点连线的垂直平分线。提高某个 $\mathbf g_j$,它的单元就向外扩张、边界平行地推向邻居(p = 2 时边界始终是直线,单元是凸多边形);权重足够大时,一个站点甚至能"吞掉"别的站点所在的位置——站点不一定在自己的单元里。给所有 $\mathbf g_j$ 同时加同一个数,单元不变。换成 p = 1 或 1/2,边界变成曲线。打开等高线可以看到 $\mathbf g^{\bar c}$ 的"碗"形地形,单元边界正是两只碗的交线。
- Laguerre 单元 ≠ Voronoi 单元:权重会让边界平移,单元可能不包含它自己的站点,也可能完全为空(权重太小的站点"没有生意")。
- 只有权重的差有意义:$\mathbf g$ 与 $\mathbf g+t\mathbf 1$ 给出同样的单元;又因 $\sum_j\mathbf b_j=\int\mathrm d\alpha=1$,$\mathcal E(\mathbf g+t\mathbf 1)=\mathcal E(\mathbf g)$。所以最优 $\mathbf g$ 只确定到一个常数(本章演示都把 $\sum_j\mathbf g_j$ 固定为 0)。
- 对一般的代价,一个站点的"领地"可以由几块不相连的区域组成(原书开篇语);只有 $c=\|x-y\|^2$ 时每个单元才保证是一个凸多面体。
梯度:目标质量 − 单元质量 Gradient of E
为什么是这样(包络定理的直觉)
把 $\mathbf g_j$ 增加一个很小的 $\delta$。对 $\mathbb L_j$ 里的每个点 x,(5.8) 中被积的 $c(x,y_j)-\mathbf g_j$ 都减少 $\delta$,贡献 $-\delta\,\alpha(\mathbb L_j)$;线性项 $\langle\mathbf g,\mathbf b\rangle$ 增加 $\delta\,\mathbf b_j$。边界也会挪动一点,但在边界上两个站点的"报价"恰好相等,换归属不改变被积函数的值——所以边界移动只带来 $\delta^2$ 级的影响。合起来,导数就是 $\mathbf b_j-\alpha(\mathbb L_j)$。
这个公式非常好读:
- 最优条件:$\nabla\mathcal E(\mathbf g)=0$ ⟺ 每个单元的质量恰好等于目标 $\alpha(\mathbb L_j(\mathbf g))=\mathbf b_j$。
- 梯度上升 $\mathbf g\leftarrow\mathbf g+\tau\,(\mathbf b-\alpha(\mathbb L(\mathbf g)))$:客流不足的站点加补贴(单元扩张),爆满的站点减补贴(单元收缩)——就像市场上的价格调节。
- 梯度各分量之和为 $\sum_j\mathbf b_j-\sum_j\alpha(\mathbb L_j)=1-1=0$,所以梯度上升自动保持 $\sum_j\mathbf g_j$ 不变。
- 初始化 $\mathbf g=\mathbf 0$(此时单元就是 Voronoi 图)。
- 求出 Laguerre 单元 $\mathbb L_j(\mathbf g)$ 及其质量 $\alpha(\mathbb L_j(\mathbf g))$($c=\|x-y\|^2$ 时用幂图精确计算)。
- 残差 $\mathbf r=\mathbf b-\alpha(\mathbb L(\mathbf g))$(即梯度);若 $\sum_j|\mathbf r_j|$ 足够小就停止。
- 梯度上升:$\mathbf g\leftarrow\mathbf g+\tau\,\mathbf r$。或阻尼牛顿:解 $(-\nabla^2\mathcal E)\,\boldsymbol\delta=\mathbf r$,令 $\mathbf g\leftarrow\mathbf g+t\,\boldsymbol\delta$,t 从 1 开始减半,直到每个单元的质量都不太小、且残差确实下降。
- 回到第 2 步。结束后,最优映射把 $\mathbb L_j(\mathbf g)$ 整块送到 $y_j$。
最优传输映射是分片常数的 Piecewise Constant Transport Map
求出最优的 $\mathbf g$ 后,从 $\alpha$ 到 $\beta$ 的最优传输映射 T 就是:把 $\mathbb L_j(\mathbf g)$ 里的每个点都送到 $y_j$。它是分片常数的——整个单元被"压缩"到一个点上。对 $c=\|x-y\|^2$,这与第 2 章的 Brenier 定理(Rem. 2.24)一致:$T=\nabla\varphi$,其中 $\varphi(x)=\max_j\,\langle x,y_j\rangle+\tfrac12(\mathbf g_j-\|y_j\|^2)$ 是一个分片线性的凸函数,它在 $\mathbb L_j$ 上的梯度恰好是 $y_j$。
点"播放",让算法自动调节 $\mathbf g$,使每个单元的质量逼近目标 $\mathbf b_j$(右上柱状图)。右下是收敛曲线:纵轴为质量误差 $\sum_j|\alpha(\mathbb L_j)-\mathbf b_j|$ 的对数。可以切换 $\alpha$(均匀 / 高斯团块)、目标 $\mathbf b$、方法和步长 τ;运行中也可以拖动站点。代价 $c=\|x-y\|^2$,单元是精确计算的凸多边形。
梯度上升:单元像"呼吸"一样一点点调整,误差曲线在对数坐标下近似一条直线(线性收敛);均匀分布下把 τ 调到 0.5 以上就会来回震荡(步长超过了 2/曲率)。阻尼牛顿通常 3–6 步就把误差压到 $10^{-10}$ 以下(曲线几乎垂直下落)。换成高斯团块的 $\alpha$:密度高的地方边界稍一移动,质量就变化很多(曲率大),τ = 0.3 在均匀分布下能收敛,在这里却会来回震荡;而离团块远的站点必须把单元伸得很长才能"够到"足够的质量——曲率忽大忽小,正是二阶方法的用武之地。勾选"显示传输映射":每个单元的质量(箭头从单元的 α-重心出发)整体运往自己的站点。
补充:牛顿法用到的 Hessian(原书未展开)
对 $c=\|x-y\|^2$ 且 $\alpha$ 有密度 ρ,单元质量对权重的导数只来自公共边界:对 $k\ne j$,$\dfrac{\partial\,\alpha(\mathbb L_j)}{\partial\mathbf g_k}=-\dfrac{1}{2\|y_j-y_k\|}\displaystyle\int_{\mathbb L_j\cap\mathbb L_k}\rho\,\mathrm d\sigma$(边界上密度的线积分),对角元由"每行和为 0"得到。于是 $-\nabla^2\mathcal E$ 是一个带权的图拉普拉斯矩阵(权重 = 公共边的"加权长度"/两站点距离的两倍),常数向量在它的零空间里——对应"g 只确定到一个常数"。演示中的阻尼牛顿法就是解 $(-\nabla^2\mathcal E)\,\boldsymbol\delta=\mathbf b-\alpha(\mathbb L(\mathbf g))$,再用回溯(步长减半)保证每个单元的质量都不低于一个阈值、且误差下降——这正是 Rem. 5.1 提到的 Kitagawa 等人证明线性收敛的阻尼牛顿法的思路。
幂图与凸包 Power Diagrams and Convex Hulls
当 $c(x,y)=\|x-y\|^2$ 时,Laguerre 剖分也叫幂图(power diagram)。单元 j 与 k 的分界满足 $\|x-y_j\|^2-\mathbf g_j=\|x-y_k\|^2-\mathbf g_k$,展开后二次项抵消:
这是一张垂直于连线 $y_jy_k$ 的超平面(二维时是直线)。$\mathbf g_j$ 每增加 δ,这条边界就朝 $y_k$ 平移 $\delta/(2\|y_j-y_k\|)$。所以每个单元都是若干半空间的交——凸多面体,可以用计算几何算法高效求出(见 [Aurenhammer, 1987])。
最常用的算法基于一个"抬升"技巧:因为 $\|x-y_j\|^2-\mathbf g_j=\|x\|^2-h_j(x)$,其中 $h_j(x)=2\langle x,y_j\rangle-\|y_j\|^2+\mathbf g_j$ 是 x 的仿射函数,所以"碗的下包络"减去公共的 $\|x\|^2$ 之后,就变成了"一族超平面的上包络"。上包络是 $\mathbb R^{d+1}$ 中的凸多面体曲面,它的每个面竖直投影下来恰好是一个 Laguerre 单元。这个上包络与抬升点集 $\big(y_j,\ \|y_j\|^2-\mathbf g_j\big)_{j=1}^m\subset\mathbb R^{d+1}$ 的(下)凸包互为对偶,所以幂图可以通过计算凸包得到。求凸包的算法很多,例如 Chan [1996] 的算法在二维和三维的复杂度是 $O(m\log Q)$,Q 是凸包的顶点数。
历史与应用速览(原书 5.2 节后半部分的文献)
| 文献 | 贡献 / 应用 |
|---|---|
| Oliker & Prussner [1989] | 最早提出求解 Monge–Ampère 方程的半离散求解器 |
| Aurenhammer et al. [1998] | 指出它与对偶变分问题(即 (5.7))的联系 |
| Caffarelli et al. [1999] | 理论分析,并应用于光学中的反射镜设计问题 |
| Carlier et al. [2010] | 结合基于 Knothe 传输的延拓(continuation)方法 |
| Mérigot [2011] | 拟牛顿求解器,厘清与计算几何概念的联系,带来这一方法在多领域的复兴 |
| De Goes et al. [2012];Lévy [2015] | 牛顿求解器用于计算机图形学中的采样;三维体与曲面处理 |
| de Goes et al. [2015];Gallouët & Mérigot [2017] | 不可压缩流体(Euler 方程)的拉格朗日方法:每一步用半离散 OT 强制粒子云近似均匀分布(不可压缩性) |
| Mirebeau [2015];Kitagawa et al. [2016] | 证明阻尼牛顿迭代线性收敛(分别针对 Monge–Ampère 与最优传输) |
| Meyron et al. [2018] | 照明设计,特别是反射镜 |
| Lévy & Schwindt [2018] | 近期综述 |
当所有权重 g_j 都相等时,Laguerre 单元变成什么?
梯度上升中,若某个单元当前的质量 α(L_j) 小于目标 b_j,下一步 g_j 会怎样变化?
代价为欧氏距离平方时,为什么 Laguerre 单元总是凸多边形(凸多面体)?
- 离散 c̄-变换 (5.6) 把对偶问题变成 m 维的凹最大化 (5.7)/(5.8),尽管 $\alpha$ 是连续的。
- $\mathbf g$ 通过 Laguerre 单元决定"谁去哪";$\mathbf g$ 为常数时是 Voronoi 图,$c=\|x-y\|^2$ 时是幂图(凸多面体,可借凸包算法计算)。
- 梯度 = 目标质量 − 单元质量;最优时每个单元的质量恰为 $\mathbf b_j$,最优映射把整个单元送到站点,是分片常数的。
- 梯度上升线性收敛、怕步长过大;(阻尼)牛顿法几步就收敛——这是计算几何求解器的主力。
5.3 熵正则的半离散形式 Entropic Semidiscrete Formulation
这一节要解决的问题:把第 4 章的熵正则搬到半离散问题上。效果一句话:c-变换里的 min 换成 soft-min。于是 Laguerre 单元的"硬边界"变成渐变的"软边界",目标函数变得处处光滑——可以放心地用牛顿法、L-BFGS,下一节还能用随机梯度。
熵正则的对偶与软 c-变换 Smoothed c-Transform (5.9)
一般测度之间熵正则问题 (4.9) 的对偶,是一个光滑、无约束的优化问题(参见 (4.45)):
其中 $(f\oplus g)(x,y)\overset{\text{def.}}{=}f(x)+g(y)$。和 (2.24) 对比:硬约束 $f\oplus g\le c$ 被换成了一个指数罚项——违反约束不再是"不可能",而是代价随违反量指数增长。和不带正则时 (5.1) 一样,可以对 f 或 g 之一显式地求最大,得到熵光滑的 c-变换:
当 $\beta=\sum_{j=1}^m\mathbf b_j\delta_{y_j}$ 是离散的,问题像 (5.7) 一样化为关于 $\mathbf g\in\mathbb R^m$ 的有限维问题:
只看两只碗,报价分别为 $z_1\le z_2$:$\min_\varepsilon(z_1,z_2)=z_1-\varepsilon\log\big(1+e^{-(z_2-z_1)/\varepsilon}\big)$。
- 在两碗交点($z_1=z_2$):比硬包络低 $\varepsilon\log2$,此时两个站点各分到一半,$\chi^\varepsilon_1=\chi^\varepsilon_2=\tfrac12$。
- 远离交点($z_2-z_1\gg\varepsilon$):只低约 $\varepsilon\,e^{-(z_2-z_1)/\varepsilon}$,几乎不变,分配也几乎是硬的。
- 一般地,m 只碗时下沉量在 0 与 $\varepsilon\log m$ 之间:只有在"势均力敌"的地方,soft-min 才明显改变包络、把点按比例分给几个站点。
Sinkhorn = 交替计算软 c-变换 Sinkhorn as Alternate Smoothed c-Transforms (5.11)
当 $\alpha$ 也是离散的,可以类似地定义 $\mathbf f$ 的软变换。第 4 章用 soft-min 改写的 Sinkhorn 迭代 (4.40)(4.41),恰好就是交替地计算熵光滑的 c-变换:
把它和 5.1 节放在一起看,就是本章最重要的对比之一:$\varepsilon=0$ 时交替做 c-变换往返一次就停住;$\varepsilon\gt0$ 时交替做软 c-变换会一步步收敛到最优——这就是 Sinkhorn。下面的演示把两者放在一起跑。
两组离散点(蓝 = $\alpha$,红 = $\beta$,圆的大小表示质量),代价 $\|x-y\|^2$。都从 $\mathbf f=\mathbf 0$ 出发,比较硬的交替 c-变换 $\mathbf f\to\mathbf f^{C}\to\mathbf f^{C\bar C}\to\cdots$ 与软的交替 c-变换(Sinkhorn,(5.11))。右图纵轴:把当前的 $\mathbf f$ 做一次硬 c-变换得到可行的一对 $(\mathbf f,\mathbf f^{C})$,它的对偶值 $\langle\mathbf f,\mathbf a\rangle+\langle\mathbf f^{C},\mathbf b\rangle$ 是精确 OT 值的下界(弱对偶),画成精确值的百分比。拖动"迭代次数"或点"播放",看左图中 Sinkhorn 的耦合如何成形。
红线(硬)在第 1 步跳一下就再也不动了——这就是 $f^{c\bar cc}=f^c$:往返一次之后势函数已经是 c-凹的,交替最大化原地打转,通常停在精确值的一半到九成之间(取决于点的位置)。蓝线(软)则一步步爬升:ε 越小,最终越接近 100%,但爬得越慢;ε 太大时 soft-min 太"软",得到的 $\mathbf f$ 离最优较远。左图的连线是 Sinkhorn 在当前迭代的耦合 $\mathbf P$:一开始很模糊,逐渐集中到少数几条,接近精确的最优耦合。
光滑的半离散目标 Smooth Semidual (5.12)–(5.13)
与其求解 (5.9),不如直接求解有限维问题
它在不带正则的情形 $\varepsilon=0$ 下依然有效:此时 $\mathbf g^{\bar c,0}=\mathbf g^{\bar c}$ 就是 (5.6) 的 c̄-变换,(5.12) 就是 (5.8)。它的梯度是
$\chi^\varepsilon_j$ 是 Laguerre 单元指示函数 $\chi^0_j=\mathbb 1_{\mathbb L_j(\mathbf g)}$ 的光滑版本((5.13) 在 $\varepsilon=0$ 时仍然成立,就退回 5.2 节的梯度)。函数族 $(\chi^\varepsilon_j)_j$ 是一个单位分解(partition of unity):$\chi^\varepsilon_j\ge0$ 且 $\sum_j\chi^\varepsilon_j=1$。换句话说,点 x 不再"整个"属于某个站点,而是按比例 $\chi^\varepsilon_j(x)$ 分给各个站点——从"硬分配"变成了"软分配"。
原书 Fig. 5.3 展示了这一切:上图是一维的软变换 $\mathbf g^{\bar c,\varepsilon}$(代价 $|x-y|$,ε 从 0 到 0.3),下图是二维的情形(代价 $\|x-y\|$),颜色表示软分配 $\chi^\varepsilon_j$,黑色曲线是 $\mathbf g^{\bar c,\varepsilon}$ 的等高线。下面两个演示分别对应上、下两行。
拖动 ε 滑块。上图:虚线是硬包络 $\mathbf g^{\bar c}$,实线是软包络(与原书图一样画 $\min_\varepsilon$;(5.10) 的 $\mathbf b_j$ 只会把它整体平移 $\varepsilon\log m$)。下图:从下往上堆叠的彩色带是软分配 $\chi^\varepsilon_1(x),\dots,\chi^\varepsilon_m(x)$,每个 x 处总高度都是 1。碗底(彩色圆点)同样可以拖动。
ε 很小时软包络几乎贴着硬包络,彩色带是一块块"纯色"——就是硬的 Laguerre 区间。ε 增大,包络在两碗交界处的尖角被磨圆、向下沉,而碗底附近变化较小(ε 很大时整条曲线都会明显下沉);彩色带在交界处出现渐变:交界附近的点被按比例分给两个站点。无论 ε 多大,每一列彩色带的总高度都是 1(单位分解)。
颜色按软分配 $\chi^\varepsilon_j(x)$ 混合。拖动 ε;勾选"保持最优 g"时,每次改变都会用牛顿法重新求解 (5.12),所以各单元的软质量 $\int\chi^\varepsilon_j\,\mathrm d\alpha$ 始终等于目标(右上)。点击正方形中任意空白处放置探针 ✚,右下显示该点被分给各站点的比例——就像一个多类分类器给出的类别概率。站点可拖动。
ε = 0 时是纯色的硬单元;ε 增大,边界晕开成宽度约与 ε 成正比的渐变带,但"最可能的站点"的分界线(虚线,argmax 边界)依然是直线——软分配就是一个线性的多类 logistic 回归分类器(见下面的 Rem. 5.1)。取消"保持最优 g"再拖 ε:g 不变时,ε 越大各单元的软质量越偏离目标,说明最优的 g 本身随 ε 而变。
二阶方法与 logistic 回归 Second-Order Methods and Logistic Regression
光滑性:光滑的半离散目标 (5.12) 的关键在于它是一个光滑函数。Genevay 等人 [2016] 证明 $\mathcal E^\varepsilon$ 的 Hessian 以 $1/\varepsilon$ 为界,所以 $\nabla\mathcal E^\varepsilon$ 是 $\tfrac1\varepsilon$-Lipschitz 的。
logistic 回归:这个问题与多类 logistic 回归(multiclass logistic regression)非常接近(Fig. 5.3 画出了由此得到的"模糊分类边界"),并享有同样良好的性质(自和谐性的推广,generalized self-concordance)。于是牛顿法二次收敛,实践中也可以用 L-BFGS 这样的拟牛顿方法(Cuturi & Peyré [2016];他们研究的是 §9.2 的重心问题,只有两个测度时就等价于这里的半离散问题)。
ε = 0 也可以用二阶方法:Mérigot [2011]、De Goes 等 [2012]、Lévy [2015] 都在不带正则时使用牛顿或 L-BFGS。Kitagawa 等 [2016, Thm. 5.1] 证明:只要各 Laguerre 单元的体积有正的下界、且 $\alpha$ 有连续密度,$\mathcal E^0$ 的 Hessian 就一致有界;他们用带回溯的阻尼牛顿法(保证迭代中单元不会消失)证明了线性收敛。直觉是:熵正则问题的条件数随 $1/\varepsilon$ 增长;而 $\varepsilon=0$ 时条件数主要由离散分布的点数 m(它控制单元的大小)决定。(其他二阶方案:Knight & Ruiz [2013]、Sugiyama 等 [2017]、Cohen 等 [2017]、Allen-Zhu 等 [2017]。)
进阶:OT 代价的 Legendre 变换 Rem. 5.2
它在说什么:OT 代价作为边缘分布的函数是凸的(Prop. 4.6),所以可以计算它的 Legendre–Fenchel 共轭(定义见 (4.54))。结果恰好可以用(软的)c̄-变换写出来——这再次说明 c-变换就是"OT 版本的 Legendre 变换"。
- 固定 $\mathbf a$,记 $F_{\mathbf a}(\mathbf b)=\mathrm L^\varepsilon_{\mathbf C}(\mathbf a,\mathbf b)$,按 Cuturi & Peyré [2016]:$F^*_{\mathbf a}(\mathbf g)=-\varepsilon H(\mathbf a)+\sum_i\mathbf a_i\,\mathbf g^{\bar c,\varepsilon}(x_i)$,其中 $\mathbf g^{\bar c,\varepsilon}$ 就是 (5.10) 的软变换。
- 不带正则、一般测度(Carlier 等 [2015]):记 $\mathcal F_\alpha(\beta)=\mathcal L_c(\alpha,\beta)$,则 $\mathcal F^*_\alpha(g)=\int_{\mathcal X}g^{\bar c}\,\mathrm d\alpha$。由于 $\mathcal M(\mathcal X)$ 与 $\mathcal C(\mathcal X)$ 对偶,这里的 Legendre 变换是连续函数的函数。
- 对两个参数同时共轭,记 $G(\mathbf a,\mathbf b)=\mathrm L^\varepsilon_{\mathbf C}(\mathbf a,\mathbf b)$:$G^*(\mathbf f,\mathbf g)=-\varepsilon\log\sum_{i,j}e^{(-\mathbf C_{i,j}+\mathbf f_i+\mathbf g_j)/\varepsilon}$;它是 $\mathcal G(\alpha,\beta)=\mathcal L_c(\alpha,\beta)$ 的 Legendre 变换 $\mathcal G^*(f,g)=\inf_{(x,y)}c(x,y)-f(x)-g(y)$ 的光滑版本。
注:按 (4.54) 的定义(并把边缘限制在概率单纯形上)直接计算,得到的是上面这些表达式的相反数(外加与 ε 有关的常数);原书这里的正负号约定不太统一。读者只需记住结构:"OT 代价的共轭 = (软)c-变换在另一边上的积分"。
关于软分配 χ^ε_j(x),下面哪一项是正确的?
为什么说熵正则的半离散问题更适合牛顿法、L-BFGS 这类方法?
- 熵正则 ⇒ c-变换里的 min 变成 soft-min (5.10);Sinkhorn 就是交替计算软 c-变换 (5.11)。
- 半离散目标 (5.12) 对任意 ε ≥ 0 都成立;梯度 (5.13) = 目标质量 − 软单元质量。
- $\chi^\varepsilon_j$ 是单位分解:硬分配变软分配;对 $c=\|x-y\|^2$ 它就是一个线性的多类 logistic 回归。
- 光滑性(Hessian ≤ 1/ε)让二阶方法大显身手;ε = 0 时在单元不消失的前提下,阻尼牛顿同样有效。
5.4 随机优化方法 Stochastic Optimization Methods
这一节要解决的问题:在高维空间里,没法把 Laguerre 单元精确地切出来再对它们积分。但半离散目标 (5.8) 和它的光滑版本 (5.12) 有一个好性质:它们都是关于 $\alpha$ 的期望。所以只要能从 $\alpha$ 里抽样本,就能用随机梯度法求解——完全不需要把 $\alpha$ 离散化。
目标是一个期望 The Objective as an Expectation
其中 X 是按 $\alpha$ 分布的随机向量。对单个样本 x 求梯度:
读法:"目标比例 − 这个样本的分配比例"。$\varepsilon=0$ 时 $\chi^0(x)$ 是一个独热向量 $\mathbf e_{j^*}$(x 落在哪个单元,哪一位就是 1),于是随机梯度就是 $\mathbf b-\mathbf e_{j^*}$。它的期望恰好是 (5.13) 的真梯度 $\mathbf b-\int\chi^\varepsilon\mathrm d\alpha$——一个无偏估计。
这样做的好处(Genevay 等 [2016] 提出):可以得到有收敛性保证的算法,而不必对 $\alpha$ 做任何人为的离散化(既不用 Dirac 和来近似 $\alpha$,也不用求积公式算积分)。$\alpha$ 只被当作一个能产生独立样本的黑盒——在统计与机器学习的高维应用中,这是最自然的计算设定(比如 $\alpha$ 是一个庞大的数据集,或者一个生成模型)。这类方法已被 Staib 等 [2017b] 推广到 Wasserstein 重心的计算(§9.2)。
第 1 步:当前状态
4 个站点,目标 $\mathbf b_j=1/4$。当前权重 $\mathbf g=\mathbf 0$,单元就是 Voronoi 单元,面积(图中百分比)并不相等:有的"太受欢迎",有的"门可罗雀"。
第 2 步:从 α 抽一个样本
抽一个 $x_\ell\sim\alpha$(图中的 ✚)。在高维问题里,这是我们和 $\alpha$ 打交道的唯一方式:我们不知道各单元的真实质量,只看得到样本。
第 3 步:看它落在哪个单元
计算 $c(x_\ell,y_j)-\mathbf g_j$ 并取最小者 $j^*$(连线)。这就是 $\varepsilon=0$ 时的分配向量 $\chi^0(x_\ell)=\mathbf e_{j^*}$。若 $\varepsilon\gt0$,则按 softmax 得到一个"软"的分配向量。
第 4 步:随机梯度 b − ej*
除 $j^*$ 以外的每个站点得到 $+\mathbf b_j=+0.25$,站点 $j^*$ 得到 $\mathbf b_{j^*}-1=-0.75$(右图箭头)。各分量之和为 0,所以 $\sum_j\mathbf g_j$ 保持不变。
第 5 步:沿梯度走一小步
$\mathbf g\leftarrow\mathbf g+\tau\,(\mathbf b-\mathbf e_{j^*})$(这里为了看清楚取了较大的 τ)。站点 $j^*$ 的补贴下降,它的单元收缩;其余单元略微扩张(虚线是更新前的边界)。"被抽中"说明它可能太大了——罚它一下。
第 6 步:重复很多次
样本落入单元 j 的概率恰好是 $\alpha(\mathbb L_j(\mathbf g))$,所以随机梯度的平均就是 5.2 节的真梯度 $\mathbf b-\alpha(\mathbb L(\mathbf g))$。每一步都带噪声,但只要步长逐渐变小,噪声就会被平均掉——这就是下面的 SGD。
随机梯度法 Stochastic Gradient Descent (5.14)–(5.15)
从 $\mathbf g^{(0)}=\mathbf 0$ 出发,随机梯度法(stochastic gradient descent, SGD;这里用作最大化方法)在第 ℓ 步按 $\alpha$ 独立地抽取一个样本 $x_\ell$(与之前、之后的样本都独立),然后更新
步长 $\tau_\ell$ 必须足够快地衰减到 0,才能抵消"用样本梯度代替真梯度"带来的噪声。典型的选择是
其中 $\ell_0$ 大致表示"热身阶段"(warmup)的迭代次数:前 $\ell_0$ 步步长基本不变,之后按 $1/\ell$ 衰减。可以证明
其中 $\mathbf g^\star$ 是 (5.12) 的解,期望是对独立抽样 $(x_\ell)_\ell$ 取的。原书 Fig. 5.4 展示了一个简单的二维例子:$\alpha$ 是 $[0,1]^2$ 上的均匀分布、$\varepsilon=0$,几条不同颜色的曲线是不同随机样本序列下的能量间隙,下方的小图是 Laguerre 单元随迭代的演变。
带平均的随机梯度 SGD with Averaging (SGA)
SGD 慢,是因为步长 $\tau_\ell$ 衰减得太快。改进办法是对过去的迭代做平均:等价于在辅助变量 $\tilde{\mathbf g}^{(\ell)}$ 上跑一个"经典"的 SGD,
并以平均值 $\mathbf g^{(\ell)}$ 作为输出。这就是带平均的随机梯度法(stochastic gradient descent with averaging, SGA)。不必存下所有迭代,只要维护一个滑动平均:
注意这里的步长衰减慢得多,按 $\ell^{-1/2}$ 衰减。Bach [2014] 证明 SGA 比 SGD 收敛更快(涉及的常数更小),因为与 SGD 不同,SGA 能自适应目标函数局部的强凸性(对最大化问题是强凹性)。
- 初始化 $\mathbf g=\tilde{\mathbf g}=\mathbf 0$。对 $\ell=0,1,2,\dots$ 重复:
- 从 $\alpha$ 抽一个样本 $x_\ell$;算出它的分配向量 $\chi^\varepsilon(x_\ell)$($\varepsilon=0$ 时就是独热向量 $\mathbf e_{j^*}$,$j^*=\arg\min_j c(x_\ell,y_j)-\mathbf g_j$)。
- SGD:$\mathbf g\leftarrow\mathbf g+\dfrac{\tau_0}{1+\ell/\ell_0}\big(\mathbf b-\chi^\varepsilon(x_\ell)\big)$,输出 $\mathbf g$。
- SGA:在 $\tilde{\mathbf g}$ 处算分配向量,$\tilde{\mathbf g}\leftarrow\tilde{\mathbf g}+\dfrac{\tau_0}{1+\sqrt{\ell/\ell_0}}\big(\mathbf b-\chi^\varepsilon(x_\ell)\big)$;再更新滑动平均 $\mathbf g\leftarrow\frac{1}{\ell+1}\tilde{\mathbf g}+\frac{\ell}{\ell+1}\mathbf g$,输出 $\mathbf g$。
$\alpha$ 为 $[0,1]^2$ 上的均匀分布,$\varepsilon=0$,目标 $\mathbf b$ 均匀。每一步抽一个样本(左图小点,颜色 = 落入的单元),按 (5.14) 更新。左图:当前迭代的 Laguerre 单元(虚线 = 最优单元)。右图(双对数坐标):能量间隙 $\mathcal E(\mathbf g^\star)-\mathcal E(\mathbf g^{(\ell)})$,红 = SGD,蓝 = SGA 的平均,浅蓝虚线 = SGA 未平均的原始迭代 $\tilde{\mathbf g}$,灰线 = 之前几次运行。打开时已预先抽了 1500 个样本;点"重置"可以从头观察单元的变化。
开始时步长较大,样本噪声甚至会让间隙先上升一段;随后 SGD(红)的步长按 $1/\ell$ 迅速变小,下降明显放缓。SGA 的原始迭代(浅蓝虚线)步长衰减得慢,一直在最优点附近抖动、间隙降不下去;但它的平均(蓝)又稳又快,默认参数下通常比 SGD 低 5–10 倍。每条曲线只是一次随机运行,所以锯齿很多;多按几次"重置"可以比较不同的样本序列(灰线)。灰色虚线只标出 $1/\sqrt\ell$ 的斜率(高度随意取):理论只保证期望间隙至少按这个速率下降,实际曲线后期往往下降得更快。再试试调参数:τ₀ = 0.02、ℓ₀ = 10 时 SGD 的步长过早变小,g 被"冻结"在离最优较远处;τ₀ = 0.3、ℓ₀ = 1000 时它长期迈大步、噪声很大。SGA 对这两个参数则稳健得多——这正是"自适应"的好处。
两边都连续怎么办 Continuous–Continuous Problems
当 $\alpha$、$\beta$ 都不是离散测度时,就不能再用半离散策略(它依赖 (5.7) 那样的有限维对偶变量)。唯一的选择是对对偶问题 (4.45) 使用随机优化方法(Genevay 等 [2016])。这时正则化至关重要:例如取熵正则强度 $\varepsilon\gt0$,得到一个可以用随机下降求解的无约束问题。
- 一种思路是把这个"在连续函数空间上的无穷维优化"限制到一个小得多的子集上,例如多层神经网络所张成的函数集(Seguy 等 [2018])。这样得到的是非凸的有限维问题,没有近似保证,但在高维场景中能有效地给出 Wasserstein 距离的一个替代值。
- 另一种思路是用非参数函数族,相当于某种渐进式细化:Genevay 等 [2016] 使用再生核 Hilbert 空间(RKHS),其维数与 SGD 的迭代次数成正比。
用随机梯度求解半离散问题时(ε = 0),样本 x 落在单元 j* 中。这一步的更新是什么?
SGA(带平均的随机梯度)为什么通常比 SGD 快?
- 半离散目标是对 $\alpha$ 的期望,样本梯度 $\mathbf b-\chi^\varepsilon(x)$ 是真梯度的无偏估计——只需会从 $\alpha$ 采样,不必离散化 $\alpha$。
- SGD (5.14):步长 (5.15) 按 $1/\ell$ 衰减以压住噪声,保证 $O(1/\sqrt\ell)$。
- SGA:步长按 $\ell^{-1/2}$ 慢慢衰减,输出迭代的滑动平均,更快也更稳。
- 两边都连续时(Rem. 5.3),只能在熵正则的对偶上做随机优化,并用神经网络或 RKHS 参数化势函数。
本章小结
- c-变换是消元工具。$f^c(y)=\inf_x c(x,y)-f(x)$ 是固定 f 时 g 的最优选择,几何上是一排碗的下包络,推广了 Legendre 变换。它满足 $f^{c\bar cc}=f^c$:只能改进一次,所以不加正则的交替最大化会原地打转。
- 半离散 = 有限维凹最大化。β 只有 m 个点时,半对偶 (5.7) 只剩 m 个未知数 $\mathbf g$;目标 $\mathcal E$ 凹,且只在差值意义下确定($\mathbf g+t\mathbf 1$ 等价)。
- 几何:Laguerre 单元。x 归属于 $c(x,y_j)-\mathbf g_j$ 最小的站点;$\mathbf g$ 为常数时是 Voronoi 图,$c=\|x-y\|^2$ 时是幂图(凸多面体,可由抬升点集的凸包计算)。
- 梯度 = 目标质量 − 单元质量。最优当且仅当每个单元的质量等于 $\mathbf b_j$;最优映射把整个单元送到它的站点(分片常数,与 Brenier 定理一致)。梯度上升线性收敛,阻尼牛顿几步即可。
- 熵正则 = soft-min。软 c-变换 (5.10);Sinkhorn = 交替的软 c-变换 (5.11);软分配 $\chi^\varepsilon$ 是单位分解,形同多类 logistic 回归;目标光滑(Hessian ≤ 1/ε),适合牛顿 / L-BFGS。
- 随机优化。目标是对 α 的期望,样本梯度 $\mathbf b-\chi^\varepsilon(x)$ 无偏;SGD 需步长衰减($O(1/\sqrt\ell)$),SGA 用慢衰减步长 + 平均,更快更稳;两边都连续时只能在熵正则对偶上随机优化。
| ε = 0(不带正则) | ε > 0(熵正则) | |
|---|---|---|
| c̄-变换 | 硬 min:(5.6) | soft-min:(5.10) |
| 点 x 的归属 | Laguerre 单元(硬分配,指示函数) | $\chi^\varepsilon_j(x)$(软分配,单位分解) |
| 目标 $\mathcal E^\varepsilon(\mathbf g)$ | 凹;α 有密度时可微 | 光滑凹,梯度 $\tfrac1\varepsilon$-Lipschitz |
| 梯度 | $\mathbf b_j-\alpha(\mathbb L_j(\mathbf g))$ | $\mathbf b_j-\int\chi^\varepsilon_j\,\mathrm d\alpha$ |
| 交替做 c-变换 | 往返一次就停住 | 就是 Sinkhorn,收敛 |
| 二阶方法 | 阻尼牛顿(单元不能消失),条件数 ~ m | 牛顿 / L-BFGS,条件数 ~ 1/ε |
| 样本梯度 | $\mathbf b-\mathbf e_{j^*}$(独热) | $\mathbf b-\chi^\varepsilon(x)$ |
| 求解思路 | 需要什么 | 适用场景 |
|---|---|---|
| 计算几何 + (拟)牛顿 | 精确切出单元并积分(幂图 / 凸包) | 低维(2D、3D),高精度:图形学、流体、光学设计 |
| 随机梯度 SGD / SGA | 只需能从 α 采样 | 高维、α 是数据集或生成模型 |
| 两边都连续(Rem. 5.3) | 熵正则对偶 + 随机优化,势函数用神经网络 / RKHS | 高维中近似 Wasserstein 距离 |
与前后章节的联系:第 3 章 §3.2 的矩阵 C-变换是本章的离散原型;第 4 章的 Sinkhorn 在本章被重新理解为"交替的软 c-变换";第 6 章的 W₁ 中,c = d 时的 c-凹函数就是 1-Lipschitz 函数;第 9 章的 Wasserstein 重心也可以用本章的半离散 / 随机方法求解。
术语卡片 Glossary Cards
自测
把所有权重 g_j 同时加上同一个常数 t,会发生什么?
求出最优权重 g 之后,从连续分布 α 到离散分布 β 的最优传输映射 T 长什么样?
Rem 5.1 指出:熵正则问题的条件数随 1/ε 增长。那么不加正则(ε = 0)时,半离散问题的条件数主要由什么决定?
α 和 β 都是连续分布时(Rem 5.3),下面哪种做法是原书建议的?
习题
提示
先写出两只碗 $(x-0.2)^2-\mathbf g_1$ 与 $(x-0.8)^2-\mathbf g_2$ 的交点位置(它是 $\mathbf g_1-\mathbf g_2$ 的函数),再让左边区间的长度等于 0.3。参考解答
由 $(x-0.2)^2-\mathbf g_1=(x-0.8)^2-\mathbf g_2$ 得 $1.2x=0.6+\mathbf g_1-\mathbf g_2$,即分界点 $x_0=0.5+(\mathbf g_1-\mathbf g_2)/1.2$。要求 $\alpha(\mathbb L_1)=x_0=0.3$,所以 $\mathbf g_1-\mathbf g_2=-0.24$,配合 $\mathbf g_1+\mathbf g_2=0$ 得 $\mathbf g^\star=(-0.12,\ 0.12)$。单元:$\mathbb L_1=[0,0.3]$ 送到 0.2,$\mathbb L_2=[0.3,1]$ 送到 0.8。
代价:$\int_0^{0.3}(x-0.2)^2\mathrm dx=\frac{0.1^3+0.2^3}{3}=0.003$,$\int_{0.3}^{1}(x-0.8)^2\mathrm dx=\frac{0.2^3+0.5^3}{3}\approx0.04433$,合计 $\mathcal L_c\approx0.04733$。
验证:$\mathcal E(\mathbf g^\star)=\int_0^{0.3}\big((x-0.2)^2+0.12\big)\mathrm dx+\int_{0.3}^1\big((x-0.8)^2-0.12\big)\mathrm dx+(0.3\cdot(-0.12)+0.7\cdot0.12)=0.04733+0.036-0.084+0.048=0.04733$。✓(一般地,单元质量等于 $\mathbf b$ 时,(5.8) 中含 $\mathbf g$ 的项恰好抵消,$\mathcal E$ 就等于传输代价。)
提示
(b) 从"$f^c(y)\le c(x,y)-f(x)$ 对一切 x, y 成立"出发;(c) 用 (a)+(b) 得到一个方向的不等式,再把 (b) 用在 $f^c$ 上(对 c̄ 版本)得到另一个方向。参考解答
(a) 对每个 x 有 $c(x,y)-f(x)\ge c(x,y)-f'(x)$,取下确界保持不等号。(b) 由定义 $f^c(y)\le c(x,y)-f(x)$,即 $c(x,y)-f^c(y)\ge f(x)$ 对所有 y 成立,对 y 取下确界得 $f^{c\bar c}(x)\ge f(x)$。(c) 由 (b) $f^{c\bar c}\ge f$,再由 (a) $f^{c\bar cc}=(f^{c\bar c})^c\le f^c$;另一方面,把 (b) 的 c̄ 版本($g^{\bar cc}\ge g$)用在 $g=f^c$ 上得 $f^{c\bar cc}\ge f^c$。故相等。
含义:从 f 出发,第一步得到 $(f,f^c)$,第二步 $(f^{c\bar c},f^c)$,第三步 $(f^{c\bar c},f^{c\bar cc})=(f^{c\bar c},f^c)$——与第二步相同,迭代停住。若此时还不是最优,交替最大化也无能为力。
提示
用到 $\sum_j\mathbf b_j=1$ 与 $\sum_j\alpha(\mathbb L_j)=1$。参考解答
(a) 定义中的不等式两边同减 t,单元不变;$\mathbf g^{\bar c}$ 整体减 t,积分项减 $t\int\mathrm d\alpha=t$,而 $\langle\mathbf g+t\mathbf 1,\mathbf b\rangle$ 增加 $t\sum_j\mathbf b_j=t$,抵消。(b) $\sum_j\nabla\mathcal E_j=\sum_j\mathbf b_j-\sum_j\alpha(\mathbb L_j)=0$;样本梯度 $\mathbf b-\mathbf e_{j^*}$ 的分量和为 $1-1=0$。
由 (a),$\mathcal E$ 沿方向 $\mathbf 1$ 是常数,所以 Hessian 满足 $\nabla^2\mathcal E\,\mathbf 1=0$:它是奇异的,$\mathbf 1$ 在零空间中。牛顿法因此要在与 $\mathbf 1$ 正交的子空间里求解(或像演示中那样给系统加一个秩一修正)。
提示
展开 $\|x-y_j\|^2-\mathbf g_j=\|x-y_k\|^2-\mathbf g_k$,写成 $\langle x,\mathbf n\rangle=s$ 的形式,其中 $\mathbf n$ 是单位法向量。参考解答
展开得 $2\langle x,y_k-y_j\rangle=\|y_k\|^2-\|y_j\|^2+\mathbf g_j-\mathbf g_k$。令 $d=\|y_k-y_j\|$,$\mathbf n=(y_k-y_j)/d$,则分界为 $\langle x,\mathbf n\rangle=s$,$s=\dfrac{\|y_k\|^2-\|y_j\|^2+\mathbf g_j-\mathbf g_k}{2d}$:一条法向为 $\mathbf n$(即垂直于连线)的直线。$\mathbf g_j$ 增加 δ 时 s 增加 $\delta/(2d)$,分界线沿 $\mathbf n$ 方向——即朝 $y_k$——平移 $\delta/(2d)$,单元 j 变大。平移量 = 权重增量 / (2 × 距离),所以要以"距离"为单位移动边界,权重必须以"距离²"为单位变化。
提示
三角不等式:$|x-y_2|\le|x-y_1|+|y_1-y_2|$。参考解答
对任意 x,$|x-y_2|-\mathbf g_2\le|x-y_1|+|y_1-y_2|-\mathbf g_2\lt|x-y_1|-\mathbf g_1$(最后一步用 $\mathbf g_2-\mathbf g_1\gt|y_2-y_1|$)。所以站点 2 的"报价"处处严格更低,没有点属于站点 1。反过来,若两单元都非空(最优时 $\alpha(\mathbb L_j)=\mathbf b_j\gt0$),交换角色也不能出现这种情况,所以 $|\mathbf g_1-\mathbf g_2|\le|y_1-y_2|$:势函数在站点上是 1-Lipschitz 的。这正是第 6 章的性质:当 c = d(p = 1)时,c-凹函数就是 1-Lipschitz 函数,W₁ 的对偶只需在 1-Lipschitz 函数上取最大。
提示
在分子分母中提出公共因子 $e^{-\|x\|^2/\varepsilon}$。参考解答
(a) $-\|x-y_j\|^2+\mathbf g_j=-\|x\|^2+(2\langle x,y_j\rangle-\|y_j\|^2+\mathbf g_j)$,公共因子 $e^{-\|x\|^2/\varepsilon}$ 在比值中约去,即得 softmax 形式。(b) softmax 的分量之和为 1。若 x 在 $\mathbb L_j$ 内部,则对所有 $k\ne j$,打分差 $s_j-s_k=\eta\gt0$ 为定值,$\chi^\varepsilon_k/\chi^\varepsilon_j=e^{-\eta/\varepsilon}\to0$,故 $\chi^\varepsilon_j\to1$、其余 → 0。(c) $\chi^\varepsilon_j=\chi^\varepsilon_k$ ⟺ 两个打分相等 ⟺ $2\langle x,y_j-y_k\rangle=\|y_j\|^2-\|y_k\|^2+\mathbf g_k-\mathbf g_j$:正是幂图中 j、k 的分界直线(与 ε 无关)。若按 (5.10) 在 χ 中带上权重 $\mathbf b_j$,这条线会再平移,相当于 $\mathbf g_j\to\mathbf g_j+\varepsilon\log\mathbf b_j$。
提示
(a) 随机梯度是 $\mathbf b-\mathbf e_2$。(b) 把 $(\ell+1)\mathbf g^{(\ell+1)}$ 拆成前 ℓ 项之和加最后一项。参考解答
(a) $\mathbf b-\mathbf e_2=(0.5,\,-0.7,\,0.2)$,乘以 τ = 0.2 得 $\mathbf g=(0.1,\,-0.14,\,0.04)$;分量和仍为 0。单元 2 收缩,单元 1 扩张最多(它的目标比例最大)。
(b) $(\ell+1)\,\mathbf g^{(\ell+1)}=\sum_{k=1}^{\ell+1}\tilde{\mathbf g}^{(k)}=\sum_{k=1}^{\ell}\tilde{\mathbf g}^{(k)}+\tilde{\mathbf g}^{(\ell+1)}=\ell\,\mathbf g^{(\ell)}+\tilde{\mathbf g}^{(\ell+1)}$,两边除以 ℓ + 1 即得。只需存一个向量,内存 O(m)。
提示
网格点数是 $N^d$;蒙特卡洛估计一个比例的标准差是 $\sqrt{p(1-p)/n}$。参考解答
(a) $N^d$:N = 100 时 d = 2 只要 $10^4$ 个点,d = 50 要 $10^{100}$ 个——完全不可行(维数灾难);而且高维时精确切出多面体单元也极其昂贵。(b) 单元质量是一个比例 p,估计误差约 $\sqrt{p(1-p)/n}$,与维数 d 无关(找最近带权站点的代价只随 d 线性增长)。(c) 框架:g = 0;对 ℓ = 0,1,2,…:抽 x ~ α;j* = argmin_j c(x,y_j) − g_j;g += τ_ℓ·(b − e_{j*}),其中 $\tau_\ell=\tau_0/(1+\ell/\ell_0)$;若用 SGA 则改用 $\tau_0/(1+\sqrt{\ell/\ell_0})$ 并维护滑动平均。$\ell_0$ 是"热身"长度:太小,步长过早变小、g 被"冻结"在远离最优处;太大,长时间用大步长,噪声大。经验上可让 $\ell_0$ 与站点数 m 同量级或更大(每个单元先被抽中若干次),再按收敛曲线调整。ε > 0 时把 $\mathbf e_{j^*}$ 换成软分配 $\chi^\varepsilon(x)$,梯度方差更小。
W₁ 最优传输 W1 Optimal Transport
当搬运代价就是距离本身(而不是距离的平方),最优传输换了一副面孔:对偶势变成「坡度不超过 1」的地形,搬运方案变成一张流场,距离本身变成一个范数——放到图上,它就是经典的最小费用流。
- 说清 W₁ 与平方代价(W₂)的三点关键差别:最优方案常常不唯一、对离群点更稳健、只依赖差 $\alpha-\beta$(是一个范数)。
- 理解命题 6.1:代价是距离时,c-变换只产生 1-Lipschitz 函数,并且 $f^c=-f$;由此得到 Kantorovich–Rubinstein 对偶 (6.1)。
- 会在一维用累积分布函数计算 W₁(两条曲线之间的面积),并把它读成「穿过每一点的净流量」。
- 理解欧氏空间中的一对局部形式:梯度约束 $\|\nabla f\|\le 1$ (6.3) 与 Beckmann 流 $\operatorname{div}(s)=\alpha-\beta$ (6.4),以及它们如何互相对应。
- 会把图上的 W₁ 写成最小费用流 (6.6) 与它的对偶 (6.5),理解「流只走绷紧的边」,以及为什么这比构造 $n\times n$ 的耦合省得多。
- W₁ 用距离本身作搬运代价($p=1$):它就是 Monge 1781 年的原问题,在图像检索里叫「地球移动距离」(EMD)。
- 与平方代价相比:最优耦合往往不唯一(因而不适合做测度插值),但对离群点和噪声更稳健,对偶形式也特别简单。
- 命题 6.1:当 $c=d$ 时,c-变换恰好产生所有 1-Lipschitz 函数,而且对它们有 $f^c=-f$——两个对偶势合并成一个。
- Kantorovich–Rubinstein 对偶:$\mathcal{W}_1(\alpha,\beta)=\max\int f\,\mathrm{d}(\alpha-\beta)$,$f$ 的坡度处处 $\le 1$。把 $f$ 想成地形:质量顺坡而下,沿实际路线坡度恰好为 1。
- 它只依赖差 $\alpha-\beta$,所以 $\mathcal{W}_1(\alpha,\beta)=\|\alpha-\beta\|_{\mathcal{W}_1}$ 是一个范数:两边加上相同的质量,距离不变;带符号的测度也能比较。
- 一维时 $\mathcal{W}_1=\int|C_\alpha-C_\beta|$:两条累积分布曲线之间的面积;差 $C_\alpha(x)-C_\beta(x)$ 正是向右穿过 $x$ 的净质量。
- 欧氏空间里约束可以局部化为 $\|\nabla f\|\le 1$;它的对偶是 Beckmann 流:在「散度 = $\alpha-\beta$」的流场中找总流量 $\int\|s\|$ 最小者。
- 图上:W₁ = 最小费用流,每条边只要一个流量变量(不必建 $n\times n$ 耦合);最优流只走 $|f_i-f_j|=w_{ij}$ 的「绷紧」边。
本章导读:当代价就是距离 Introduction
这一节要回答:为什么要专门拿出一章讨论「代价 = 距离」这种情形?它和前几章常用的平方代价有什么本质区别?
本章只讨论一种地面代价(ground cost):两点之间搬一单位质量的代价恰好等于一个距离 $d(x,y)$,而不是它的平方。对应的最优传输值记作 $\mathcal{W}_1(\alpha,\beta)$,它就是第 2 章 $p$-Wasserstein 距离 (2.17) 在 $p=1$ 时的特例:
也就是「每一单位质量付的钱 = 它走过的路程」,总账 = 质量 × 距离之和。
和平方代价(第 7 章会详细研究)相比,距离代价有得有失。下表把原书导言里的要点并排放在一起:
| 平方代价 $d^2$(W₂) | 距离代价 $d$(W₁,本章) | |
|---|---|---|
| 最优方案 | 两个绝对连续测度之间唯一(Brenier 定理,Rem. 2.24) | 一般不唯一,往往得不到唯一的 Monge 映射 |
| 测度插值 | 自然(位移插值) | 不适合(最优路线不唯一) |
| 离群点 / 噪声 | 远处的点按距离平方计费,影响被放大 | 线性计费,更稳健 |
| 对偶问题 | 两个势 $f,g$,靠 c-变换相连 | 只剩一个 1-Lipschitz 势 $f$;可改写成局部的流 / 散度约束 → 图上的最小费用流 |
| 代数结构 | 度量 | 范数 $\|\alpha-\beta\|$,连带符号的测度也能比较 |
| 理论分析 | 相对成熟 | 更难;最优映射的存在性与结构见 Sudakov (1979)、Evans & Gangbo (1999)、Trudinger & Wang (2001)、Caffarelli 等 (2002) |
先用一个经典的小例子直观感受第一行——为什么 W₁ 的最优方案常常不唯一。
书架上 $n$ 本书(每本质量 $1/n$)要整体向右挪一格。拖动 $t$:在「每本书右移一格」($t=0$) 与「只把最左边那本搬到最右边」($t=1$) 之间混合;右侧小图比较两种代价。点「播放搬运」看质量怎么走。
绿色的 W₁ 代价是一条水平线:「整体平移」「只搬一本」以及两者之间的任何混合都一样便宜(代价都是 1),最优方案有无穷多个。紫色的平方代价却随 $t$ 上升,只有 $t=0$ 的平移最优。书越多,「只搬一本」在平方代价下越贵(代价 $=n$),在 W₁ 下却始终是 1。
在书架例子里($n$ 本书整体右移一格),关于最优方案,下列哪项正确?
6.1 度量空间上的 W₁ W1 on Metric Spaces
这一节要回答:当代价 $c=d$ 是一个距离时,Kantorovich 对偶问题会变成什么样?答案出奇地干净:两个对偶势合并成一个 $f$,唯一的约束是「$f$ 的坡度不超过 1」。由此还能看出 W₁ 是一个范数,并在离散与一维情形得到非常简单的线性规划。
本节始终假设 $d$ 是空间 $\mathcal{X}=\mathcal{Y}$ 上的一个距离,求解地面代价为 $c(x,y)=d(x,y)$ 的最优传输问题。
Lipschitz 常数 Lipschitz Constant
函数 $f\in\mathcal{C}(\mathcal{X})$ 的 Lipschitz 常数是
满足 $\operatorname{Lip}(f)\lt+\infty$ 的函数称为 Lipschitz 函数(Lipschitz function),它们构成 $\mathcal{C}(\mathcal{X})$ 的一个凸子集。
- 到一个固定点的距离 $f(x)=d(x,x_0)$ 是 1-Lipschitz 的——这正是三角不等式 $|d(x,x_0)-d(y,x_0)|\le d(x,y)$。
- 在实轴上,$|x|$ 与 $\sin x$ 都是 1-Lipschitz 的;$2x$ 的 Lipschitz 常数是 2;$x^2$ 在整条实轴上不是 Lipschitz 函数(越往外越陡)。
命题 6.1:c-变换只留下 1-Lipschitz 函数 c-Transform When the Cost Is a Distance
回忆第 5 章的 c-变换(c-transform) (5.1):$f^c(y)=\inf_{x\in\mathcal{X}}\,c(x,y)-f(x)$。在对偶问题里,固定 $f$ 之后最优的第二个势就是 $f^c$,于是对偶问题可以只用一个势来写(单势形式 (5.4))。当代价是距离时,c-变换有一个特别漂亮的刻画:
设 $\mathcal{X}=\mathcal{Y}$,$c(x,y)=d(x,y)$。那么存在 $g$ 使 $f=g^c$,当且仅当 $\operatorname{Lip}(f)\le 1$。进一步,若 $\operatorname{Lip}(f)\le 1$,则 $$f^c=-f.$$
证明思路
核心想法:$\operatorname{Lip}(f)\le1$ 等价于一对不等式 $f(y)-d(x,y)\le f(x)\le f(y)+d(x,y)$;把它们代入 c-变换的定义,下确界恰好在 $x=y$ 处取到。
(⇒) 若 $f=g^c$,即 $f(x)=\inf_z\,[d(x,z)-g(z)]$。利用 $|\inf F-\inf G|\le\sup|F-G|$ 与三角不等式: $$|f(x)-f(y)|\le\sup_{z}\,|d(x,z)-d(y,z)|\le d(x,y),$$ 所以 $\operatorname{Lip}(f)\le1$。(一族 1-Lipschitz 函数的下确界仍是 1-Lipschitz 的。)
(⇐) 设 $\operatorname{Lip}(f)\le1$,取 $g=-f$。由左边的不等式,$g^c(y)=\inf_x[d(x,y)+f(x)]\ge\inf_x[d(x,y)+f(y)-d(x,y)]=f(y)$;而取 $x=y$ 又得 $g^c(y)\le f(y)$。所以 $f=g^c$。
$f^c=-f$:同理,$f^c(y)=\inf_x[d(x,y)-f(x)]\ge\inf_x[d(x,y)-f(y)-d(x,y)]=-f(y)$;取 $x=y$ 得 $f^c(y)\le-f(y)$。∎
- 若 $f$ 处处坡度 $\le 1$,每顶帐篷都在 $f$ 的下方(只在顶点处相碰),包络就是 $f$ 本身:$f^c=-f$。
- 若 $f$ 某处陡于 45°,陡坡顶上的帐篷就会探出来,把陡坡旁「垫」成坡度恰为 1 的斜面:此时 $-f^c$ 严格高于 $f$。
上下拖动蓝色圆点改变折线 $f$;左右拖动底部的橙色三角移动探针 $y$。上半部:灰色细线是从各折点挂下的「帐篷」,绿色虚线是帐篷的上包络 $-f^c$;比 45° 还陡的线段标成红色。下半部:红线是 $f^c$,蓝色点线是 $-f$。
选「平缓」时,所有帐篷都藏在 $f$ 下面,绿线与蓝线重合,下半部红线与蓝色点线重合:$f^c=-f$。选「有一段陡坡」,陡坡顶上的帐篷探出来,把左侧垫成坡度 1 的斜面(绿色阴影),$f^c$ 也随之低于 $-f$。点「把 $f$ 换成包络」后再看:包络已经是 1-Lipschitz 的,再做 c-变换就不再变化——这就是「只需改进一次」。
这个命题让对偶问题再简化一步。从单势形式 (5.4) 出发,可以把势对 $(g,g^c)$ 再「改进」一次换成 $(g^c,(g^c)^c)$。命题 6.1 说 $g^c$ 是 1-Lipschitz 的,于是 $(g^c)^c=-g^c$:势对变成 $(g^c,-g^c)$——也就等价于任意一对 $(f,-f)$,其中 $\operatorname{Lip}(f)\le1$。代入对偶目标 $\int f\,\mathrm{d}\alpha+\int g\,\mathrm{d}\beta$,就得到下面的 W₁ 公式。
设 $d(x,y)=|x-y|$,折线 $f$ 有一段斜率为 2。关于 $f^c$ 与 $-f$ 的关系,哪项正确?
Kantorovich–Rubinstein 对偶 Kantorovich–Rubinstein Duality
把势对 $(f,-f)$ 代入对偶问题,得到 W₁ 的另一种表达——Kantorovich–Rubinstein 对偶(Kantorovich–Rubinstein duality):
- 地形:把 $f$ 想成海拔。目标 $\int f\,\mathrm{d}\alpha-\int f\,\mathrm{d}\beta$ 希望 $\alpha$ 所在处尽量高、$\beta$ 所在处尽量低;但坡度不能超过 1,所以两处的落差不能超过它们的距离。最优时,质量顺着 $f$ 「下坡」流动,并且沿每一条实际搬运路线,坡度都顶到了 1。
- 定价:一家搬运公司给每个地点定价 $f$:在 $x$ 取件时收你 $f(x)$,在 $y$ 送达时退你 $f(y)$,每单位净收 $f(x)-f(y)$。要让顾客不如自己搬划算,必须 $f(x)-f(y)\le d(x,y)$ 对所有 $x,y$ 成立——这恰好就是 $\operatorname{Lip}(f)\le1$。公司总收入 $\int f\,\mathrm{d}\alpha-\int f\,\mathrm{d}\beta$ 最多能有多少?正是 $\mathcal{W}_1(\alpha,\beta)$。
设 $\alpha=\delta_x$,$\beta=\delta_y$。唯一的耦合把全部质量从 $x$ 搬到 $y$,所以 $\mathcal{W}_1=d(x,y)$。对偶一侧,取 $f(z)=d(z,y)$(到终点的距离,1-Lipschitz),则 $f(x)-f(y)=d(x,y)$,正好取到最大值。换句话说:质量沿着「到终点的距离」这片地形一路下坡,坡度处处是 1。
一维离散情形可以亲手玩一玩这个「最大化游戏」。下面的点 $z_1\lt\dots\lt z_8$ 上,差 $\alpha-\beta$ 的质量为 $m_k$(正 = $\alpha$ 多出来,负 = $\beta$ 多出来),你的任务是选势 $f_k$ 让 $\sum_k f_km_k$ 最大——这正是 6.1 节末尾的离散公式 (6.2)。
下方柱子是差 $\alpha-\beta$ 在各点的质量 $m_k$(蓝 = $\alpha$ 多,红 = $\beta$ 多)。上下拖动紫色圆点设定 $f_k$,让读数 $\sum_k f_km_k$ 尽量大;相邻两点的坡度不能超过 1,拖动时会像链条一样带动邻居。坡度顶到 1 的线段标成橙色;绿色箭头是穿过每个间隙的净质量。
想让 $\sum f_km_k$ 变大,就要把蓝柱处的 $f$ 抬高、红柱处压低,但坡度卡在 1。点「显示最优 $f$」:凡是有净质量越过的间隙(有绿色箭头),$f$ 的斜率都恰好是 $\mp1$(橙色),而且沿箭头方向下降;没有质量越过的间隙,斜率可以随意——所以最优 $f$ 一般不唯一,但最优值 W₁ 唯一,并与一维公式、Book.ot.emd1d 的结果一致。
为什么在 (6.1) 中只需要一个势 $f$(另一个取 $-f$)?
W₁ 是一个范数 W1 Is a Norm
仔细看 (6.1) 的右边:$\alpha$ 与 $\beta$ 只以差 $\alpha-\beta$ 的形式出现。因此
并且这个表达式对任何不必为正的测度(带符号测度(signed measure))都有效,只要 $\int_{\mathcal{X}}\alpha=\int_{\mathcal{X}}\beta$。这个范数常被称为 Kantorovich–Rubinstein 范数(Kantorovich–Rubinstein norm) [1958]。几个立刻可以读出来的推论:
- 共同质量不影响距离:对任意 $\gamma$,$\mathcal{W}_1(\alpha+\gamma,\beta+\gamma)=\mathcal{W}_1(\alpha,\beta)$。
- 只有「多出来的部分」需要搬:$\mathcal{W}_1(\alpha,\beta)=\mathcal{W}_1\big((\alpha-\beta)_+,(\alpha-\beta)_-\big)$,其中 $(\alpha-\beta)_+$、$(\alpha-\beta)_-$ 是差的正部与负部——两边共有的质量原地不动即可。
- 齐次与三角不等式:$\mathcal{W}_1(\lambda\alpha,\lambda\beta)=\lambda\,\mathcal{W}_1(\alpha,\beta)$($\lambda\ge0$);三角不等式直接来自范数的三角不等式。
上排是 $\alpha+\gamma$,中排(向下画)是 $\beta+\gamma$,灰色部分是共同的 $\gamma$;两排之间的绿线是一个搬运方案(线宽 ∝ 质量),最下排是差 $\alpha-\beta$。拖动滑块改变 $\gamma$ 的位置与质量,比较 W₁ 与平方代价。
无论把 $\gamma$ 放在哪里、放多少,W₁ 纹丝不动——最下排的差 $\alpha-\beta$ 也纹丝不动。平方代价却会变小:$\gamma$ 成了「中转站」,一次长途被拆成两段短途($2^2=4\gt1^2+1^2$)。切换到「直接搬」:它对 W₁ 仍然最优(代价相同),对平方代价则不是。
在实轴上 $\alpha=\delta_0$,$\beta=\delta_2$;再给两边都加上 $\gamma=\delta_1$。W₁ 与平方代价的最优值分别如何变化?
离散测度与一维情形 Discrete Measures and the 1-D Case
对离散测度(第 2 章 (2.1) 那样的 Dirac 之和),把差写成 $\alpha-\beta=\sum_k\mathbf{m}_k\delta_{z_k}$,其中 $z_k\in\mathcal{X}$、$\sum_k\mathbf{m}_k=0$($\mathbf{m}_k\gt0$ 表示 $\alpha$ 在该点多出来,$\lt0$ 表示 $\beta$ 多出来)。优化 (6.1) 就变成有限维问题:
原书称它为「带二次锥约束的有限维凸规划」,可以用内点法求解,或像后文处理类似问题那样用近端方法(proximal methods)。(注:(6.2) 的每个约束 $|\mathbf{f}_k-\mathbf{f}_\ell|\le d(z_k,z_\ell)$ 其实就是两个线性不等式;二阶锥约束 $\|\nabla f\|_2\le1$ 是在欧氏情形 (6.3) 离散化之后才出现的。)
(6.2) 有 $K^2$ 个约束。但在实轴上($\mathcal{X}=\mathbb{R}$,$d(x,y)=|x-y|$),把点排好序 $z_1\le z_2\le\cdots$,只需保留相邻点之间的约束:
这是一个线性规划。原因很简单:相邻约束一段段串起来,由三角不等式自动推出任意两点间的约束 $|\mathbf{f}_k-\mathbf{f}_\ell|\le\sum_{j=k}^{\ell-1}(z_{j+1}-z_j)=z_\ell-z_k$。(6.3 节在图上还会用同一个技巧:只需要「边」上的约束。)
一维还有闭式解,就是第 2 章的 (2.37):记 $C_\alpha(x)=\int_{-\infty}^x\mathrm{d}\alpha$ 为累积分布函数(cumulative distribution function),则
在上图中按住并左右拖动就能「画」直方图(先选画笔 α 或 β;计算时自动归一化为概率分布)。下图是累积分布 $C_\alpha$(蓝)与 $C_\beta$(红):绿色阴影的面积就是 W₁,箭头表示穿过该处的净流量方向。
阴影面积与 Book.ot.emd1d(单调重排,$p=1$)算出的最优代价始终相等。选「整体平移」:两条曲线形状相同、错开 $\Delta$,面积 = $\Delta$,就是平移距离。注意箭头:在蓝线高于红线的地方质量向右流,反之向左——同一个一维问题里,质量可以在不同位置朝不同方向流。
书架例子中 $\alpha$ 是 $\{0,\dots,n-1\}$ 上的均匀分布,$\beta$ 是 $\{1,\dots,n\}$ 上的均匀分布。在 $[0,n)$ 上 $C_\alpha(x)-C_\beta(x)$ 恒为 $1/n$,其余处为 0,面积 $=n\cdot\frac1n=1$。这正是「每个点都恰好有 $1/n$ 的质量越过」——无论哪本书去了哪里。
实轴上 $\alpha=\delta_0$,$\beta=\tfrac12\delta_1+\tfrac12\delta_3$。$\mathcal{W}_1(\alpha,\beta)$ 等于多少?
注记 6.1:$0\lt p\le1$ 的 Wp Wp with 0 < p ≤ 1
若 $0\lt p\le1$,则 $\tilde d(x,y)\overset{\text{def.}}{=}d(x,y)^p$ 满足三角不等式,因此 $\tilde d$ 本身也是一个距离。于是上面关于 W₁ 的全部结论与算法都可以直接拿来计算 $\mathcal{W}_p$:只要把 $d$ 换成 $\tilde d$。等价地说,$\mathcal{W}_p$ 是 p-Hölder 函数(p-Hölder functions) $\{f:\operatorname{Lip}_p(f)\le1\}$ 的对偶,其中
(对 $p\le1$,通常直接把最优代价 $\mathcal{L}_{d^p}$ 本身记作 $\mathcal{W}_p$,不再开 $1/p$ 次方——它已经满足三角不等式。)
- 命题 6.1:距离代价下 c-变换 ⇔ 1-Lipschitz,且 $f^c=-f$;对偶只剩一个势 $f$。
- KR 对偶 (6.1):$\mathcal{W}_1=\max\{\int f\,\mathrm{d}(\alpha-\beta):\operatorname{Lip}(f)\le1\}$;它只看差,所以是范数,可比较带符号测度。
- 离散 (6.2) 是有限维规划;一维只需相邻约束,且有闭式解 $\int|C_\alpha-C_\beta|$(= 净流量的积分)。
- 注记 6.1:$0\lt p\le1$ 时把 $d$ 换成 $d^p$,一切照搬。
6.2 欧氏空间上的 W₁ W1 on Euclidean Spaces
这一节要解决:在 $\mathbb{R}^d$ 中,「任意两点之间坡度 $\le1$」要对无穷多对点逐一检查,能不能换成逐点的条件?可以——换成「每一点的梯度长度 $\le1$」。再对它取对偶,就得到一个关于流场的问题:Beckmann 形式。它把「谁搬给谁」这种全局配对问题,变成了「每个地方流量多大、往哪流」这种局部问题。
局部化:梯度不超过 1 Gradient Constraint
在欧氏空间 $\mathcal{X}=\mathcal{Y}=\mathbb{R}^d$ 上取 $c(x,y)=\|x-y\|$,(6.1) 中全局的 Lipschitz 约束可以改写成对 $f$ 的梯度的一致界:
这里 $\|\nabla f\|_\infty\le1$ 的意思是:在每一点 $x$,梯度的欧氏长度 $\|\nabla f(x)\|_2\le1$——站在任何地方,最陡方向上的坡度也不超过 1。
为什么「全局」与「逐点」等价
逐点 ⇒ 全局:若处处 $\|\nabla f\|\le1$,沿线段从 $y$ 走到 $x$ 积分:$|f(x)-f(y)|=\left|\int_0^1\langle\nabla f(y+t(x-y)),\,x-y\rangle\,\mathrm{d}t\right|\le\|x-y\|$。这里用到了:$\mathbb{R}^d$ 中两点之间的直线段就是最短路(测地线)。
全局 ⇒ 逐点:若 $\operatorname{Lip}(f)\le1$,则沿任何单位方向 $u$ 的方向导数 $|\langle\nabla f(x),u\rangle|\le1$;取 $u=\nabla f(x)/\|\nabla f(x)\|$ 即得 $\|\nabla f(x)\|\le1$。(对不可微的 $f$ 还需要一点技术细节,这里略过。)
Beckmann 形式:流与散度 Beckmann Formulation
对 (6.3) 取对偶,得到一个在固定散度约束下的优化问题:
它常被称为 Beckmann 形式(Beckmann formulation) [Beckmann, 1952]。
- 散度(divergence) $\operatorname{div}(s)(x)$ 是 $x$ 处的「净流出」。约束 $\operatorname{div}(s)=\alpha-\beta$ 说:$\alpha$ 所在处是源(质量流出),$\beta$ 所在处是汇(质量流入)。
- 在两个测度的支撑之外,$\operatorname{div}(s)=0$:流进多少就流出多少——这就是质量守恒(conservation of mass)约束。
- 目标 $\int\|s\|$ 是总流量,相当于「质量 × 路程」的总和。一维时 $\operatorname{div}(s)=s'$,唯一的可行流就是 $s=C_\alpha-C_\beta$,(6.4) 退化成 (2.37)。
为什么 (6.4) 是 (6.3) 的对偶(核心只有一行)
对任意满足 $\operatorname{div}(s)=\alpha-\beta$ 的流 $s$ 和任意 $\|\nabla f\|\le1$ 的 $f$,分部积分(散度定理)给出
$$\int f\,\mathrm{d}(\alpha-\beta)=\int f\operatorname{div}(s)\,\mathrm{d}x=-\int\langle\nabla f,s\rangle\,\mathrm{d}x\le\int\|\nabla f\|\,\|s\|\,\mathrm{d}x\le\int\|s\|\,\mathrm{d}x.$$所以 (6.3) 的值 $\le$ (6.4) 的值(弱对偶);强对偶说两者相等。等号成立的条件就是互补松弛:在有流的地方,$s$ 必须与 $-\nabla f$ 同向,并且 $\|\nabla f\|=1$——质量沿着 $f$ 最陡的下坡方向流,坡度恰为 1。这正是 6.1 节「地形」直觉的精确版本,也和 6.3 节图上的「流只走绷紧的边」一一对应。
拖动蓝点(α,每点质量 1/4)与红点(β,每点质量 1/4)。紫色深浅与细等高线是最优势 $f$ 的地形(颜色越深越高,等高线间隔 0.5),绿色箭头是最优方案拼成的流(线宽 ∝ 质量)。拖动橙色虚线圈中心的小方块,读数比较「流出圆的净通量」与「圆内 α − β 的质量」。
绿色箭头总是垂直穿过等高线,而且沿箭头方向每走 0.5 就恰好跨过一条等高线:流沿最陡的下坡走,坡度恰为 1(互补松弛)。把检测圈只套住一个蓝点:净流出 = 1/4;套住一蓝一红:净流出 = 0;放在空白处:流进多少就流出多少,净通量为 0——这就是 $\operatorname{div}(s)=\alpha-\beta$。读数里原始值 $\sum P\|x-y\|$ 与对偶值始终相等。(这里画的势是 $f=g^c$ 形式,恰好处处坡度为 1;约束只要求 $\le1$,真正必须「绷紧」的只是有流经过的地方。)
Beckmann 形式 (6.4) 中,在 $\alpha$ 与 $\beta$ 的支撑之外 $\operatorname{div}(s)$ 等于多少?它代表什么?
数值求解与近似 Numerical Methods and Approximations
用有限元等方法恰当离散之后,(6.3) 与 (6.4) 都是非光滑凸优化问题。可以直接调用现成的内点法二次锥规划求解器,但正如 §7.3 所提倡的,大规模问题更适合简单而贴合结构的一阶方法,例如 Douglas–Rachford (DR) 迭代 (7.14) 或与之密切相关的交替方向乘子法(ADMM)。在均匀网格上,投影到散度约束 $\{\operatorname{div}(s)=\alpha-\beta\}$ 可以借助快速傅里叶变换(FFT)高效完成。Solomon 等 [2014a] 详细介绍了这些方法及其在三角网格上的应用;Li 等 [2018a]、Ryu 等 [2017b,a] 用原始-对偶分裂得到类似的方案。
另一条路是放松对 $f$ 的 Lipschitz 约束以得到近似:例如约束 $f$ 的小波系数,可以得到显式公式 [Shirdhonkar & Jacobs, 2008];或者只考虑用「整流线性」$\max(0,\cdot)$ 激活、并截断(clip)权重的多层神经网络来参数化 $f$ [Arjovsky et al., 2017]。
- 欧氏空间中,全局的 $\operatorname{Lip}(f)\le1$ 等价于逐点的 $\|\nabla f(x)\|\le1$ (6.3)。
- 它的对偶是 Beckmann 流 (6.4):$\min\int\|s\|$,$\operatorname{div}(s)=\alpha-\beta$;支撑之外质量守恒。
- 互补松弛:有流处 $s\parallel-\nabla f$ 且 $\|\nabla f\|=1$;最优流可以由最优方案的「直管道」叠加而成。
- 离散后是非光滑凸优化:内点法、DR / ADMM、FFT 投影;近似方法有小波与 WGAN。
6.3 图上的 W₁ W1 on a Graph
这一节要解决:当空间本身是一张图(道路网、像素网格、三角网格),距离是最短路长度时,能不能不去构造 $n\times n$ 的耦合矩阵,只在边上「局部地」计算 W₁?可以——把梯度与散度搬到图上,(6.3)(6.4) 就变成一对线性规划,其中 (6.6) 正是运筹学里经典的最小费用流问题。
测地距离:图上的最短路 Geodesic Distance on a Graph
公式 (6.3)(6.4) 可以推广到 $\mathcal{X}$ 是测地空间(geodesic space)的情形,即 $c(x,y)=d(x,y)$ 是测地距离(两点之间最短曲线的长度);$\mathcal{X}$ 为黎曼流形时的理论分析见 Feldman & McCann [2002]。当 $\mathcal{X}=\llbracket1,n\rrbracket$ 是一个离散集合,配有无向边 $(i,j)\in\mathcal{E}\subset\mathcal{X}^2$、每条边标有权重(长度)$\mathbf{w}_{i,j}$ 时,就得到一个重要情形:$\mathcal{X}$ 是一张图,配备测地距离(最短路距离)(geodesic distance / shortest path metric):
其中 $i\to j$ 表示 $i_1=i$、$i_K=j$,即路径从 $i$ 出发、到 $j$ 结束。
考虑两个向量 $(\mathbf{a},\mathbf{b})\in(\mathbb{R}^n)^2$,它们定义图上的(带符号的)离散测度,满足 $\sum_i\mathbf{a}_i=\sum_i\mathbf{b}_i$(这些权重不必为正)。目标是计算以最短路距离为地面度量的 $\mathrm{W}_1(\mathbf{a},\mathbf{b})$(即 (2.17) 取 $p=1$、$C=\mathbf{D}$)。关键在于:不要去算完整的 $n\times n$ 耦合 $\mathbf{P}$,而是借助图的连通结构,只用局部算子——梯度与散度这两个微分算子的离散版本。
图上的梯度与散度 Gradient and Divergence on a Graph
离散的对偶 Kantorovich 势 $\mathbf{f}\in\mathbb{R}^n$ 是定义在所有顶点上的向量。梯度算子(gradient operator) $\nabla:\mathbb{R}^n\to\mathbb{R}^{\mathcal{E}}$ 定义为
流(flow) $\mathbf{s}=(\mathbf{s}_{i,j})_{i,j}$ 定义在边上:每条无向边看成方向相反的两条有向边,各带一个非负流量,$\mathbf{s}_{i,j}$ 是从 $i$ 流向 $j$ 的量。散度算子(divergence operator) $\operatorname{div}:\mathbb{R}^{\mathcal{E}}\to\mathbb{R}^n$ 是梯度的伴随,它把流映成顶点上的向量:
最小费用流 Min-Cost Flow
有了这两个局部算子,(6.3) 在图上变成
与之相伴的对偶问题(对应 (6.4))是
- (6.5) 只要边约束就够了:和一维「只需相邻约束」一样,沿最短路把边上的约束一段段串起来,就得到任意两点之间 $|\mathbf{f}_i-\mathbf{f}_j|\le\mathbf{D}_{i,j}$——恰是 (6.2) 以 $\mathbf{D}$ 为距离时的全部 $n^2$ 个约束。
- (6.6) 是图上的 Beckmann 形式:找一个非负流,使每个点「净流出 = 供给 − 需求」,并让「流量 × 边长」的总和最小。它是一个线性规划,更确切地说是最小费用流(min-cost flow)问题的一个实例。针对它已有非常高效的专用单纯形求解器(例如 [Ling & Okada, 2007])。(6.6) 正是所谓的 Beckmann 形式 [Beckmann, 1952],它还被推广用来定义和研究交通拥堵模型(例如 [Carlier et al., 2008])。
四种视角,同一个小例子 Four Views of One Example
下面用一张 9 个点的小图,把本章的各种视角放在一起对照:传输(谁搬给谁)、流(每条路上走多少)、势(每个点的海拔),以及把它们连起来的互补松弛。
第 1 步 · 问题
A、C 两处各有 ½ 的沙($\mathbf{a}$,蓝),H、I 两处各需要 ½($\mathbf{b}$,红)。边上的数字是长度 $\mathbf{w}_{i,j}$(图上画的长短只是示意)。目标:以最短路距离为代价,求 $\mathrm{W}_1(\mathbf{a},\mathbf{b})$。
第 2 步 · 传输视角 (2.17):谁搬给谁
先算最短路距离:$\mathbf{D}_{AH}=8$、$\mathbf{D}_{AI}=7$、$\mathbf{D}_{CH}=8$、$\mathbf{D}_{CI}=7$。耦合「A→H ½、C→I ½」(实线)代价 $\tfrac12\cdot8+\tfrac12\cdot7=7.5$;交换目的地「A→I ½、C→H ½」(虚线)代价 $\tfrac12\cdot7+\tfrac12\cdot8=7.5$——同样最优,耦合又一次不唯一。这个视角需要整张距离表 $\mathbf{D}$ 与 $9\times9=81$ 个耦合变量。
第 3 步 · 把每笔运输摊到路上
A→H 沿最短路 A–D–G–H,C→I 沿 C–B–D–G–I。把两条路线在每条边上的流量叠加,就得到边上的流 $\mathbf{s}$;两条路线在 D–G 这座「桥」上汇合,那里的流量是 1。若换成另一个最优耦合(A→I、C→H),路线是 A–D–G–I 与 C–B–D–G–H,叠加出来的流一模一样。
第 4 步 · 流视角 (6.6):只看边
只保留流:A→D ½,C→B ½,B→D ½,D→G 1,G→H ½,G→I ½。核对散度:中间点 D 流入 ½ + ½、流出 1,净流出 0 ✓;A 净流出 ½ = $\mathbf{a}_A$ ✓;I 净流出 −½ = $-\mathbf{b}_I$ ✓。代价 $\sum\mathbf{w}\mathbf{s}=3\cdot\tfrac12+1\cdot\tfrac12+2\cdot\tfrac12+2\cdot1+3\cdot\tfrac12+2\cdot\tfrac12=7.5$ ✓。流视角「忘掉了」哪粒沙去了哪里——正是这份冗余造成了耦合的不唯一,而流本身在这里是唯一的。
第 5 步 · 对偶视角 (6.5):给每个点一个海拔
取 $\mathbf{f}$ = (A 8, B 7, C 8, D 5, E 5, F 2, G 3, H 0, I 1)(紫色数字)。每条边上都有 $|\mathbf{f}_i-\mathbf{f}_j|\le\mathbf{w}_{i,j}$(例如 A–B:$|8-7|=1\le2$;E–I:$|5-1|=4\le5$)。对偶值 $\sum_i\mathbf{f}_i(\mathbf{a}_i-\mathbf{b}_i)=\tfrac12\cdot8+\tfrac12\cdot8-\tfrac12\cdot0-\tfrac12\cdot1=7.5$ ✓——三种视角给出同一个数。
第 6 步 · 互补松弛:流只走绷紧的边
橙色是绷紧边(落差 = 边长)。每条有流的边都是绷紧的,并且沿流向下降:A(8)→D(5) 落差 3 = w,D(5)→G(3) 落差 2 = w,G(3)→H(0) 落差 3 = w……而 C–E、B–E、D–F 虽然绷紧却没有流:绷紧是有流的必要条件,不是充分条件。
看懂了这个例子,就可以自己动手改:换供需、改边长,观察流如何绕路、势如何变化,以及结果如何与「构造完整耦合」的做法对上。
先在「点击操作」里选一种操作,再点图中的点或边:给某点加一份 α(供给,蓝)或 β(需求,红)、清空某点,或让某条边的长度循环 1→2→…→6。α、β 各自自动归一化为总质量 1,点下方的数字是净供给 $\mathbf{a}_i-\mathbf{b}_i$。绿色箭头是 (6.6) 的最优流,紫色数字是 (6.5) 的最优势,橙色是绷紧边。
三个数永远相等:图上的最小费用流 $\sum\mathbf{w}\mathbf{s}$(只用边变量)、对偶值 $\sum\mathbf{f}(\mathbf{a}-\mathbf{b})$、以及 Book.ot.emd 在最短路距离矩阵 $\mathbf{D}$ 上解出的完整耦合的代价。把 D–G 这座「桥」的长度调大,流会改走 D–F–H 或 E–G 等路线;把 A、H 各加一份再清空,结果只取决于净供给 $\mathbf{a}-\mathbf{b}$——W₁ 是范数。
| 传输视角 (2.17) | 流视角 (6.6) | |
|---|---|---|
| 未知量 | 耦合 $\mathbf{P}$:$n\times n$ 个数 | 每条有向边一个流量:$2|\mathcal{E}|$ 个数 |
| 预处理 | 先算全部最短路距离 $\mathbf{D}$($n\times n$) | 不需要,只用边长 $\mathbf{w}$ |
| 上面的小图($n=9$,$|\mathcal{E}|=16$) | 81 | 32 |
| $N\times N$ 像素网格(4 邻接) | $N^4$($N=100$ 时 $10^8$) | 约 $4N^2$($N=100$ 时 $4\times10^4$) |
在图上的最优解中,若有向边 $(i,j)$ 上的流量 $\mathbf{s}_{i,j}\gt0$,那么最优势 $\mathbf{f}$ 满足什么?
原书图 6.1 Figure 6.1
原书图 6.1 在一张均匀权重($\mathbf{w}_{i,j}=1$)的平面图上计算 $\mathrm{W}_1(\mathbf{a},\mathbf{b})$。左:(6.5) 的解 $\mathbf{f}$,边的绿色深浅正比于 $|(\nabla\mathbf{f})_{i,j}|$;右:(6.6) 的解 $\mathbf{s}$,粗线是非零的 $\mathbf{s}_{i,j}$,这些边都达到饱和 $|(\nabla\mathbf{f})_{i,j}|=\mathbf{w}_{i,j}=1$。右图中的饱和流边与左图中 $|(\nabla\mathbf{f})_{i,j}|=1$ 的最亮绿边一一对应。下面用随机生成的平面图重现它:
随机生成一张平面三角网格图(边权默认全为 1,与原书相同);左侧若干蓝点是供给 $\mathbf{a}$,右侧若干红点是需求 $\mathbf{b}$(点越大质量越多)。左图:节点颜色表示势 $\mathbf{f}$(越蓝越高、越红越低),边的绿色深浅 ∝ $|(\nabla\mathbf{f})_{i,j}|/\mathbf{w}_{i,j}$;右图:粗线是有流的边(线宽 ∝ 流量)。
右图每一条粗线,在左图中都是最亮的绿边($|\nabla\mathbf{f}|=\mathbf{w}$);反过来却不成立——左图有许多亮绿边上并没有流。势从供给侧向需求侧逐层下降,流沿着「最陡的下坡」汇聚与分叉。切换到「欧氏长度」,最短路更接近直线,流也更「直」。(配色约定:本章中蓝 = 供给 $\mathbf{a}$ / 势高,红 = 需求 $\mathbf{b}$ / 势低;原书图的配色不同,但图案的对应关系一致。)
一张图有 $n=1000$ 个节点,每个节点大约连 4 条边。用 (6.6) 的边变量代替完整耦合 $\mathbf{P}$,未知量的个数大约从多少降到多少?
- 图 + 最短路距离是测地空间的离散例子;W₁ 可以只用局部算子(边上的梯度、点上的散度)来写。
- (6.5):点上的势,边上的约束 $|\mathbf{f}_i-\mathbf{f}_j|\le\mathbf{w}_{i,j}$;(6.6):边上的非负流,点上的约束 $\operatorname{div}\mathbf{s}=\mathbf{a}-\mathbf{b}$,即最小费用流。
- 互补松弛:流只走绷紧的边,并沿流向下降;不同的最优耦合可以对应同一个流。
- 变量从 $n^2$ 降到 $2|\mathcal{E}|$,且无需预先计算最短路距离;可用专用网络单纯形法高效求解。
本章小结
- W₁ = 代价取距离本身的最优传输(Monge 的原问题、图像检索中的 EMD)。与平方代价相比:最优耦合往往不唯一(不适合插值),对离群点更稳健,对偶形式特别简单。
- 命题 6.1:$c=d$ 时,c-变换的结果恰是 1-Lipschitz 函数,且 $f^c=-f$;对偶问题只剩一个势。
- KR 对偶 (6.1):$\mathcal{W}_1=\max\{\int f\,\mathrm{d}(\alpha-\beta):\operatorname{Lip}(f)\le1\}$。它只看差,所以 W₁ 是范数,可比较带符号测度(总质量须相等);这是第 8 章「对偶范数」的原型。
- 离散与一维:(6.2) 是有限维规划;一维只需相邻约束,并有闭式解 $\int|C_\alpha-C_\beta|$ (2.37),$C_\alpha-C_\beta$ 就是净流量。注记 6.1:$0\lt p\le1$ 时把 $d$ 换成 $d^p$,一切照搬。
- 欧氏空间:约束局部化为 $\|\nabla f\|\le1$ (6.3),对偶是 Beckmann 流 (6.4):$\min\int\|s\|$,$\operatorname{div}(s)=\alpha-\beta$。数值上用内点法、DR / ADMM、FFT 投影;近似方法有小波与 WGAN。
- 图:(6.5) 点上的势 + 边上的约束,(6.6) 边上的流 + 点上的约束(最小费用流);只需 $2|\mathcal{E}|$ 个变量。互补松弛:流只走绷紧的边,沿流向 $f$ 下降一个边长。
四种视角对照
| 视角 | 未知量 | 约束 | 目标 | 原书 |
|---|---|---|---|---|
| 传输(Kantorovich) | 耦合 $P$:每对点一个数 | 两个边缘分布为 $\alpha,\beta$ | $\min\sum P_{ij}\,d(x_i,y_j)$ | (2.17) $p=1$ |
| 对偶势(KR) | 势 $f$:每个点一个数 | $\operatorname{Lip}(f)\le1$;欧氏:$\|\nabla f\|\le1$;图:$|f_i-f_j|\le w_{ij}$ | $\max\int f\,\mathrm{d}(\alpha-\beta)$ | (6.1)(6.2)(6.3)(6.5) |
| 流(Beckmann) | 流 $s$:每点一个向量 / 每条边一个数 | $\operatorname{div}(s)=\alpha-\beta$ | $\min\int\|s\|$ 或 $\min\sum w_{ij}s_{ij}$ | (6.4)(6.6) |
| 一维闭式解 | 累积分布 $C_\alpha,C_\beta$ | — | $\int|C_\alpha-C_\beta|$($=\int|s|$) | (2.37) |
它们如何对上:把耦合中的每一笔运输沿最短路(欧氏空间中就是直线段)摊开并叠加,就得到流;最优时流沿着势 $f$ 最陡的下坡方向走、坡度恰为 1(互补松弛);三个最优值相等(强对偶)。不同的最优耦合可以摊出同一个流——流视角去掉了「哪粒沙去哪里」的冗余。
术语卡片 Key Terms
自测
前面各节已经穿插了 8 道题,这里再补 4 道综合题。
$n$ 个等质量的点中,有一个被噪声甩到了距离 $L$ 之外($L$ 很大)。与原来的点云相比,W₁ 与 W₂ 大约是多少?
下列哪个 $p$ 可以把 $d$ 换成 $d^p$,直接套用 (6.1) 与图上的最小费用流算法来计算 $\mathcal{W}_p$?
若 $\alpha$ 与 $\beta$ 的总质量不相等,(6.1) 右边的上确界是多少?
在 $\mathbb{R}^d$ 中,(6.3) 的约束 $\|\nabla f\|_\infty\le1$ 的准确含义是?
习题
原书没有习题,以下为根据本章内容自拟,每题附提示与参考解答。
提示
(b) 所有 $y_j$ 都在所有 $x_i$ 的右边,于是 $|x_i-y_j|=y_j-x_i$,代价是线性函数,可以按行、按列分别求和。(c) 把耦合写成 $\begin{bmatrix}t & \tfrac12-t\\ \tfrac12-t & t\end{bmatrix}$。参考解答
(a) $C_\alpha-C_\beta$ 在 $[0,1)$ 上为 $\tfrac12$,在 $[1,2)$ 上为 $1$,在 $[2,3)$ 上为 $\tfrac12$,其余为 0,面积 $=\tfrac12+1+\tfrac12=2$。
(b) 对任意耦合 $P$:$\sum_{ij}P_{ij}(y_j-x_i)=\sum_j b_jy_j-\sum_i a_ix_i=2.5-0.5=2$,与 $P$ 无关。所以每个耦合都达到最小值 2。(一般地:若 $\alpha$ 整体在 $\beta$ 左边,W₁ = 两个均值之差,任何耦合都最优。)
(c) 按提示,代价 $=4t+9(\tfrac12-t)+1\cdot(\tfrac12-t)+4t=5-2t$,在 $t=\tfrac12$ 取最小值 4:单调耦合 $0\to2$、$1\to3$ 唯一最优,$\mathcal{W}_2=2$。
提示
对同一个 1-Lipschitz 的 $f$,把 $\int f\,\mathrm{d}(\alpha-\gamma)$ 拆成两项;再对 $f$ 取最大值。参考解答
(a) 对任意 $\operatorname{Lip}(f)\le1$:$\int f\,\mathrm{d}(\alpha-\gamma)=\int f\,\mathrm{d}(\alpha-\beta)+\int f\,\mathrm{d}(\beta-\gamma)\le\mathcal{W}_1(\alpha,\beta)+\mathcal{W}_1(\beta,\gamma)$;左边对 $f$ 取最大即得。
(b) $(\alpha+\gamma)-(\beta+\gamma)=\alpha-\beta$,(6.1) 的目标函数完全相同,最大值自然相同。
(c) $\int f\,\mathrm{d}(\lambda\alpha-\lambda\beta)=\lambda\int f\,\mathrm{d}(\alpha-\beta)$,约束不变,最大值乘以 $\lambda$。三条合起来就是「$\|\alpha-\beta\|_{\mathcal{W}_1}$ 是范数」的主要内容。
提示
先证 $s,t\ge0$ 时 $(s+t)^p\le s^p+t^p$:两边同除以 $(s+t)^p$,利用 $u\in[0,1]$ 时 $u^p\ge u$。参考解答
设 $s+t\gt0$,令 $u=s/(s+t)\in[0,1]$。由 $p\le1$ 得 $u^p\ge u$、$(1-u)^p\ge1-u$,相加得 $u^p+(1-u)^p\ge1$,即 $s^p+t^p\ge(s+t)^p$。于是 $d(x,z)^p\le(d(x,y)+d(y,z))^p\le d(x,y)^p+d(y,z)^p$(第一步用了 $t\mapsto t^p$ 单调递增)。对称性与正定性显然,所以 $\tilde d$ 是距离。
反例:直线上 $x=0,y=1,z=2$,$p=2$ 时 $d(x,z)^2=4\gt1+1$。这说明对平方代价,「一次走完」比「经过中转分两段走」更贵——因此加上共同质量 $\gamma$(充当中转站)会让 W₂ 变小,W₂ 不是 $\alpha-\beta$ 的范数。
提示
(a) 在树上,流由散度约束唯一确定:从叶子开始逐点「结账」。(c) 比较 $\mathbf{D}_{14}$ 的新旧值,并试着让质量走捷径。参考解答
(a) 净供给 $\mathbf{m}=(\tfrac12,\tfrac12,-\tfrac12,-\tfrac12)$。点 1 只能经边 1→2 送出 $\tfrac12$;点 2 于是有 $1$ 要送出,走 2→3;点 3 留下 $\tfrac12$,其余 $\tfrac12$ 走 3→4。代价 $1\cdot\tfrac12+2\cdot1+1\cdot\tfrac12=3$,所以 $\mathrm{W}_1=3$。
(b) 有流的边必须绷紧:$\mathbf{f}_1-\mathbf{f}_2=1$,$\mathbf{f}_2-\mathbf{f}_3=2$,$\mathbf{f}_3-\mathbf{f}_4=1$,取 $\mathbf{f}=(4,3,1,0)$。对偶值 $\tfrac12\cdot4+\tfrac12\cdot3-\tfrac12\cdot1-\tfrac12\cdot0=3$ ✓。
(c) 现在 $\mathbf{D}_{14}=3\lt4$。最优流:1→4 送 $\tfrac12$(代价 1.5),2→3 送 $\tfrac12$(代价 1),共 $\mathrm{W}_1=2.5$。验证:取 $\mathbf{f}=(3,2,0,0)$,各边 $|\Delta\mathbf{f}|\le w$(1–2:1 ≤ 1,2–3:2 ≤ 2,3–4:0 ≤ 1,1–4:3 ≤ 3),有流的 1→4、2→3 都绷紧,对偶值 $\tfrac12\cdot3+\tfrac12\cdot2=2.5$ ✓。(可以在上面的图演示里搭一个类似的小例子验证。)
提示
沿一条最短路 $i=i_1,i_2,\dots,i_K=j$ 用三角不等式。参考解答
$|\mathbf{f}_i-\mathbf{f}_j|\le\sum_{k=1}^{K-1}|\mathbf{f}_{i_k}-\mathbf{f}_{i_{k+1}}|\le\sum_{k=1}^{K-1}\mathbf{w}_{i_k,i_{k+1}}=\mathbf{D}_{i,j}$。反过来,(6.2) 的约束对相邻点 $(i,j)\in\mathcal{E}$ 给出 $|\mathbf{f}_i-\mathbf{f}_j|\le\mathbf{D}_{i,j}\le\mathbf{w}_{i,j}$,也就是 (6.5) 的约束,所以两组约束定义同一个可行集,目标又相同,二者等价。一维排好序的点构成一条路径图,边长为相邻间距,这就是「只需相邻约束」。
提示
对 $s'=\alpha-\beta$ 从 $-\infty$ 积分到 $x$;再检查 $x\to+\infty$ 时的值。参考解答
由 $s(-\infty)=0$ 积分得 $s(x)=\int_{-\infty}^x\mathrm{d}(\alpha-\beta)=C_\alpha(x)-C_\beta(x)$;因为 $\alpha,\beta$ 总质量相同,$s(+\infty)=0$ 也自动满足。可行流唯一,(6.4) 的最小值就是 $\int|s|=\int|C_\alpha-C_\beta|$,即 (2.37)/(2.38)。$s(x)\gt0$ 表示有净质量从左向右越过 $x$,$s(x)\lt0$ 表示向左。
提示
对 $d(x_1,y_2)$ 与 $d(x_2,y_1)$ 分别用经过 $z$ 的三角不等式,然后重新组合四段距离。参考解答
$d(x_1,y_2)+d(x_2,y_1)\le[d(x_1,z)+d(z,y_2)]+[d(x_2,z)+d(z,y_1)]=[d(x_1,z)+d(z,y_1)]+[d(x_2,z)+d(z,y_2)]=d(x_1,y_1)+d(x_2,y_2)$。所以交换后的代价不超过原方案;若原方案最优,交换后也最优。这正是「四种视角」例子中的现象:两条路线在 D–G 这座桥上汇合,于是 A→H、C→I 与 A→I、C→H 同样最优,耦合不唯一,而摊到边上的流完全相同。平方代价不满足「路程可加」:$(a+b)^2\ne a^2+b^2$,拆分重组后代价一般会变,所以 W₂ 通常有唯一的(不交叉的)最优方案。
提示
在四邻接网格上走「楼梯」;八邻接时先走对角、再走直线。参考解答
四邻接网格上的最短路长度是 $|\Delta x|+|\Delta y|$,所以算出的是以 $L^1$(曼哈顿)距离为地面距离的 W₁——各向异性,沿对角线的搬运被高估了 $\sqrt2$ 倍。加入对角边后最短路长度是 $\max(|\Delta x|,|\Delta y|)+(\sqrt2-1)\min(|\Delta x|,|\Delta y|)$(八边形度量),与欧氏距离的相对误差最大约 8%(在 22.5° 方向),仍然各向异性,且不会随网格加密而消失。若要逼近欧氏 W₁,就在每个格点用流向量的欧氏长度 $\|s(x)\|_2$ 计费——这正是 (6.4) 的离散化,约束中出现二阶锥,于是需要内点法或 DR / ADMM 等一阶方法(§6.2)。
动态形式 Dynamic Formulations
换一个角度看最优传输:不再问「谁和谁配对」,而是问「质量怎样随时间流动才最省力」。答案出奇地简单——每一粒沙子都走匀速直线。这就是 Benamou–Brenier 的动态形式:它把 W₂ 写成流体力学里的最小动能问题,并由此带来网格上的凸优化算法、非平衡传输和薛定谔桥。
- 用「质量流动」的语言解释 Benamou–Brenier 公式:连续性方程管质量守恒,动能管代价。
- 理解为什么要换元 $J=\alpha v$,以及函数 $\theta(a,b)=\|b\|^2/a$ 的凸性、1-齐次性和「没有质量就不能有通量」。
- 会计算一维与离散测度的位移插值(McCann 插值),并能把它和线性混合 $(1-t)\alpha_0+t\alpha_1$ 区分开。
- 看懂交错网格上的离散化 (7.10)–(7.11),以及 Douglas–Rachford 分裂中每个近端算子在做什么。
- 理解三种推广:加源项的非平衡 OT(WFR)、更一般的迁移率 $a^{s-p}\|b\|^p$、路径空间上的 OT 与薛定谔桥。
- 动态视角:让质量在时间 $t\in[0,1]$ 内连续流动;$\mathcal W_2^2$ 等于所有「质量守恒的流动」中最小的总动能 $\int_0^1\!\int\|v_t\|^2\mathrm d\alpha_t\,\mathrm dt$(Benamou–Brenier 公式 (7.2))。
- 最省力的流动:每个粒子从起点匀速直线走到它在最优传输中的终点——这就是位移插值(McCann 插值);一维时就是把分位数函数做线性插值 (7.7)。
- 凸化:用动量 $J=\alpha v$ 代替速度,约束 $\partial_t\alpha+\operatorname{div}J=0$ 变成线性,代价 $\theta(\alpha,J)=\|J\|^2/\alpha$ 联合凸且 1-齐次,整个问题成为凸优化 (7.3)–(7.5)。
- 离散与求解:在交错网格上离散(密度与通量错开半格),再用 Douglas–Rachford 近端分裂:每步逐点解一个三次方程、再解一个 Poisson 方程 (7.11)–(7.14)。
- 非平衡:给连续性方程加源项 $s$,并同样用 $\theta$ 给它定价,得到 Wasserstein–Fisher–Rao 距离;权重 $\tau$ 决定质量是被「搬过去」还是「原地消失、在目标处长出来」(7.15)。
- 换迁移率:$\theta(a,b)=a^{s-p}\|b\|^p$。$s=1$ 给出 $\mathcal W_p$;$s=p$ 给出对偶 Sobolev 范数($p=2$ 时为 $H^{-1}$),极限情形回到第 6 章的 $\mathcal W_1$ (7.16)。
- 路径空间:OT = 在「所有轨迹」上找一个概率分布;熵正则 OT = 布朗运动的薛定谔桥——轨迹是抖动的布朗桥,$\varepsilon\to0$ 时被拉直成线段 (7.17)–(7.20)。
本章讨论代价为测地距离平方(在 $\mathbb R^d$ 中就是 $\|x-y\|^2$)时 OT 的测地(也叫动态)视角(geodesic / dynamic point of view):两个测度之间的最优传输,被描述为「测度空间」中一条总长度最短的曲线。这个视角直观、能和流体力学建立联系,也给出了在低维、规则区域上插值两个密度的高效数值方法。代价是:必须把空间打上网格,所以它不能扩展到高维或大规模稀疏测度,而且只适用于平方测地代价。
记号:本章用 $(\alpha_0,\alpha_1)$ 代替 $(\alpha,\beta)$,强调「$t=0$ 时从一个测度出发,$t=1$ 时到达另一个」。一维的密度常写作 $\rho$。
7.1 连续形式 Continuous Formulation
这一节要回答:如果把「一次性搬运」换成一段连续的「电影」,$\mathcal W_2$ 还能怎么算?答案是:在所有满足质量守恒的流动中,找总动能最小的那一个。我们先看一个粒子,再看一整团质量。
先看一个粒子:匀速直线最省力 One particle: straight line, constant speed
设一粒沙子要在时间 $[0,1]$ 内从 $x$ 走到 $y$,轨迹是 $\gamma(t)$。它消耗的动能(kinetic energy)记作 $\int_0^1\|\gamma'(t)\|^2\,\mathrm dt$。两个熟悉的不等式首尾相接:
第一个「≥」是 Cauchy–Schwarz:速度忽快忽慢要多付代价,等号当且仅当匀速;第二个「≥」是两点之间直线最短,等号当且仅当走直线。所以:最小动能恰好等于距离的平方,而且只有「匀速直线」能做到。这句话就是整章的种子——下面的演示让你亲手验证它。
拖动起点 $x$(蓝)、终点 $y$(红)和灰色控制点,改变路径的形状;用滑块让速度「先快后慢」(κ > 0)或「先慢后快」(κ < 0)。路径上的小圆点是每隔 0.1 时间单位的位置:点越稀,速度越快。空心圈是「匀速直线」的参照粒子。右图是速率 $\|\gamma'(t)\|$ 随时间的变化。
三个数始终满足 $E\ge L^2\ge\|y-x\|^2$。弯路让 $L$ 变大;速度不均匀让 $E$ 超过 $L^2$。只有把控制点拖回线段中点(直线)并且把 κ 调回 0(匀速)时三者才相等。Benamou–Brenier 公式就是让每一个粒子都这样走。
一整团质量:连续性方程 Conservation of mass
现在把一个粒子换成一整团质量 $\alpha_0$。在 $\mathcal X=\mathcal Y=\mathbb R^d$、$c(x,y)=\|x-y\|^2$ 时,第 2 章的 $\mathcal W_2^2(\alpha_0,\alpha_1)=\mathrm L_c(\alpha_0,\alpha_1)$ (2.15) 可以通过寻找一条连接两个测度的「最短路径」$(\alpha_t)_{t=0}^1$ 来计算。这条路径由一个随时间变化的速度场(vector field) $v_t$ 推动(advect):$t$ 时刻位于 $x$ 的质量以速度 $v_t(x)$ 运动。质量不能凭空产生或消失,所以 $\alpha_t$ 与 $v_t$ 必须满足连续性方程(conservation of mass / continuity equation):
把空间切成很多小格子。$\alpha_tv_t$ 是穿过格子边界的质量流(单位时间流过的质量),$\operatorname{div}(\alpha_tv_t)$ 是这个格子的净流出量。于是 (7.1) 就是一句大白话:格子里质量的增加速度 = 流入 − 流出。水管里的水、公路上的车流都遵守同一条守恒律。原书强调该方程要在「分布意义」下理解,所以 $\alpha_t$ 可以是一堆 Dirac(离散点云),不必有密度。
一个速度场「有多费力」,用以 $\alpha_t$ 为权重的 $L^2$ 范数来量:$\|v_t\|_{L^2(\alpha_t)}=\big(\int_{\mathbb R^d}\|v_t(x)\|^2\,\mathrm d\alpha_t(x)\big)^{1/2}$——每一小块质量付「质量 × 速度²」。把所有时刻加起来,就得到 Benamou 与 Brenier(2000)提出的最小路径重述:
这里 $\alpha_t$ 是标量测度,$v_t$ 是向量值的速度场。最优的 $(\alpha_t)_t$ 称为 $\alpha_0$ 与 $\alpha_1$ 之间的位移插值(displacement interpolation),原书 Fig. 7.1 画了两个例子:上排是有密度的测度(一个圆盘分裂成两个圆盘),下排是等点数的离散点云。
为什么成立(核心思路)
「≤」:设 $T$ 是 $\alpha_0$ 到 $\alpha_1$ 的最优 Monge 映射。让每个粒子从 $x$ 匀速直线走到 $T(x)$,得到一个满足 (7.1) 的流动;每个粒子的动能是 $\|T(x)-x\|^2$,总动能 $=\int\|T(x)-x\|^2\mathrm d\alpha_0(x)=\mathcal W_2^2$。
「≥」:任何(足够光滑的)满足 (7.1) 的流动,都可以沿速度场追踪每个粒子的轨迹。「一个粒子」的不等式告诉我们,每个粒子的动能 ≥ 它的起点与终点距离的平方。把「起点—终点」配对看成一个耦合 $\pi\in\mathcal U(\alpha_0,\alpha_1)$,总动能 $\ge\int\|x-y\|^2\mathrm d\pi\ge\mathcal W_2^2$。两边合起来就是 (7.2)。处理不光滑情形的严格证明见 Benamou–Brenier (2000)。
若 $\alpha_1$ 是 $\alpha_0$ 平移 $c$ 得到的($\alpha_1=\alpha_0(\cdot-c)$),最优映射就是 $T(x)=x+c$。于是 $\alpha_t=\alpha_0(\cdot-tc)$:整团质量以恒定速度 $v_t\equiv c$ 滑过去,形状不变;每个时刻的动能都是 $\|c\|^2$,总作用量为 $\|c\|^2=\mathcal W_2^2$。下面演示中的「平移一个峰」就是这个例子($c=0.47$,$\mathcal W_2^2=0.47^2=0.2209$)。
上图:当前时刻的密度 $\rho_t$(虚线是起点 $\rho_0$ 与终点 $\rho_1$);下方小圆点是 20 个示踪粒子(每个带 1/20 的质量),箭头是它们的速度。下图是时空图:横轴 $x$,纵轴 $t$(自下而上),颜色深浅是密度,细线是粒子轨迹。拖动 ▲ 手柄移动各个峰(蓝 = $\rho_0$,红 = $\rho_1$),拖动 $t$ 滑块或按「播放」;勾选「改用线性混合」对比 $(1-t)\rho_0+t\rho_1$。
位移插值中每个粒子都匀速直线运动(时空图里全是直线),峰在移动中平滑地变形;而且任何时刻的动能 $E(t)=\int\rho_tv_t^2\,\mathrm dx$ 都相同,恰好等于 $\mathcal W_2^2$(用 Book.ot.emd1d 验算)。换成线性混合:左边的峰原地变淡、右边的峰原地变浓,粒子却必须在几乎没有质量的空隙里高速穿越(轨迹几乎是水平的),总动能是 $\mathcal W_2^2$ 的几倍到几百倍。
欧拉视角(Eulerian):站在空间中固定的点 $x$ 上,记录那里的密度 $\alpha_t(x)$ 与速度 $v_t(x)$——(7.1)–(7.3) 都是这种写法,也是 7.2 节网格离散的基础。拉格朗日视角(Lagrangian):跟着每个粒子走,记录它的轨迹 $X_t(x)$——位移插值 $X_t(x)=(1-t)x+tT(x)$ 和 7.6 节的路径空间形式都是这种写法。二者由 $\partial_tX_t(x)=v_t(X_t(x))$ 联系起来。上面演示的上图是欧拉视角,时空图中的细线是拉格朗日视角。
换元 $J=\alpha v$:把问题变成凸的 Convexification with the momentum
(7.2) 对变量 $(\alpha_t,v_t)_t$ 不是凸问题:约束 (7.1) 里有乘积 $\alpha_tv_t$。Benamou 与 Brenier 在其里程碑式的论文(2000)中引入向量值测度——动量(momentum),也叫通量(flux)——
$J_t\stackrel{\text{def.}}{=}\alpha_tv_t$(单位时间内流过的质量),
并证明用 $(\alpha_t,J_t)_t$ 作变量时问题是凸的:
约束变成线性的。(7.4) 里的 $\partial_t\alpha+\operatorname{div}J=0$ 对 $(\alpha,J)$ 是线性方程,边界条件也是线性的,所以可行集 $\mathcal C$ 是凸的(仿射子空间)。
代价就是动能。把 $J=\alpha v$ 代回:$\theta(\alpha,\alpha v)=\alpha\|v\|^2$ =「质量 × 速度²」,正是 (7.2) 的被积函数。
θ 是凸的、下半连续的、1-齐次的。它是 $\|b\|^2$ 的透视函数(perspective function);$\theta(\lambda a,\lambda b)=\lambda\,\theta(a,b)$。1-齐次性让 (7.3) 即便对没有密度的测度(如 Dirac)也有唯一确定的含义——所以原书把 (7.3) 「当作密度来写」并无问题。
没有质量就不能有通量。第三种情形是这个定义的关键:$a=0$ 而 $b\neq0$ 时代价为 $+\infty$。
「从 $\alpha_0$ 渐变到 $\alpha_1$」最容易想到的是线性混合 $(1-t)\alpha_0+t\alpha_1$(像 PPT 的淡入淡出)。它也满足连续性方程——但代价往往极大:两团质量之间的空白处没有质量,却必须有通量穿过,$\theta(0,b)=+\infty$。如果两团质量完全不重叠,线性混合的动能就是 $+\infty$。位移插值则是「整体搬过去」,这正是上面演示中两种模式的差别。
连续性方程 (7.1) 本身表达的是什么?
与 McCann 插值的联系 Links with McCann's interpolation
若存在最优 Monge 映射 $T:\mathbb R^d\to\mathbb R^d$,$T_\sharp\alpha_0=\alpha_1$(见 (2.28)),则 (7.2) 中的 $\alpha_t$ 就是 McCann 插值——每个点沿线段 $x\to T(x)$ 匀速前进:
一维时(Rem. 2.30),它可以直接用累积分布函数的逆——分位数函数——算出来:分位数函数做线性插值(参见 Fig. 2.11):
如果「只」有最优耦合 $\pi$(未必由映射给出),就把每一对 $(x,y)$ 连成线段,按 $\pi$ 的权重把质量放在线段的 $t$ 处:
例如在离散情形 (2.3),记 $\mathbf P$ 为 (2.11) 的一个最优解,插值为
这样的插值通常支撑在 $n+m-1$ 个点上——这是 $\mathbf P$ 非零元个数的上限(第 3 章:最优解可取在运输多面体的顶点)。原书 Fig. 7.2 对比了两种情况:等点数、等权重的点云,$0\lt t\lt 1$ 时 $\alpha_t$ 仍是 $N$ 个点;权重不等时,$\alpha_t$ 支撑在 $2N-1$ 个点上。把线段换成测地线,这个构造可以推广到测地空间 $\mathcal X$。McCann 插值在计算机图形学中有很多应用,例如颜色、形状和光照的插值(Bonneel et al., 2011);Wasserstein 空间的黎曼几何可参考 Gangbo–McCann (1996)。
在直线上取 $\alpha_0=0.6\,\delta_0+0.4\,\delta_1$,$\alpha_1=0.3\,\delta_2+0.7\,\delta_3$。一维最优耦合按分位数单调配对:位于 0 的 0.6 质量先把 0.3 送到 2,剩下的 0.3 送到 3;位于 1 的 0.4 全部送到 3,即 $\mathbf P=\begin{bmatrix}0.3 & 0.3\\ 0 & 0.4\end{bmatrix}$,$\mathcal W_2^2=0.3\cdot2^2+0.3\cdot3^2+0.4\cdot2^2=5.5$。由 (7.9),
$\alpha_t=0.3\,\delta_{2t}+0.3\,\delta_{3t}+0.4\,\delta_{1+2t}$,
在 $t=\tfrac12$ 时是位于 $1,\ 1.5,\ 2$ 的三个质点——恰好 $n+m-1=3$ 个:原来位于 0 的质点「分身」成两个,以不同的速度(2 与 3)奔向不同的终点。
蓝色空心点是 $\alpha_0$(一个圆盘),红色空心点是 $\alpha_1$(两个小圆盘),实心点是 $\alpha_t$ 的各个质点(面积 ∝ 质量),颜色由蓝渐变到红。拖动三个 ✚ 手柄移动圆盘,最优耦合 $\mathbf P$ 由 Book.ot.emd 精确求解。切换「随机权重」,看质点数怎样从 $N$ 变成 $2N-1$。
等权重时最优耦合是一个置换,$\alpha_t$ 始终是 $N$ 个等质量的点:整团质量「裂成两半、各自收缩」地流过去,与 Fig. 7.1 下排一致。随机权重时,有些蓝点的质量必须拆给两个红点,于是出现 $2N-1$ 个质点(Fig. 7.2 下排)。勾选线性混合对比:点根本不动,只是蓝色淡出、红色淡入。
$\alpha_0$ 有 $n$ 个点、$\alpha_1$ 有 $m$ 个点(权重一般)。由 (7.9) 定义的位移插值 $\alpha_t$ 在 $0\lt t\lt 1$ 时通常支撑在多少个点上?
- $\mathcal W_2^2$ = 所有满足连续性方程的流动中最小的总动能 (7.2);最优流动是位移插值:每个粒子匀速直线走到 $T(x)$,动能不随时间变化。
- 换元 $J=\alpha v$ 后问题是凸的 (7.3)–(7.5);$\theta=\|J\|^2/\alpha$ 禁止「没有质量却有通量」,所以线性混合往往代价巨大。
- 一维用分位数线性插值 (7.7);离散点云用 (7.9):至多 $n+m-1$ 个沿线段移动的质点。
7.2 均匀交错网格上的离散化 Discretization on Uniform Staggered Grids
这一节要解决:怎样把 (7.3) 变成计算机能解的有限维凸问题?关键是把密度和通量放在错开半格的位置上——这样连续性方程的差分天然「对齐」,而且质量守恒在离散层面精确成立。
为简单起见,原书在二维 $d=2$ 中叙述(推广到更高维是直接的),沿用 Papadakis et al. (2014) 的离散方法;它借鉴了流体力学中常用的交错网格(staggered grid)技术。时间离散为 $t_k=k/T\in[0,1]$,空间 $\mathcal X=[0,1]^2$ 均匀离散为 $x_i=(i_1/n_1,\,i_2/n_2)$。以检查约束的「格点」$(k,i)$ 为参照,各变量存放的位置如下:
| 变量 | 数组大小 | 存放位置(相对格点 $(k,i)$) |
|---|---|---|
| 密度 $\mathbf a$ | $(T+1)\times n_1\times n_2$ | 空间上在格子中心;时间上错开半格:放在整数时刻 $t_k$($k=0,\dots,T$,含两端),而格点位于相邻两个时刻的中间 |
| 通量 $\mathbf J_1$ | $T\times(n_1+1)\times n_2$ | $x_1$ 方向错开半格:格子的左右两条边上 |
| 通量 $\mathbf J_2$ | $T\times n_1\times(n_2+1)$ | $x_2$ 方向错开半格:格子的上下两条边上 |
| $\partial_t\mathbf a$、$\operatorname{div}\mathbf J$ | $T\times n_1\times n_2$ | 恰好都落在格点 $(k,i)$ 上——可以直接相加 |
在这种表示下,对 $(k,i_1,i_2)\in[\![1,T]\!]\times[\![1,n_1]\!]\times[\![1,n_2]\!]$,时间导数与空间散度分别为
两者都定义在格点上,都是 $\mathbb R^{T\times n_1\times n_2}$ 中的数组。(原书的差分没有写网格步长 $1/T$、$1/n$;把 $\mathbf a$ 理解成「每格的质量」、$\mathbf J$ 理解成「每个时间步穿过一条边的质量」,这些因子就自动吸收了。)
两个相邻数值之差,天然「住在」它们的中点。时间上,$\mathbf a_{k+1}-\mathbf a_k$ 住在两个时刻中间;空间上,$\mathbf J_{i+1}-\mathbf J_i$ 住在两条边中间(格子中心)。只要把 $\mathbf a$ 放在时间的半格点、把 $\mathbf J$ 放在空间的半格点,这两个差分就落在同一组格点上,连续性方程可以逐点写出。更妙的是:对所有格子求和时,内部的通量两两抵消(流出一格 = 流入邻格),所以离散的总质量精确守恒——这正是流体力学偏爱交错网格的原因。
代价函数 $\theta$ 却需要同一个点上的 $\mathbf a$ 和 $\mathbf J$。所以还需要把半格点上的值插值到格点上的插值算子(interpolation operators):对所有 $(k,i_1,i_2)$,
最简单的选择是线性的 $\mathcal I(r,s)=\frac{r+s}{2}$(取平均),原书也只考虑这种。于是 (7.3) 的离散版本是
约束集为 $\mathbf C(\mathbf a_0,\mathbf a_1)\stackrel{\text{def.}}{=}\{(\mathbf a,\mathbf J)\,:\,\partial_t\mathbf a+\operatorname{div}(\mathbf J)=0,\ (\mathbf a_{0,\cdot},\mathbf a_{T,\cdot})=(\mathbf a_0,\mathbf a_1)\}$,其中 $\mathbf a\in\mathbb R^{(T+1)\times n_1\times n_2}$,$\mathbf J=(\mathbf J_1,\mathbf J_2)$,$\mathbf J_1\in\mathbb R^{T\times(n_1+1)\times n_2}$,$\mathbf J_2\in\mathbb R^{T\times n_1\times(n_2+1)}$。这是一个凸问题:线性约束 + 凸函数 $\theta$ 与线性插值的复合。
为了把「时间也交错」看清楚,这里取一维空间(8 个格子)× 时间(4 步)。方块是密度 $\mathbf a_{k,i}$(每格质量,颜色越深越多),绿色箭头是穿过格子边的通量 $\mathbf J$,空心圆是检查约束的格点。数值来自精确位移插值的采样。点击任意空心圆(或用按钮切换),看它的离散连续性方程和插值。
每个约束格点只「看」上下两个密度(时间差分)和左右两个通量(空间差分),方程逐格精确成立;每一行的总质量完全相同——离散质量守恒是「内部通量两两抵消」的直接结果。要计算代价 $\theta$ 时,再把上下两个密度、左右两个通量各取平均,搬到格点上。由这些插值算出的离散能量与 $\mathcal W_2^2$ 的偏差,在 8×4 的粗网格上是「平移」约 0.5%、「扩散」约 8%(离散误差);下一节的求解器改用 40×20 的网格。
原书 Fig. 7.3 展示了用这种离散(配合下一节的近端求解器)在一个复杂的迷宫形平面区域里计算的动态插值 $\alpha_t$:一团质量从左上角沿着迷宫的走廊「流」到右下角。粒子只能在区域内部运动,对应的正是本章开头说的「测地距离的平方」代价;在网格上,这相当于让区域外的格子不参与计算(那里的密度与通量都为零)。
若 $\mathcal X$ 是一个图、$c(x,y)=d_{\mathcal X}(x,y)^2$ 是测地距离的平方,可以用与图结构相应的离散散度代替均匀网格的 (7.10),得到忠实的离散化。为了保证热方程在相应的动态 Wasserstein 距离下具有梯度流结构(梯度流见 §9.3),Maas (2011) 以及之后的 Mielke (2013) 建议把插值 $\mathcal I(r,s)$ 取为对数平均(logarithmic mean) $\frac{r-s}{\log r-\log s}$(另见 Solomon et al. 2016b,Chow et al. 2012, 2017a,b)。
在交错网格里,为什么把通量 J 放在格子的边上、把密度 a 放在时间的半格点上?
- 密度在时间上、通量在空间上各错开半格,使 $\partial_t\mathbf a+\operatorname{div}\mathbf J=0$ 逐格成立、总质量精确守恒 (7.10)。
- 计算 $\theta$ 时用平均插值 $\mathcal I_a,\mathcal I_J$ 把两者搬到同一格点,得到有限维凸问题 (7.11)。
- 在图上可以用图的散度代替 (7.10),并取对数平均作插值(Rem. 7.2)。
7.3 近端求解器 Proximal Solvers
这一节要解决:(7.11) 是凸问题,但它不光滑($\theta$ 在 $a=0$ 附近不可微,甚至取 $+\infty$),还带着仿射约束。梯度下降、牛顿法都不能直接用。原书先介绍高精度的内点法,再重点介绍可扩展的一阶近端分裂算法——Douglas–Rachford。
难点具体在哪里?当两个输入测度 $(\mathbf a_0,\mathbf a_1)$ 都是紧支撑时,插值出来的 $(\mathbf a_k)_{k=1}^T$ 在大片区域上质量也应当为零,优化的难点恰恰是追踪支撑集(有质量的区域)的演化——而那里正是 $\theta$ 不光滑的地方。
高精度路线:二阶锥规划 Quadratic-cone programs
引入额外变量 $\tilde{\mathbf z}$,把 $\theta$ 写成「线性函数 + 锥约束」:
$\mathcal L$ 是旋转洛伦兹锥(rotated Lorentz cone)——上一节图中 $\{\theta\le z\}$ 那片抛物线区域,就是它在固定 $z$ 时的截面。于是可以用二阶锥规划的内点法(interior point method)(Nesterov–Nemirovskii 1994)求解:收敛快、精度高;但每次迭代都要解一个规模与网格点数相当的线性方程组,所以不适合成像中常见的大规模多维问题。
可扩展路线:近端分裂与 Douglas–Rachford First-order proximal splitting
另一条路是低精度的一阶方法:每步很便宜,特别适合 (7.11) 这类「不光滑但结构很好」的问题。这类方法并不新,但在成像和机器学习中重新流行起来——那里并不追求极高的数值精度(系统论述见 Bauschke–Combettes 2011 的专著)。其实 Benamou–Brenier (2000) 最初就提出了用一阶方法求解动态 OT。原书重点介绍 Douglas–Rachford (DR) 算法(Lions–Mercier 1979),它专门处理如下形式的问题:
其中 $\mathcal H$ 是欧氏空间,$F,G:\mathcal H\to\mathbb R\cup\{+\infty\}$ 是闭凸函数,并且它们的近端算子(proximal operator)都「容易算」(有闭式解,或者有快速收敛的子程序):
$\operatorname{Prox}_{\tau F}(x)$ 在「离 $x$ 不要太远」和「让 $F$ 尽量小」之间折中,走一小步;$\tau$ 越大越偏向后者。若 $F$ 是集合 $\mathcal C$ 的指示函数(indicator function) $\iota_{\mathcal C}$(在 $\mathcal C$ 上为 0,否则为 $+\infty$),那么 $\operatorname{Prox}$ 恰好就是到 $\mathcal C$ 的正交投影。又如一维的 $F(x)=|x|$,$\operatorname{Prox}_{\tau F}$ 是软阈值(soft thresholding):把 $x$ 向 0 收缩 $\tau$,越过 0 就停在 0。这里用的是欧氏距离;把 $\|x-x'\|^2$ 换成 Bregman 散度(例如 KL,见 (4.52))也可以定义近端算子。
从初值 $(x^{(0)},w^{(0)})\in\mathcal H^2$ 出发,重复
若 $0\lt\alpha\lt 2$、$\gamma\gt 0$,则 $x^{(\ell)}\to z^\star$,$z^\star$ 是 (7.12) 的一个解(Combettes–Pesquet 2007)。DR 与另一个常用方法——交替方向乘子法(ADMM)——关系密切:对对偶问题使用 DR 就得到 ADMM(Eckstein–Bertsekas 1992 首先证明了这一等价,另见 Boyd et al. 2011 的综述)。
用两个最简单的凸函数——一条直线的指示函数 $F=\iota_A$ 与一个圆盘的指示函数 $G=\iota_B$——来「慢动作」地看一轮 DR 迭代(此时两个 prox 都是投影,问题变成「找 $A\cap B$ 中的一点」):
第 1 步:起点
任取 $w^{(0)}$(黑点)。先用 $G$ 的近端算子——投影到圆盘 $B$——得到 $x^{(0)}=\operatorname{Prox}_{\gamma G}(w^{(0)})$(橙点)。
第 2 步:反射
以 $x^{(0)}$ 为中心把 $w^{(0)}$「翻」过去:$r=2x^{(0)}-w^{(0)}$(灰点)。这一步是 DR 的灵魂——它不是简单地交替投影。
第 3 步:F 的近端算子
对反射点用 $F$ 的 prox——投影到直线 $A$:$p=\operatorname{Prox}_{\gamma F}(r)$(绿点)。在动态 OT 里,这一步是「逐点解三次方程 + 投影到质量守恒约束」。
第 4 步:更新辅助变量
$w^{(1)}=w^{(0)}+\alpha\,(p-x^{(0)})$(这里 $\alpha=1$):把 $w$ 沿「$x\to p$」的方向平移。
第 5 步:G 的近端算子
$x^{(1)}=\operatorname{Prox}_{\gamma G}(w^{(1)})$:再投影回圆盘。一轮迭代结束。在动态 OT 里,这一步是「投影到插值一致性约束 $\mathcal D$」。
第 6 步:不断重复
画出 20 轮迭代:橙点 $x^{(\ell)}$ 迅速收敛到 $A\cap B$ 中的一点。注意 $w^{(\ell)}$ 本身不必收敛到解,真正的解由 $x^{(\ell)}$ 给出。
把 (7.11) 拆成 F + G Splitting the discretized problem
把 (7.11) 写成 (7.12) 的形式有很多方法(详见 Papadakis et al. 2014)。一个简单的做法是把插值后的值也当作独立变量,令 $x=(\mathbf a,\mathbf J,\tilde{\mathbf a},\tilde{\mathbf J})$,并且
这两个函数的近端算子都能高效计算。$F$ 对两组变量是分离的,所以 $\operatorname{Prox}_{\tau F}(x)=\big(\operatorname{Prox}_{\tau\Theta}(\tilde{\mathbf a},\tilde{\mathbf J}),\ \operatorname{Proj}_{\mathbf C(\mathbf a_0,\mathbf a_1)}(\mathbf a,\mathbf J)\big)$:
| 子问题 | 它在做什么 | 怎么算 | 开销 |
|---|---|---|---|
| $\operatorname{Prox}_{\tau\Theta}(\tilde{\mathbf a},\tilde{\mathbf J})$ | 在每个格点把 $(\tilde a,\tilde J)$ 往「动能小」的方向拉 | 每个格点解一个三次方程 | $O(N)$,完全并行 |
| $\operatorname{Proj}_{\mathbf C}(\mathbf a,\mathbf J)$ | 强制质量守恒与边界条件 | 解一个时空 Poisson 方程(FFT) | $O(N\log N)$ |
| $\operatorname{Prox}_{\tau G}=\operatorname{Proj}_{\mathcal D}$ | 让 $(\tilde{\mathbf a},\tilde{\mathbf J})$ 与 $(\mathbf a,\mathbf J)$ 的插值一致 | 一个线性投影,只需求逆一个小的线性方程组 | $O(N)$ |
这里 $N=Tn_1n_2$ 是网格点总数。下面的演示在一维上完整实现了这三个算子:Poisson 方程用离散余弦变换(DCT)对角化求解,线性投影是三对角方程组。
三次方程从哪里来(θ 的近端算子)
在一个格点上求 $\min_{a\ge0,J}\ \frac12(a-\tilde a)^2+\frac12\|J-\tilde J\|^2+\gamma\,\frac{\|J\|^2}{a}$。对 $J$ 求导:$J-\tilde J+2\gamma J/a=0$,得 $J=\tilde J\,\frac{a}{a+2\gamma}$。对 $a$ 求导:$a-\tilde a-\gamma\|J\|^2/a^2=0$,代入 $J$ 得
$(a-\tilde a)\,(a+2\gamma)^2=\gamma\,\|\tilde J\|^2$ ——一个关于 $a$ 的三次方程。
两边除以 $(a+2\gamma)^2$:$f(a)=a-\tilde a-\gamma\|\tilde J\|^2/(a+2\gamma)^2$ 在 $a\ge0$ 上严格递增,所以最多一个正根(牛顿法几步即可求出)。若 $f(0)\ge0$,即 $\tilde a+\|\tilde J\|^2/(4\gamma)\le 0$,则没有正根,答案是 $(a,J)=(0,0)$——这个格点被判定为「没有质量」。这就是 DR 在迭代中自动「追踪支撑集」的机制。
横轴是密度 $a$,纵轴是通量 $b$(一维)。拖动橙点 $(\tilde a,\tilde b)$,绿点是 $\operatorname{Prox}_{\gamma\theta}(\tilde a,\tilde b)$(由上面的三次方程求得),灰色小箭头画出整个平面上的近端映射。红色区域 $\tilde a+\tilde b^2/(4\gamma)\le0$ 中的点都被送到原点——对应的格点被判定为「没有质量」。蓝色虚线是 $\theta$ 的等值线。
近端算子总把点往「$\theta$ 更小」的方向拉:通量按比例 $a^\star/(a^\star+2\gamma)$ 缩小,密度略有增加($a^\star\ge\tilde a$)。$\gamma$ 越大拉得越狠,红色的「清零区」也越大。DR 的每一步都在每个格点上做一次这样的操作——有质量的区域(支撑集)就是这样被逐步「追踪」出来的。
一维空间 $n=40$ 格 × 时间 $T=20$ 步的交错网格,完整实现 (7.11) 的 DR 分裂(三次方程 + DCT 解 Poisson 方程 + 三对角投影)。初值是线性混合。按「运行」执行迭代 (7.14):左图是当前的时空密度 $\mathbf a$(细线是精确位移插值的粒子轨迹),右图是 $t=\tfrac12$ 的切片(紫色虚线 = 精确解),下图是收敛曲线(对数坐标)。拖动 $\gamma$、$\alpha$ 看收敛快慢的变化。
几十步之内,两团「原地淡入淡出」的质量就被 DR 「推」成一个移动的峰;几百步后,切片与精确位移插值(紫色虚线)几乎重合,能量与 $\mathcal W_2^2$ 的相对误差降到 $10^{-3}$ 以下(剩下的是离散误差)。收敛是一阶方法典型的「先快后慢」:能量很快就准了,形状和约束残差要慢一些。$\gamma$ 太小时每步几乎不动,太大时约束残差下降变慢;$\alpha$ 接近 2(过松弛)通常更快。
这类动态 OT 的近端方法还被用于求解相关问题,例如平均场博弈(mean field games)(Benamou–Carlier 2015)。
为什么不直接用梯度下降或牛顿法求解离散问题 (7.11)?
- (7.11) 可写成二阶锥规划(内点法:精确但每步昂贵),也可用一阶近端分裂(每步便宜、可扩展、精度较低)。
- DR 迭代 (7.14):反射 → $F$ 的 prox → 更新 $w$ → $G$ 的 prox;$0\lt\alpha\lt2$ 时收敛;在对偶问题上做 DR 就是 ADMM。
- 对 (7.11):$\operatorname{Prox}_\Theta$ 逐点解三次方程,$\operatorname{Proj}_{\mathbf C}$ 解 Poisson 方程(FFT),$\operatorname{Proj}_{\mathcal D}$ 解小线性方程组。
7.4 动态非平衡最优传输 Dynamical Unbalanced OT
这一节要解决:如果 $\alpha_0$ 与 $\alpha_1$ 的总质量不同,或者质量本来就会局部增减(图像里亮度变化、细胞增殖……),经典 OT 只能「硬搬」。办法是:允许连续性方程带一个源项,并用同一个 $\theta$ 为「生成 / 消失质量」定价。
为了匹配总质量不同 $\alpha_0(\mathcal X)\neq\alpha_1(\mathcal X)$ 的测度(即所谓非平衡(unbalanced)情形,术语来自 Benamou 2003),并应对局部的质量变化,人们提出过多种归一化或松弛办法,特别是放松固定的边缘约束(见 §10.2)。一个通用的思路是在连续性方程 (7.4) 中引入源项(source term) $s_t(x)$:
$s_t\gt0$ 表示此处「长出」质量,$s_t\lt0$ 表示质量「消失」。关键问题是:源项的代价怎么算?文献中有多种提议,例如 $L^2$ 代价(Piccoli–Rossi 2014)。为了避免质量「瞬移」——以无穷大的速度移动、在原本没有质量的地方突然长出来——这种行为的代价应该是无穷大。原来这可以用一种简单的凸方式实现:像惩罚动量 $J_t$ 那样惩罚 $s_t$(用 1-齐次的代价,于是 $s_t$ 也可以是任意测度):
其中 $\theta$ 就是 (7.5) 中的凸 1-齐次函数,权重 $\tau\gt0$ 控制「搬运质量」与「生成/消失质量」之间的权衡。这一形式由几组作者独立提出(Liero et al. 2016;Chizat et al. 2018c;Kondratyev et al. 2016),也称 Hellinger–Kantorovich 距离;它有一个「静态」的对应形式,见 Rem. 10.5。(7.15) 仍是凸问题,可以用 7.3 节类似的近端方法求解。
记 $g=s/\alpha$ 为相对增长率(每单位质量、每单位时间长出多少),则 $\theta(\alpha,s)=s^2/\alpha=\alpha\,g^2$ =「质量 × 增长率²」——与运输项「质量 × 速度²」结构完全相同。于是:
- 不能凭空跳出质量:$\alpha=0$ 而 $s\neq0$ 时代价为 $+\infty$。质量要在新地方出现,只能从零开始平滑地长大;最省力的长法是让 $\sqrt{\text{质量}}$ 随时间线性变化(见下面的圆锥图)。
- $\tau$ 大:增减质量很贵 → 尽量把质量搬过去;$\tau$ 小:增减质量便宜 → 原地消失、在目标处长出,几乎不搬。
两个极限。按 (7.15) 的写法($\tau$ 乘在源项上):当 $\tau\to+\infty$ 时生灭代价趋于无穷,若 $\alpha_0(\mathcal X)=\alpha_1(\mathcal X)$,则 $\mathrm{WFR}(\alpha_0,\alpha_1)\to\mathcal W_2(\alpha_0,\alpha_1)$,回到经典 OT;当 $\tau\to0$ 时搬运相对变贵,最优路径是「$\sqrt{\alpha_t}$ 的线性插值」,WFR 退化为密度之间的 Hellinger 距离(Hellinger metric):
原书此处写的是「$\tau\to0$ 时回到 $\mathcal W$,$\tau\to+\infty$ 时 $\frac1\tau\mathrm{WFR}^2$ 趋于 Hellinger」,且没有常数 $c$。按 (7.15) 中 $\tau$ 乘在源项上的写法,两个极限的方向恰好相反(原书的叙述相当于把 $\tau$ 放在运输项上的约定);常数 $c$ 取决于 $\theta$ 的归一化,按 (7.5)–(7.15) 直接计算得 $c=4$(纯生长路径 $\sqrt{\alpha_t}$ 线性插值时 $\theta(\alpha,\partial_t\alpha)=4(\partial_t\sqrt\alpha)^2$)。下面两个演示都能验证:$\tau$ 越大越像纯搬运,$\tau$ 越小越像原地生灭。
补充:一个粒子的 WFR——圆锥上的直线 One Dirac: straight lines on a cone
为了真正「看见」搬运与生灭的权衡,考虑最简单的情形:一个质量为 $m(t)$、位置为 $x(t)$ 的粒子(原书没有展开,但可以直接由 (7.15) 推出)。此时 $J=m\,x'$、$s=m'$,代价为 $\int_0^1\big(m\,x'^2+\tau\,m'^2/m\big)\mathrm dt$。令 $r=\sqrt m$、$\varphi=x/(2\sqrt\tau)$,就得到
右边恰好是平面上极坐标为 $(r,\varphi)$ 的点的动能!所以最优路径就是这个「圆锥」(极坐标平面)上的直线段:半径 = $\sqrt{\text{质量}}$,角度 = 位置 $/(2\sqrt\tau)$。两个 Dirac $m_0\delta_{x_0}$ 与 $m_1\delta_{x_1}$ 之间还有另一种选择——让 $m_0$ 原地缩到零、$m_1$ 在目标处从零长出(两段都经过圆锥顶点),代价 $4\tau(m_0+m_1)$。两者取小:
也就是说,距离超过 $\pi\sqrt\tau$ 的质量不会被搬运——这与 Rem. 10.5 中静态代价 $-\log\cos(\min(d/\kappa,\pi/2))$ 的截断是同一个现象。(我们用 7.3 节的非平衡求解器对很窄的凸块做了数值检验,结果与此式相差在 10% 以内,差异来自凸块宽度与离散误差。)
左图是圆锥平面:半径 = $\sqrt{\text{质量}}$,角度 = 位置/(2√τ),射线旁标出对应的位置 $x$。蓝点是起点($x_0=0.15$,$m_0=1$),拖动红点改变终点的位置与质量。橙色是最优路径;超过 90° 虚线后,最优路径改为「经过顶点」(原地消失 + 目标处长出)。右图是真实的时空轨迹(圆面积 ∝ 质量)。滑动 $\tau$ 看同一段距离对应的角度怎样变化。
角度差小于 90° 时,粒子边走边改变质量(在圆锥上走直线,离顶点越近质量越小),速度并不均匀;把红点拖过 90° 虚线,最优策略突变为「原地缩小到零 + 在目标处长出」,代价封顶在 $4\tau(m_0+m_1)$。减小 $\tau$,同样的距离对应更大的角度——生灭变得相对便宜,搬运的「射程」$\pi\sqrt\tau$ 随之缩短。
原书 Fig. 7.4 比较了几种动态插值:Hellinger(第 1 行,纯生灭:形状在原地渐变)、Wasserstein(第 2 行,纯搬运)、部分最优传输(第 3 行)和 Wasserstein–Fisher–Rao(第 4 行)。这种动态形式类似于形状配准中的「变形」(metamorphosis)模型(Trouvé–Younes 2005),更精确的联系见 Maas et al. (2015, 2016)。下面的演示对一维密度复现其中三行:WFR 一行是用 7.3 节的 DR 求解器(加上源项)实时算出来的。
每行是一种动态插值在 $t=0,\tfrac14,\tfrac12,\tfrac34,1$ 的快照。前两行是精确公式;第三行是非平衡 DR 求解器(40×20 网格,含源项 $s$)的数值解。拖动 $\tau$:左端 = 生灭便宜,右端 = 生灭昂贵。切换例子看质量不等、局部增减的情形。
「远处的两个峰」:$\tau$ 很小时 WFR 与 Hellinger 一行几乎一样(左峰原地变淡、右峰原地长出,$t=\tfrac12$ 时总质量只剩约一半);默认的 $\tau=10^{-1.4}$ 是「半搬半生灭」:峰一边移动一边缩小,中途总质量约 0.7;$\tau\to1$ 时与 W₂ 一行一致。在临界值附近(Dirac 射程 $\pi\sqrt\tau$ 约等于两峰距离 0.5,即 $\tau\approx10^{-1.6}$)两种策略几乎一样好,求解器收敛明显变慢。「两峰各自增减」:经典 OT 必须把 0.4 的质量从左峰搬到远处的右峰,WFR 则让两个峰就地变胖变瘦、只做小幅平移——这正是非平衡 OT 在应用中更自然的原因。
在 (7.15) 中,源项的代价是 τ·θ(α, s) 而不是与 α 无关的 s²。这个选择最重要的效果是什么?
- 连续性方程加源项 $s$,并用 $\tau\,\theta(\alpha,s)$ 定价,得到 WFR (7.15):质量可以平滑地长出或消失,不能凭空跳变。
- $\tau$ 大 → 趋于经典 OT(纯搬运);$\tau$ 小 → 趋于 Hellinger(原地生灭)。
- 单个 Dirac 的最优路径是「圆锥上的直线」;距离超过 $\pi\sqrt\tau$ 的质量不再被搬运。
7.5 更一般的迁移率泛函 More General Mobility Functionals
这一节要回答:(7.5) 中的 $\theta(a,b)=\|b\|^2/a$ 并不是唯一选择。换一个 $\theta$——也就是换一种「在密度为 $a$ 的地方推动通量 $b$ 要付多少钱」的规则(称为迁移率(mobility))——就换了一种几何。
Dolbeault–Nazaret–Savaré (2009) 提出
为使 $\theta$ 是凸的,参数需满足 $p\ge1$、$s\in[1,p]$。当 $1\lt s\le p$ 时要小心:$\theta$ 在无穷远处没有线性增长(不是 1-齐次的),所以 (7.3) 的解必须限制为关于 Lebesgue 测度有密度。
$\theta(a,av)=a^{s}\|v\|^p$。
- $s=1$:代价 = 质量 × $\|v\|^p$——每一份质量为自己的速度付费,通量只能由质量「携带」($a=0$ 处不能有通量)。这是经典的运输。
- $s=p$:$\theta(a,b)=\|b\|^p$ 与密度 $a$ 无关——通量可以穿过没有质量的区域而不额外收费,就像电流通过导线:一端质量消失,另一端出现,中间是「电流」。
- $1\lt s\lt p$:介于两者之间——质量越稀薄,推动通量越贵,但不是无穷贵。
| 参数 | $\theta(a,b)$ | (7.3) 的最优值定义了什么 |
|---|---|---|
| $s=1,\ p=2$ | $\|b\|^2/a$ | $\mathcal W_2^2$——即 (7.3) 的原始设定 |
| $s=1,\ p\ge1$ | $\|b\|^p/a^{p-1}$ | $\mathcal W_p^p(\alpha,\beta)$;$\theta$ 是 1-齐次的,解可以是任意测度 |
| $s=p$ | $\|b\|^p$ | 对偶 Sobolev 范数 $\|\alpha-\beta\|^p_{W^{-1,p}}$ |
| $s=p=2$ | $\|b\|^2$ | Sobolev $H^{-1}(\mathbb R^d)$ 的 Hilbert 范数(见 (8.15)) |
| $(p=s,\ q)\to(1,\infty)$ | $\|b\|$ | $\mathcal W_1$ 范数——第 6 章的 Beckmann 最小流 |
极限情形 $s=p$ 之所以特别,是因为此时 (7.3) 的值等于对偶 Sobolev 范数(dual Sobolev norm) 的 $p$ 次方 $\|\alpha-\beta\|^p_{W^{-1,p}}$,其中($1/q+1/p=1$)
原书把这个式子写成左边带 $p$ 次方、右边取 $\min_f$;作为对偶范数,这里应是上确界(max),(7.3) 的最优值是该范数的 $p$ 次方。
为什么 $s=p$ 时最优路径是线性混合、通量不随时间变
$s=p$ 时 $\theta(a,b)=\|b\|^p$ 与 $a$ 无关。对任意可行的 $(\alpha_t,J_t)$,令 $\bar J=\int_0^1J_t\,\mathrm dt$;对连续性方程在时间上积分得 $\operatorname{div}\bar J=\alpha_0-\alpha_1$。由 Jensen 不等式 $\int_0^1\|J_t\|^p\mathrm dt\ge\|\bar J\|^p$,所以换成「时间上恒定的通量 $\bar J$ + 线性混合 $\alpha_t=(1-t)\alpha_0+t\alpha_1$」代价只会更小。于是 (7.3) 的值 $=\min\{\int\|J\|^p:\operatorname{div}J=\alpha_0-\alpha_1\}=\|\alpha_0-\alpha_1\|^p_{W^{-1,p}}$。$p\to1$ 时这正是第 6 章的 Beckmann 最小流问题($\mathcal W_1$ 的流形式)——那里的「流」本来就不带时间。
固定 $p=2$,$\theta(a,b)=|b|^2/a^{2-s}$。拖动 $s$ 滑块,DR 求解器(7.3 节的方法,换成对应的近端算子)会重新计算最优路径。上排:$t=0,\tfrac14,\tfrac12,\tfrac34,1$ 的密度快照;下排:密度 $\rho(t,x)$ 与通量 $|J|(t,x)$ 的时空图。
$s=1$:整块质量搬过去,通量只出现在质量所在处(通量图是一条斜带)。$s=2$:密度就是线性混合,一端变淡、另一端变浓;通量则不随时间变化,稳定地流过两峰之间空无一物的区域(通量图是一片竖直带)——像导线里的电流。$s=1.5$ 左右是折中:峰一边移动一边被大幅摊开($t=\tfrac12$ 时是一个又矮又宽的峰),通量也随之铺开——稀薄处推动通量不再是无穷贵。
取 θ(a,b) = |b|²(即 s = p = 2,与密度无关),从左边一个峰到右边一个峰,最优的动态路径是什么样的?
- 迁移率 $\theta(a,b)=a^{s-p}\|b\|^p$($p\ge1$,$1\le s\le p$)(7.16):$s=1$ 得 $\mathcal W_p$;$s=p$ 得 $W^{-1,p}$($p=2$ 时为 $H^{-1}$),此时通量不随时间变化、密度是线性混合。
- $1\lt s\le p$ 时 $\theta$ 不是 1-齐次的,解必须有密度;$s=p\to1$ 的极限是第 6 章的 $\mathcal W_1$(Beckmann 流)。
7.6 路径空间上的动态形式 Dynamic Formulation over the Paths Space
这一节要回答:前面几节都在「欧拉视角」下工作——盯着空间中的每个点,看那里的密度和速度。能不能换成「拉格朗日视角」,直接对每一条粒子轨迹建模?可以:OT 变成「所有路径」上的一个概率分布;而第 4 章的熵正则 OT 在这个视角下有一个优美的物理解释——布朗运动的薛定谔桥。
经典 OT 与熵正则 OT(§4)都有一个自然的动态形式,它研究的是路径空间(space of paths) $\bar{\mathcal X}$——$\mathcal X$ 上所有曲线 $\gamma:[0,1]\to\mathcal X$ 的集合——上的抽象优化问题。为简单起见取 $\mathcal X=\mathbb R^d$,但这可以推广到测地空间和图。非正式地说,「粒子」在 $t=0$ 与 $t=1$ 两个输入测度之间的运动,由路径空间上的一个概率分布 $\bar\pi\in\mathcal M^1_+(\bar{\mathcal X})$ 描述:随机抽一条路径,就是一个粒子的完整历史。它的起点与终点分布必须分别是 $\alpha_0,\alpha_1$,用推前写作
静态耦合 $\pi(x,y)$ 只记录「谁去了哪」(一张配对表);路径分布 $\bar\pi$ 还记录「怎么去的」——它是整部电影。$\bar{\mathcal U}$ 只约束电影的第一帧和最后一帧。
路径空间上的 OT OT over the space of paths
经典 OT (2.15) 在路径空间上的动态版本为
最优的 $\bar\pi^\star$ 只把质量放在连接配对点的测地线(在 $\mathbb R^d$ 中是匀速直线段)上,比例由 (2.15) 的最优耦合 $\pi^\star$ 决定。离散情形:
其中 $\gamma_{x_i,y_j}$ 是 $x_i$ 与 $y_j$ 之间的测地线。把 $\bar\pi^\star$ 在时刻 $t$ 「截一帧」,即路径点 $\gamma(t)$($\gamma$ 按 $\bar\pi^\star$ 抽取)的分布,
就是动态问题 (7.3) 的解,即位移插值;离散情形下恢复出 (7.9)。
为什么最优路径是匀速直线段
把 $\bar\pi$ 分两步抽样:先按某个耦合抽出起点—终点 $(x,y)$,再在「从 $x$ 到 $y$ 的路径」中抽一条。对固定的 $(x,y)$,由 7.1 节开头的不等式 $\mathcal L(\gamma)\ge\|y-x\|^2$,等号当且仅当 $\gamma$ 是匀速直线段。所以最优做法是永远走直线段,(7.17) 变成 $\min_\pi\int\|x-y\|^2\mathrm d\pi=\mathcal W_2^2$。
注:原书把被积函数写作 $\mathcal L(\gamma)^2$ 并称 $\mathcal L$ 为动能;由于动能本身已相当于「长度的平方」,这里按动能 $\mathcal L(\gamma)$ 书写(若 $\mathcal L$ 取路径长度,则应写 $\mathcal L(\gamma)^2$,两种写法给出同一个最优值)。
路径空间上的熵正则 OT:薛定谔桥 Entropic OT over the space of paths
现在用路径空间重新解释第 4 章的熵正则 OT。与 (4.11) 类似,它被定义为一个 Kullback–Leibler 投影,只不过这次投影的是路径空间上的一个参考测度 $\bar{\mathcal K}$——可逆布朗运动(Wiener 过程)的分布,它在初始和终止时刻都是均匀分布:
让一大群粒子做完全随机的布朗运动(这是先验 $\bar{\mathcal K}$)。现在你观察到:$t=0$ 时它们的分布是 $\alpha_0$,$t=1$ 时是 $\alpha_1$——这与先验的预测不符。在所有与这两次观察相符的「可能历史」中,哪一个最可能(与先验的 KL 最小)?这就是薛定谔 1931 年提出的问题(历史与综述见 Léonard 2014)。答案 $\bar\pi^\star_\varepsilon$ 称为薛定谔桥(Schrödinger bridge)。
可以证明 (7.19) 的(唯一)解 $\bar\pi^\star_\varepsilon$ 在 $\varepsilon\to0$ 时收敛到 (7.17) 的解。此外,它与静态的熵正则 OT (4.9) 之间通过布朗桥(Brownian bridge) $\bar\gamma^\varepsilon_{x,y}\in\bar{\mathcal X}$ 相联系:布朗桥是「两端固定在 $x$ 与 $y$ 的布朗运动」,像一条模糊的测地线,当 $\varepsilon\to0$ 时收敛到 $\delta_{\gamma_{x,y}}$。离散情形下,
其中 $\mathbf P^\star_{\varepsilon}$ 可以用 Sinkhorn 算法计算。与 (7.18) 类似,定义熵插值(entropic interpolation) $\alpha_{\varepsilon,t}\stackrel{\text{def.}}{=}P_{t\sharp}\bar\pi^\star_\varepsilon$。
布朗桥在时刻 $t$ 的位置分布 $P_{t\sharp}\bar\gamma^\varepsilon_{x,y}$ 是以 $\gamma_{x,y}(t)$ 为中心、方差为 $t(1-t)\varepsilon^2$ 的高斯 $\mathcal G_{t(1-t)\varepsilon^2}(\cdot-\gamma_{x,y}(t))$,因此熵插值是一组移动的 Dirac 各自被高斯模糊后的叠加:
约定说明:按「方差 $t(1-t)\varepsilon^2$」的写法,参考布朗运动每单位时间的方差是 $\varepsilon^2$;与之对应的静态问题是代价 $\|x-y\|^2$、正则化参数为 $2\varepsilon^2$ 的熵正则 OT。下面的演示就按这个对应关系调用 Sinkhorn。
蓝点是 $\alpha_0$、红点是 $\alpha_1$(各 7 个等质量点)。先用 Sinkhorn 算出熵正则耦合 $\mathbf P_\varepsilon$(右侧热力图;$\varepsilon=0$ 时用精确 OT),再按 $\mathbf P_\varepsilon$ 分配 105 条布朗桥路径。拖动 ε:路径从直线段变成抖动的「模糊测地线」。拖动 $t$ 或按播放:黑点是 $\alpha_{\varepsilon,t}$ 的样本,半透明圆是每个移动 Dirac 的高斯模糊(半径 = 2 个标准差)。
$\varepsilon=0$ 时所有路径都是 OT 配对之间的直线段,$\alpha_t$ 就是位移插值 (7.9)。$\varepsilon$ 增大有两个效果:一是每条路径都在抖(布朗桥端点固定,$t=\tfrac12$ 附近抖得最厉害);二是耦合本身变模糊——$\mathbf P_\varepsilon$ 把质量分给更多配对,热力图不再是一个置换,路径开始连接「非最优」的点对。熵插值因此是「移动的 Dirac + 随时间先变大后变小的高斯模糊」。
描述熵插值 $(\alpha_t)_t$ 的另一种方式,是给 Benamou–Brenier 形式 (7.2) 加一个正则项(Gentil et al. 2015;Chen et al. 2016a):
第二项 $\int\|\nabla\log\alpha_t\|^2\mathrm d\alpha_t$ 是 $\alpha_t$ 的 Fisher 信息(Fisher information):密度起伏越剧烈它越大。它偏爱「更模糊」的中间密度——这就是熵插值被高斯模糊的动态解释。($\varepsilon$ 前的常数取决于约定。)
熵插值中,布朗桥位置的方差是 t(1−t)ε²。它在什么时刻最大?
- 路径空间形式 (7.17):在所有轨迹上找概率分布;最优解只走 OT 配对之间的匀速直线段,逐帧截取即得位移插值 (7.18)。
- 熵正则 = 薛定谔桥 (7.19)–(7.20):布朗桥的混合,耦合由 Sinkhorn 给出;熵插值是「移动的 Dirac + 高斯模糊」,也可写成加 Fisher 信息正则的 BB (7.21)。
本章小结
- 核心公式:$\mathcal W_2^2=\min\int_0^1\!\int\|v_t\|^2\mathrm d\alpha_t\mathrm dt$,约束为连续性方程 (7.1)–(7.2)。最优流动 = 每个粒子匀速直线 = 位移插值 (7.6)–(7.9);一维时是分位数函数的线性插值 (7.7);沿最优路径动能不随时间变化。
- 凸化:换元 $J=\alpha v$ 后问题变为凸的 (7.3)–(7.5);$\theta(a,b)=\|b\|^2/a$ 联合凸、1-齐次,「没有质量就不能有通量」,所以线性混合 $(1-t)\alpha_0+t\alpha_1$ 的代价可以是 $+\infty$。
- 数值:交错网格 (7.10)–(7.11) 让离散质量守恒逐格精确成立;Douglas–Rachford (7.12)–(7.14) 把问题拆成「逐点三次方程」「Poisson 方程(FFT)」「小线性投影」三步。代价是必须打网格:只适合低维、规则区域。
- 推广:加源项并用 $\tau\theta(\alpha,s)$ 定价 → WFR (7.15),$\tau$ 权衡搬运与生灭(单个 Dirac 时是圆锥上的直线);迁移率 $a^{s-p}\|b\|^p$ → $\mathcal W_p$、$W^{-1,p}$、$H^{-1}$、$\mathcal W_1$ (7.16);路径空间 (7.17)–(7.18);熵正则 = 薛定谔桥 (7.19)–(7.20),等价于加 Fisher 信息正则的 BB (7.21)。
- 前后联系:第 2 章的 Monge 映射与一维分位数给出显式解;第 3 章的顶点结构解释了 $n+m-1$ 个质点;第 4 章的 Sinkhorn 给出薛定谔桥的耦合;第 6 章的 Beckmann 流是 $s=p\to1$ 的极限;第 10 章的非平衡 OT 是 WFR 的静态形式;Rem. 7.2 提到的梯度流见第 9 章。
| 视角 | 变量 | 代价 | 特点 |
|---|---|---|---|
| 静态 Kantorovich (2.15) | 耦合 $\pi(x,y)$ | $\int\|x-y\|^2\mathrm d\pi$ | 任意代价、点云、Sinkhorn;只知「谁去哪」 |
| 动态 Benamou–Brenier (7.3) | 密度 + 通量 $(\alpha_t,J_t)$ | $\int\!\!\int\|J\|^2/\alpha$ | 欧拉视角;凸;网格 + 近端分裂;易加源项、换迁移率 |
| 路径空间 (7.17) | 路径分布 $\bar\pi$ | $\int\mathcal L(\gamma)\mathrm d\bar\pi$ | 拉格朗日视角;熵正则化 = 薛定谔桥 (7.19) |
自测
沿位移插值(最优路径)运动时,总动能 E(t) = ∫ρₜ|vₜ|² 随时间怎样变化?
在 Douglas–Rachford 分裂中,「投影到质量守恒约束 C」这一步的主要计算是什么?
为什么本章的动态数值方法不适合高维数据(例如 50 维的点云)?
WFR (7.15) 中把 τ 调得很小(生灭很便宜),相距很远的两个等质量的峰之间的插值会怎样?
当 ε → 0 时,薛定谔桥 π̄*_ε 会趋向于什么?
习题
提示
(a) 直接对 $t$ 和 $x$ 求导;(b) 一维中单调递增的推前映射就是最优映射(Rem. 2.30)。参考解答
(a) $\partial_t\rho_t=-c\,\rho_0'(x-tc)$,$\partial_x(\rho_tv_t)=c\,\rho_0'(x-tc)$,两者相加为 0。总动能 $\int_0^1\!\int c^2\rho_t\,\mathrm dx\,\mathrm dt=c^2$。(b) $T(x)=x+c$ 单调递增且 $T_\sharp\rho_0=\rho_1$,所以它是最优映射,$\mathcal W_2^2=\int|T(x)-x|^2\rho_0=c^2$。这条路径的动能恰好等于 $\mathcal W_2^2$,由 (7.2) 它是最优的;它也正是 McCann 插值 (7.6)。提示
$\partial_t\alpha_t=\delta_1-\delta_0$ 与 $t$ 无关;在一维中由 $\partial_xJ$ 和「$J$ 在无穷远处为 0」可以唯一确定 $J$。参考解答
(a) $\alpha_t=\delta_t$,粒子以速度 1 匀速运动,$J_t=\delta_t$,动能 $\int_0^1 1\,\mathrm dt=1=\mathcal W_2^2$。(b) $\partial_xJ_t=-\partial_t\alpha_t=\delta_0-\delta_1$,积分得 $J_t=\mathbb 1_{(0,1)}$(区间 $(0,1)$ 的指示函数):0 与 1 之间处处有单位通量。但在 $(0,1)$ 上 $\alpha_t=0$,于是 $\theta(\alpha_t,J_t)=\theta(0,1)=+\infty$,在长度为 1 的区间上积分,代价为 $+\infty$。线性混合要求质量「瞬移」,这正是 θ 的第三种情形要禁止的。提示
(b) 验证 $\theta(a,b)=\sup\{\alpha a+\langle\beta,b\rangle\ :\ \alpha+\|\beta\|^2/4\le0\}$,仿射函数族的上确界是凸且下半连续的。参考解答
(a) $a\gt0$ 时 $\|\lambda b\|^2/(\lambda a)=\lambda\|b\|^2/a$;$(a,b)=(0,0)$ 时两边都是 0;其余情形两边都是 $+\infty$。(b) 记右边的上确界为 $\sigma(a,b)$。若 $a\gt0$,取 $\alpha=-\|\beta\|^2/4$,得 $\sup_\beta\{-a\|\beta\|^2/4+\langle\beta,b\rangle\}=\|b\|^2/a$(在 $\beta=2b/a$ 处取到)。若 $a=0$:$b\neq0$ 时 $\sup_\beta\langle\beta,b\rangle=+\infty$,$b=0$ 时为 0。若 $a\lt0$:取 $\beta=0$、$\alpha\to-\infty$,得 $+\infty$。所以 $\sigma=\theta$ 处处成立。仿射函数的逐点上确界是凸且下半连续的,故 $\theta$ 也是。提示
对 $i$ 求和,通量项是「望远镜」和。参考解答
(a) $\sum_i(\mathbf a_{k+1,i}-\mathbf a_{k,i})=-\sum_{i=1}^n(\mathbf J_{k,i+1}-\mathbf J_{k,i})=-(\mathbf J_{k,n+1}-\mathbf J_{k,1})=0$。(b) $\sum_i\mathbf a_{k+1,i}-\sum_i\mathbf a_{k,i}=\sum_i\mathbf s_{k,i}$:每一步总质量的变化恰好等于这一步的总源项——这就是 7.4 节非平衡演示中质量随时间变化的来源。提示
先对 $J$ 求最优(固定 $a\gt0$),再把结果代回对 $a$ 的一阶条件。参考解答
固定 $a\gt0$,对 $J$ 求导:$J-\tilde J+2\gamma J/a=0$,得 $J=\tilde J\,a/(a+2\gamma)$。对 $a$ 求导并代入:$a-\tilde a-\gamma\|J\|^2/a^2=0\iff(a-\tilde a)(a+2\gamma)^2=\gamma\|\tilde J\|^2$,这是原书所说的三次方程。等价地,$f(a)=a-\tilde a-\gamma\|\tilde J\|^2/(a+2\gamma)^2$ 在 $a\ge0$ 上严格递增,$f(0)=-\tilde a-\|\tilde J\|^2/(4\gamma)$。若 $f(0)\lt0$,存在唯一正根,这就是解;若 $f(0)\ge0$(即 $\tilde a+\|\tilde J\|^2/(4\gamma)\le0$),不存在正的驻点,由凸性最优解落在边界 $a=0$,而 $a=0$ 时必须 $J=0$(否则代价 $+\infty$),所以解是 $(0,0)$。提示
比较两种策略:圆锥上的直线段(边搬边变),以及经过顶点(原地消失 + 原地长出)。参考解答
起点 $z_0=(r,\varphi)=(1,0)$,终点 $z_1=(1,\Delta\varphi)$,$\Delta\varphi=d/(2\sqrt\tau)$。直线段的代价为 $4\tau|z_1-z_0|^2=4\tau(2-2\cos\Delta\varphi)=8\tau(1-\cos\Delta\varphi)$;经过顶点的代价为 $4\tau(1+1)=8\tau$。前者更小当且仅当 $\cos\Delta\varphi\gt0$,即 $\Delta\varphi\lt\pi/2$,$d\lt\pi\sqrt\tau$。所以 $\mathrm{WFR}^2=8\tau\big(1-\cos\min\{d/(2\sqrt\tau),\pi/2\}\big)$,临界距离为 $\pi\sqrt\tau$。$d$ 很小时 $1-\cos\Delta\varphi\approx\Delta\varphi^2/2$,$\mathrm{WFR}^2\approx4\tau\Delta\varphi^2=d^2=\mathcal W_2^2$:短距离时 WFR 就是经典 OT。提示
展开 $\operatorname{Var}(W(t)-tW(1))$。参考解答
(a) $B(0)=W(0)=0$,$B(1)=W(1)-W(1)=0$。$\operatorname{Var}B(t)=\operatorname{Var}W(t)-2t\operatorname{Cov}(W(t),W(1))+t^2\operatorname{Var}W(1)=t-2t^2+t^2=t(1-t)$。(b) $\bar\gamma(t)$ 是确定的均值 $(1-t)x+ty=\gamma_{x,y}(t)$ 加上高斯变量 $\varepsilon B(t)$,所以服从 $\mathcal N(\gamma_{x,y}(t),\,\varepsilon^2t(1-t))$(多维时各坐标独立)。方差在两端为 0、在 $t=\tfrac12$ 取最大值 $\varepsilon^2/4$——正是熵插值中的模糊核 $\mathcal G_{t(1-t)\varepsilon^2}$。演示中的路径就是这样生成的。提示
$\mathbf a$ 有 $(T+1)n^d$ 个分量;$d$ 个通量分量各约 $Tn^d$ 个。参考解答
$d=2$:$\mathbf a$ 约 $33\times128^2\approx5.4\times10^5$,$\mathbf J$ 约 $2\times32\times129\times128\approx1.06\times10^6$,合计约 $1.6\times10^6$。$d=3$:$\mathbf a$ 约 $33\times128^3\approx6.9\times10^7$,$\mathbf J$ 约 $3\times32\times129\times128^2\approx2.0\times10^8$,合计约 $2.7\times10^8$——每次 DR 迭代都要处理这么多数并做 FFT,维数每加 1 规模就乘以 $n$。Sinkhorn 的开销只取决于点数 $N$(每步 $O(N^2)$),维数只影响一次性计算代价矩阵;对只有少量 Dirac 的稀疏测度,网格方法还要为大片空白格点付费。所以动态方法适合低维、规则区域上的密度插值(图像、形状、流体),而不是高维数据。统计散度 Statistical Divergences
除了 Wasserstein 距离,数据科学里还有两大类比较分布的工具:逐点比较密度比的 φ-散度,和用一族测试函数找最大差异的积分概率度量(含 MMD)。本章把它们和 OT 放在一起比:谁看得见「平移」、谁能用样本可靠地估计,以及熵正则化怎样在 OT 与 MMD 之间架起一座桥。
- 说清 φ-散度的构造(逐点比较质量比 $\mathrm{d}\alpha/\mathrm{d}\beta$),会手算离散情形的 KL、TV、Hellinger、χ²,并理解它们为什么对「支撑不重叠」的分布失明。
- 理解积分概率度量(IPM)= 在测试函数族 $B$ 上找最大期望差;知道 TV、$\mathcal{W}_1$、平坦范数、MMD、能量距离各对应哪一族函数。
- 会用核矩阵的三块平均计算 MMD²(公式 (8.14)),理解高斯核带宽 σ 的作用与能量距离的「无尺度」性质。
- 理解「Wasserstein 空间不是 Hilbert 空间」的含义与证明思路:$d$ 是 Hilbert 距离 ⇔ $d^2$ 负定。
- 比较经验估计的样本复杂度:OT 的维数灾难 $O(n^{-1/d})$ 与 MMD 的 $O(n^{-1/2})$;φ-散度则必须先做密度估计。
- 理解去偏的熵正则 OT 散度 $\tilde{\mathcal{W}}_{p,\varepsilon}$:$\varepsilon\to 0$ 回到 OT,$\varepsilon\to\infty$ 变成能量距离(一种 MMD)。
- φ-散度(KL、TV、Hellinger、χ²、JS)逐点比较两个分布的质量比,完全不管「质量在哪里、相距多远」。两团分布一旦不重叠,TV 恒为 2、KL 为 +∞——对平移「失明」。
- 积分概率度量 $\|\alpha-\beta\|_B=\max_{f\in B}\int f\,\mathrm{d}(\alpha-\beta)$:派一族「探测函数」去找差异。函数越光滑,距离越「弱」、越尊重几何:TV($|f|\le 1$)、$\mathcal{W}_1$(1-Lipschitz)、平坦范数(两者兼有)、MMD(RKHS 单位球)。
- MMD² 只要核矩阵三块的平均:$\overline{K_{\alpha\alpha}}+\overline{K_{\beta\beta}}-2\,\overline{K_{\alpha\beta}}$。高斯核必须选对带宽 σ;能量距离(核 $-\|x-y\|$)不需要带宽。
- W 不是 Hilbert 距离:一维或高斯族里 W 恰好是欧氏距离,但在 $\mathbb{R}^d$($d\ge 2$)上 $\mathcal{W}_p^2$ 不是负定的,所以无法把分布无失真地放进一个欧氏(Hilbert)空间。
- 从样本估计:W 的误差 ~ $n^{-1/d}$(维数灾难),MMD ~ $n^{-1/2}$(与维数无关);φ-散度连「直接代入经验分布」都不行,必须先平滑(核密度估计或 k 近邻),结果强烈依赖带宽。
- Sinkhorn 散度 $\tilde{\mathcal{W}}_{p,\varepsilon}^p=2\mathcal{W}_{p,\varepsilon}(\alpha,\beta)^p-\mathcal{W}_{p,\varepsilon}(\alpha,\alpha)^p-\mathcal{W}_{p,\varepsilon}(\beta,\beta)^p$:ε 小像 OT(看几何),ε 大像 MMD(好估计),样本复杂度也在两者之间插值。
点击方框跳到对应小节。实线箭头=「用到 / 推出」,虚线=对比。
本章研究 Wasserstein 距离的统计性质:它与数据科学中其他常用的距离和散度相比如何,以及只拿到样本时能多准确地估计两个分布之间的距离。原书先在 8.1、8.2 节回顾两大类比较工具——散度(divergence)和积分概率度量(integral probability metric, IPM)。一个散度 $D$ 通常满足 $D(\alpha,\beta)\ge 0$,且 $D(\alpha,\beta)=0 \iff \alpha=\beta$,但不要求对称,也不要求三角不等式;IPM 则是用一族测试函数定义的对偶范数。它们都是 Wasserstein 距离的合理替代品,常被用作推断问题的损失函数(第 9 章)。随后 8.3 节说明 OT 距离不是 Hilbert 距离;8.4 节讨论如何从样本估计这些量;8.5 节介绍介于 OT 与 MMD 之间的熵正则化版本。
8.1 φ-散度 φ-Divergences
这一节回答:如果完全不引入「搬运」的概念,怎样比较两个分布?φ-散度的做法是逐点比较质量:在每个位置看 α 与 β 的质量之比 $\mathrm{d}\alpha/\mathrm{d}\beta$,比值偏离 1 越多,罚得越重。它们计算简单、分析性质好,是统计与机器学习中最常见的一类损失(KL 散度就是其中之一)。
函数 $\varphi:\mathbb{R}\to\mathbb{R}\cup\{\infty\}$ 称为熵函数,如果它下半连续、凸、定义域包含于 $[0,\infty)$,且在 $(0,\infty)$ 上不恒为 $+\infty$。它在无穷远处的增长速度记作
若 $\varphi'_\infty=\infty$(比任何线性函数长得快),称 φ 是超线性(superlinear)的。
设 φ 是熵函数。把 α 相对 β 做 Lebesgue 分解 $\alpha=\frac{\mathrm{d}\alpha}{\mathrm{d}\beta}\beta+\alpha^\perp$($\alpha^\perp$ 是 α 中「β 完全没有质量的地方」的那部分),定义
(α、β 非负时;否则定义为 ∞)。对同一组点 $(x_i)_{i=1}^n$ 上的离散分布 $\alpha=\sum_i a_i\delta_{x_i}$、$\beta=\sum_i b_i\delta_{x_i}$ (8.2),它就是
第二项值得多看一眼:在 β 没有质量、α 却有质量的格子上,比值 $a_i/b_i$ 是「无穷大」,于是按 φ 的增长速度 $\varphi'_\infty$ 罚款。φ 线性增长时(例如 TV 的 $|s-1|$)罚款有限,这一项保证 $\mathcal{D}_\varphi$ 仍是连续的;φ 超线性时(例如 KL),只要 α 在 β 的支撑外有一点点质量,散度就直接是 $+\infty$。
上图是几种熵函数 φ(s)(对应原书图 8.1),下图是两个 6 格直方图 a(蓝)与 b(红)。上下拖动柱顶的圆点改变柱高(其余柱子按比例缩放,总质量保持为 1);在下拉框中切换 φ。上图的圆点标出每一格的比值 sᵢ = aᵢ/bᵢ 和 φ(sᵢ);下图每格下方依次是比值 sᵢ 和该格的贡献 φ(sᵢ)·bᵢ。
所有 φ 在 s = 1 处取 0:某格 aᵢ = bᵢ 就不贡献。把 b 的某一格清零而 a 在那里仍有质量时,KL 与 χ²(超线性)立刻变成 +∞,TV 与 Hellinger 只加上 φ'∞·aᵢ = aᵢ。再比较 𝒟(a|b) 与 𝒟(b|a):KL、χ² 不对称,TV、Hellinger、JS 对称。
若 φ 是熵函数,则 $\mathcal{D}_\varphi$ 关于 $(\alpha,\beta)$ 联合 1-齐次、联合凸,并且弱* 下半连续。
它在说什么
1-齐次:$\mathcal{D}_\varphi(\lambda\alpha|\lambda\beta)=\lambda\,\mathcal{D}_\varphi(\alpha|\beta)$——把两边的质量同时放大,散度等比例放大(从 (8.3) 一眼可见:比值 $a_i/b_i$ 不变,权重 $b_i$ 放大 λ 倍)。联合凸性让以 φ-散度为损失的优化问题有良好结构;下半连续保证极小化问题有解。证明见 Liero et al. (2018, Thm 2.7)。
借助 φ 的 Legendre 变换 $\varphi^*(s)=\sup_t\, st-\varphi(t)$(参见 (4.54)),φ-散度也可以写成「测试函数」的形式:
这和 8.2 节的积分概率度量长得很像,但对 f 没有任何光滑性要求——f 可以在每个点任意取值,所以它仍然只能「逐点」看质量。例:TV 的 $\varphi(s)=|s-1|$ 给出 $\varphi^*(s)=s$(当 $|s|\le 1$,否则为 ∞),对偶式恰好变成 $\sup_{|f|\le 1}\int f\,\mathrm{d}(\alpha-\beta)$,这正是 8.2 节的 Ex. 8.6。
常见的 φ-散度一览
原书 Fig. 8.1 画出了下面几个熵函数(上面的演示就是它的可交互版本),Fig. 8.2 总结了它们之间的不等式关系(见本节末)。
| 名称(原书编号) | φ(s),s ≥ 0 | φ′∞ | 离散公式(同一支撑) | 对称? | 取值范围 |
|---|---|---|---|---|---|
| KL Ex. 8.1 | $s\log s-s+1$ (8.4) | ∞ | $\sum_i a_i\log\frac{a_i}{b_i}-a_i+b_i$ | 否 | [0, ∞] |
| 全变差 TV Ex. 8.2 | $|s-1|$ (8.8) | 1 | $\sum_i|a_i-b_i|$ | 是(范数) | [0, 2] |
| Hellinger Ex. 8.3 | $(\sqrt{s}-1)^2$ | 1 | $\mathfrak{h}^2=\sum_i(\sqrt{a_i}-\sqrt{b_i})^2$ | 是(𝔥 是距离) | 𝔥 ∈ [0, √2] |
| Jensen–Shannon Ex. 8.4 | 见正文 | ½ log 2 | $\tfrac12\mathrm{KL}(a|m)+\tfrac12\mathrm{KL}(b|m)$,$m=\frac{a+b}{2}$ | 是(JS 是距离) | JS² ∈ [0, log 2] |
| χ² Ex. 8.5 | $(s-1)^2$ | ∞ | $\sum_i\frac{(a_i-b_i)^2}{b_i}$ | 否 | [0, ∞] |
「取值范围」按概率分布计算。φ(0) 的值决定了「β 有质量而 α 没有」的格子的罚款:KL、TV、χ²、Hellinger² 都有 φ(0) = 1。
KL 又称相对熵(relative entropy),第 4 章 (4.6)、(4.10) 已经用过(熵正则化里的那个 KL)。它对应 Shannon–Boltzmann 熵函数 $\varphi_{\mathrm{KL}}(s)=s\log s-s+1$($s\gt 0$),$\varphi_{\mathrm{KL}}(0)=1$,$s\lt 0$ 时为 $+\infty$ (8.4)。对概率向量,$-a_i+b_i$ 两项求和抵消,就是熟悉的 $\sum_i a_i\log(a_i/b_i)$。
原书本章有两个 Remark 8.1 和两个 Remark 8.2(编号重复),这里保留原编号并附标题以便区分。
对光滑严格凸函数 $\psi:\mathbb{R}^n\to\mathbb{R}$,Bregman 散度是「函数值」与「切线预测值」之差:
KL 取 $\psi=-\mathbf{H}$(负熵,(4.1))时恰好是 Bregman 散度 $\mathbf{KL}=\mathbf{B}_{-\mathbf{H}}$;在离散情形,KL 是唯一既是 φ-散度又是 Bregman 散度的散度。
Bregman 散度在局部就是一个(带权)欧氏距离的平方:$\mathbf{B}_\psi(\mathbf{a}+\varepsilon|\mathbf{a}+\eta)=\langle\partial^2\psi(\mathbf{a})(\varepsilon-\eta),\varepsilon-\eta\rangle+o(\|\varepsilon-\eta\|^2)$,且与 $\mathbf{b},\mathbf{b}'$ 等距的点集是超平面。所以它可以代替欧氏距离用在一阶优化里——最著名的是镜像下降(mirror descent)(第 9 章 (9.32));也可用来推导 Sinkhorn 迭代并分析其收敛(Rem. 4.8)。
在一维高斯族上可以把 KL 与二次代价 OT 的几何做个对比。$\alpha=\mathcal{N}(m_\alpha,\sigma_\alpha^2)$、$\beta=\mathcal{N}(m_\beta,\sigma_\beta^2)$ 时
(原书 (8.6) 中均值差 $|m_\alpha-m_\beta|$ 漏了平方,这里是正确形式。)
当 $\sigma_\beta\to 0$(β 退化成 Dirac),KL 趋于无穷:在 KL 的眼里,退化高斯离所有其他高斯都无限远。二阶展开 $\mathrm{KL}(\mathcal{N}(m+\delta_m,(\sigma+\delta_\sigma)^2)|\mathcal{N}(m,\sigma^2))=\frac{1}{\sigma^2}(\tfrac12\delta_m^2+\delta_\sigma^2)+o(\delta_m^2,\delta_\sigma^2)$ 给出一个局部黎曼度量(Fisher 度量(Fisher metric));在坐标 $(m/\sqrt2,\sigma)$ 下它恰好是双曲 Poincaré 上半平面的度量:测地线是圆心在 σ = 0 轴上的半圆,沿测地线走向 σ = 0 要花无穷长的时间。反观 OT(Rem. 2.31),
即 $(m,\sigma)$ 平面上的欧氏几何,测地线是直线段。原书 Fig. 8.3 对比了两种插值;下面的演示可以拖动两端的高斯。
上图的横轴是均值 m,纵轴是标准差 σ;每个点就是一个高斯分布。拖动红点 α 与蓝点 β。紫色弧线是 KL(Fisher 度量)的测地线,绿色直线是 W₂ 测地线;下面两幅图画出沿两条路径的插值分布(颜色从红渐变到蓝)。拖动 t 或按「播放」看一个分布沿路径移动。
两端方差相同、只有均值不同时,KL 测地线在中途先变胖再变瘦(弧线向上拱起),而 OT 直接平移、宽度不变。把 β 的 σ 拖向 0:KL 与双曲长度迅速飙升(退化高斯「无限远」),W₂ 却平稳地趋于 √(Δm² + σ_α²)。
$\mathrm{TV}=\mathcal{D}_{\varphi_{\mathrm{TV}}}$,$\varphi_{\mathrm{TV}}(s)=|s-1|$($s\ge 0$)(8.8)。它其实是整个测度空间 $\mathcal{M}(\mathcal{X})$ 上的一个范数:
有密度时它是 $L^1$ 范数 $\|\rho_\alpha\|_{L^1}$;离散时是 $\ell^1$ 范数 $\sum_i|a_i|$。注意本书的 TV 是完整的 $\ell^1$ 范数,两个概率分布之间最大为 2(有些文献取一半,最大为 1)。
TV 范数定义了测度空间上的强拓扑。在半径为 R 的紧区域上 $\mathcal{W}_1(\alpha,\beta)\le R\,\|\alpha-\beta\|_{\mathrm{TV}}$,所以 TV 收敛 ⇒ W 收敛(弱收敛);反之不然:$x\to y$ 时 $\delta_x$ 并不强收敛到 $\delta_y$,因为 $x\neq y$ 时总有 $\|\delta_x-\delta_y\|_{\mathrm{TV}}=2$。弱拓扑的一大好处是:紧空间上的概率测度集 $\mathcal{M}_+^1(\mathcal{X})$ 在弱拓扑下是紧的,任何序列都有收敛子列——这让第 9 章的许多优化问题有解。
$\mathfrak{h}=\mathcal{D}_{\varphi_H}^{1/2}$,$\varphi_H(s)=|\sqrt{s}-1|^2$。它是 $\mathcal{M}_+(\mathcal{X})$ 上的一个距离,和 TV 一样度量强拓扑。有密度时 $\mathfrak{h}(\alpha,\beta)=\|\sqrt{\rho_\alpha}-\sqrt{\rho_\beta}\|_{L^2}$,离散时 $\mathfrak{h}=\|\sqrt{\mathbf{a}}-\sqrt{\mathbf{b}}\|$——先开平方,再算欧氏距离。更一般地,$\varphi_{L^p}(s)=|s^{1/p}-1|^p$ 统一了 Hellinger(p = 2)与 TV(p = 1),$\mathcal{D}_{\varphi_{L^p}}^{1/p}$ 对 $0\lt p\lt\infty$ 都是度量强收敛的距离。
KL 不对称;它虽是 Bregman 散度(局部是二次型),却不是某个距离的平方。把两者都与「中点」$\xi=\frac{\alpha+\beta}{2}$ 比较就对称了:
JS 是一个距离,而且永远有界:$0\le\mathrm{JS}^2\le\log 2$;它也度量强收敛。$\mathrm{JS}^2$ 本身是一个 φ-散度(原书写出了对应的 φ;把它归一化成 $\varphi(1)=0$ 的形式是 $\varphi(s)=\tfrac12\big[s\log s-(s+1)\log\tfrac{s+1}{2}\big]$,演示中用的就是它)。
$\varphi_{\chi^2}(s)=|s-1|^2$。同一支撑上的离散分布:$\chi^2(\alpha|\beta)=\sum_i\frac{(a_i-b_i)^2}{b_i}$。只要某格 $b_i$ 很小而 $a_i$ 不小,它就会非常大。
蓝色峰 α 固定在 0,红色峰 β = α 平移 t。拖动红色峰或 t 滑块,也可以按「播放」。左图是 φ-散度随 t 的变化,右图是 W₁、MMD(高斯核 σ = 0.5)与能量距离;竖线标出当前 t。切换峰形看紧支撑与全支撑的差别。
余弦峰一旦完全分开(t ≥ 1),TV = 2、𝔥 = √2、JS = √(log 2) 全部「卡死」,而 KL、χ² 从 t > 0 起就是 +∞——无论两峰相距 1 还是 2.5,φ-散度都给出同一个数,完全不知道「有多远」。右图的 W₁ = t 一直线性增长;MMD 在距离远超核宽 σ 后也会饱和,能量距离则像 √t 一样持续增长。这也是拟合生成模型时人们偏爱 W 或 MMD 这类「看得见几何」的损失的原因之一(第 9 章)。
直方图 a 的质量全部在第 1 格,b 的质量全部在第 2 格(两格相邻)。把 b 的质量改放到第 100 格后,下列哪个量会改变?
为什么 (8.1) 中需要额外的一项 φ′∞·α⊥(𝒳)?
- φ-散度 = 逐点比较质量比:$\sum_i\varphi(a_i/b_i)\,b_i$ + 支撑外的罚款 $\varphi'_\infty\sum_{b_i=0}a_i$。它不使用地面距离。
- KL、χ² 超线性、不对称、可为 +∞;TV、Hellinger、JS 对称有界,但在支撑不重叠时饱和(TV = 2)。
- KL 同时是 Bregman 散度;在高斯族上它诱导双曲几何,而 W₂ 诱导欧氏几何 (8.7)。
- TV 度量强拓扑,W 度量弱拓扑:δ_x → δ_y 在 W 下收敛,在 TV 下不收敛。
8.2 积分概率度量 Integral Probability Metrics
这一节要解决 8.1 节留下的问题:怎样造一个尊重几何的距离?思路是换个角度看差异——不再逐点比较质量,而是派出一族「探测函数」 f,比较它们在 α 与 β 下的平均读数 $\int f\,\mathrm{d}\alpha$ 与 $\int f\,\mathrm{d}\beta$,取差得最多的那一个。第 6 章 W₁ 的对偶形式 (6.3) 正是这种构造的特例。
给定一个对称的凸函数集合 $B$(「测试函数族」),定义
这类对偶范数常被称为积分概率度量(Sriperumbudur et al. 2012)。它们是构造能处理任意测度的「弱」范数的便捷方法。
把测试函数想成评委,$\int f\,\mathrm{d}\alpha$ 是评委给 α 打的平均分。IPM 取「分差最大的评委」的意见。
- 如果评委可以是任意 $|f|\le 1$ 的函数(允许在一点打 +1、紧挨着的一点打 −1),那么 α、β 只要错开一点点,就有评委能打出最大分差 → TV(强,看不见距离)。
- 如果要求评委的打分随位置平滑变化(1-Lipschitz:相距 δ 的两点分差不超过 δ),把质量挪动 δ 最多改变 δ 分 → W₁(弱,随位移连续变化)。
- RKHS 单位球里的函数更光滑 → MMD:更弱、更容易估计,但也更「近视」(尺度由核决定)。
TV 范数(Ex. 8.2)就是取整个连续函数空间的单位球 $B=\{f\in\mathcal{C}(\mathcal{X}):\|f\|_\infty\le 1\}$ 得到的对偶范数:最优的 f 在 α 多的地方取 +1、β 多的地方取 −1。TV 是唯一一个既是(非平凡)φ-散度、又是对偶范数的量(Sriperumbudur et al. 2009)——它是两大家族的交集。
用更小的「球」B(只含连续、有时甚至光滑的函数)得到更弱的对偶范数。要让 $\|\cdot\|_B$ 度量弱收敛(Def. 2.2),只要 B 张成的空间在连续函数空间里按一致范数 $\|\cdot\|_\infty$ 稠密就够了(Ambrosio et al. 2006)。直观地说:B 的线性组合要能逼近任何连续的「评委」。
W₁ 与平坦范数 W₁ and Flat Norm
如果 B 有界(所有 f 被同一个常数控制),$\|\cdot\|_B$ 就是整个测度空间 $\mathcal{M}(\mathcal{X})$ 上的范数。W₁ 不是这样:1-Lipschitz 函数加上任意常数仍是 1-Lipschitz,所以除非 $\int\mathrm{d}\alpha=0$,否则 $\|\alpha\|_B=+\infty$——W₁ 只能比较总质量相等的测度。补救办法是再限制 f 的取值范围,得到平坦范数。
(6.3) 定义的 W₁ 是对偶范数 (8.10) 的特例,其中 $B=\{f:\ \mathrm{Lip}(f)\le 1\}$ 是全体 1-Lipschitz 函数。
平坦范数(flat norm)取
它在整个 $\mathcal{M}(\mathcal{X})$ 上度量弱收敛。离散计算时只需在 W₁ 的线性规划 (6.2) 中再加上约束 $|\mathbf{f}_k|\le 1$。它有时也叫 Kantorovich–Rubinstein 范数(Hanin 1992),在成像反问题中用作保真项(Lellmann et al. 2014)。与之相近的 Dudley 度量取 $B=\{f:\ \|\nabla f\|_\infty+\|f\|_\infty\le 1\}$。
Book.ot.emd 精确算出来的。
下方数轴上,蓝色向上的针是 α 的原子,红色向下的针是 β 的原子(针长 ∝ 质量);左右拖动针尖移动原子。上图画出所选函数族中最优的测试函数 f*(使 ∫f dα − ∫f dβ 最大),圆点是 f* 在各原子处的取值。下图是原书图 8.4:五种距离随 t 的变化。
选 TV 时,f* 只是在各原子处的 ±1 尖刺——它只关心「这一点谁多」,所以 t ≠ 0 时恒为 2。选 W₁ 时,f* 是斜率 ±1 的折线,原子挪多远,f* 的落差就有多大。平坦范数的 f* 被夹在 [−1, 1] 内,于是 |t| > 2 后饱和;MMD 的 f* 是几个「高斯包」的差,t 远超 σ 后也饱和在 √2;能量距离随 √(2|t|) 增长,没有带宽。
对偶 RKHS 范数与最大均值差异 Dual RKHS Norms and Maximum Mean Discrepancies
借助核方法与再生核 Hilbert 空间(reproducing kernel Hilbert space, RKHS),还可以在测度上定义「欧氏式」的范数(由二次型给出)。先回顾基本定义。
对称函数 $k$(相应地 $\varphi$)称为正定(相应地负定)的,如果对任意 $n$、任意点 $x_1,\dots,x_n$ 与任意向量 $r\in\mathbb{R}^n$ 都有
若正性只对零均值向量($\langle r,\mathbb{1}_n\rangle=0$)成立,称 k 为条件正定(conditionally positive)的。换句话说:核矩阵 $[k(x_i,x_j)]$ 是半正定矩阵(条件正定:只在与全 1 向量正交的子空间上半正定)。
对条件正定的 k,定义
其中 X、X′ 独立同分布于 α。$\|\alpha-\beta\|_k$ 称为最大均值差异(maximum mean discrepancy, MMD)(Gretton et al. 2007),在形状分析里也叫「核范数」(Glaunès et al. 2004)。可以证明,它正是 RKHS 单位球 B 对应的对偶范数 (8.10)。
按 Rem. 8.3,若对偶球 B 张成的空间在 $\mathcal{C}(\mathcal{X})$ 中稠密,MMD 就度量弱收敛;也就是有限和 $\sum_i a_ik(x_i,\cdot)$ 能一致逼近任意连续函数。对 $\mathbb{R}^d$ 上的平移不变核 $k(x,y)=k_0(x-y)$,这等价于 Fourier 变换处处为正:$\hat k_0(\omega)\gt 0$。
离散测度 $\alpha=\sum_i a_i\delta_{x_i}$ 的核范数就是一个二次型:$\|\alpha\|_k^2=\sum_{i,i'}a_ia_{i'}\mathbf{k}_{i,i'}=\langle\mathbf{k}\mathbf{a},\mathbf{a}\rangle$,$\mathbf{k}_{i,i'}=k(x_i,x_{i'})$。当 α、β 在同一组点上时 $\|\alpha-\beta\|_k^2=\langle\mathbf{k}(\mathbf{a}-\mathbf{b}),\mathbf{a}-\mathbf{b}\rangle$——单纯形上的一个欧氏范数(k 正定时是真正的范数,半正定时可能退化)。支撑不同时:
把所有点排成一个大核矩阵 $K=\begin{bmatrix}K_{\alpha\alpha} & K_{\alpha\beta}\\ K_{\beta\alpha} & K_{\beta\beta}\end{bmatrix}$,等权时 (8.14) 就是「左上块平均 + 右下块平均 − 2 × 非对角块平均」。
左图:两团平面点云 α(蓝)与 β(红),可拖动任意点;背景色是见证函数 μ_α − μ_β(蓝 = α 占优,红 = β 占优)。右图:把 20 个点排成核矩阵 K,四个分块的平均值代入 (8.14) 就得到 MMD²。拖动 σ 滑块,或换成能量距离核。
σ 很小时 K 几乎是单位矩阵:每个点只和自己相似,MMD² → 1/n + 1/m,与两团点的位置几乎无关(像 TV 一样「失明」)。σ 很大时 K 几乎全是 1,三块平均都接近 1,MMD² → 0,只剩下均值差的微弱信号。σ 与点云的「典型间距」相当时,分块结构最清楚。能量距离核不需要选 σ。
最常用的是高斯核 $k(x,y)=e^{-\|x-y\|^2/(2\sigma^2)}$,它是 $\mathbb{R}^d$ 上正定的泛核。它可分离为一维核的乘积,在规则网格上计算很方便(参见 Rem. 4.17)。但必须选带宽 σ:它应当与被比较测度中观测点的「典型尺度」相匹配。如果数据是多尺度的(有的区域很密、有的很稀),高斯核就不合适,应改用「无尺度」核(见 Ex. 8.12);代价是这类核是全局的(多项式慢衰减),无法用紧支撑近似,计算更贵。原书 Fig. 8.5 比较了能量距离核与三种宽度的高斯核:σ 太小,只看到曲线附近的细节;σ 太大,整个差异被抹成一两团。
进阶:负 Sobolev 范数 H⁻¹ 与 H⁻ʳ(Ex. 8.10、8.11)
H⁻¹(ℝᵈ) Ex. 8.10:Sobolev 空间 $H^1$(导数平方可积的函数)的对偶,由原始 RKHS 范数 $\|\nabla f\|_{L^2}^2$ 定义。d > 1 时它对 Dirac 这类奇异测度没有定义($H^1$ 中的函数一般不连续)。对零均值、有密度的测度,它也有「散度形式」:
与第 6 章 Beckmann 问题 (6.4) 对比:那里是向量场 s 的 L¹ 范数,这里是 L² 范数。其加权版本 $\|\rho\|_{H^{-1}(\alpha)}^2=\min_{\mathrm{div}(s)=\rho}\int\|s\|^2\mathrm{d}\alpha$ 是 W₂ 的自然「线性化」:由 Benamou–Brenier 动态形式,
问题在于 $\|\alpha-\beta\|_{H^{-1}(\alpha)}$ 因为被 α 加权而不是范数;一般不能换成 $\|\alpha-\beta\|_{H^{-1}(\mathbb{R}^d)}$,除非两者都有密度:若密度在同一支撑上介于 $a\gt 0$ 与 $b\lt\infty$ 之间,则 $b^{-1/2}\|\alpha-\beta\|_{H^{-1}}\le\mathcal{W}_2(\alpha,\beta)\le a^{-1/2}\|\alpha-\beta\|_{H^{-1}}$ (8.17)(Santambrogio 2015, Thm 5.34)。
H⁻ʳ(ℝᵈ) Ex. 8.11:更一般地用 Fourier 变换定义 $\|\alpha\|_{H^{-r}}^2=\int\|\omega\|^{-2r}|\hat\alpha(\omega)|^2\mathrm{d}\omega$,对应卷积核 $\hat k_0(\omega)=\pm\|\omega\|^{-2r}$,即(差一个常数)$k_0(x)=\|x\|^{-(d-2r)}$($r\lt d/2$)或 $-\|x\|^{2r-d}$($r\gt d/2$)(8.18)。要度量弱收敛,$H^r$ 中的函数必须连续,这要求 $r\gt d/2$——维数越高,需要的光滑性越高。
与距离 d 相联系的能量距离(d = 1 时也叫 Cramér 距离,Székely & Rizzo 2004)取核
只要 d 是负定的(例如欧氏距离),这就是合法的 MMD 范数;在 $\mathbb{R}^d$ 上它等于 Sobolev 范数 $\|\cdot\|_{H^{-(d+p)/2}}$。它相对高斯核的最大优点是无尺度(scale-free),不用选带宽:记 $f_s(x)=sx$ 为放大 s 倍,
$\|f_{s\sharp}(\alpha-\beta)\|_{\mathrm{ED}(\mathbb{R}^d,\|\cdot\|^p)}=s^{p/2}\,\|\alpha-\beta\|_{\mathrm{ED}(\mathbb{R}^d,\|\cdot\|^p)}$,而 Wasserstein 距离是完美的线性缩放 $\mathcal{W}_p(f_{s\sharp}\alpha,f_{s\sharp}\beta)=s\,\mathcal{W}_p(\alpha,\beta)$。
注意 p 必须小于 2:p = 2 时能量距离退化为均值之差 $\big\|\int x\,(\mathrm{d}\alpha-\mathrm{d}\beta)\big\|$(差一个常数因子),不再是范数。所以能量距离不可能像 W 那样对缩放线性。
| 距离 | 测试函数族 B | α = δ₀、β = δₜ 时的值 | 随 |t| 的行为 | 参数 |
|---|---|---|---|---|
| TV Ex. 8.6 | $\|f\|_\infty\le 1$ | 2(t ≠ 0) | 立刻跳到最大值 | 无 |
| W₁ Ex. 8.7 | $\mathrm{Lip}(f)\le 1$ | $|t|$ | 线性增长 | 无 |
| 平坦范数 Ex. 8.8 | Lip ≤ 1 且 $\|f\|_\infty\le 1$ | $\min(|t|,2)$ | 先线性,后饱和 | 无 |
| Dudley Ex. 8.8 | $\|\nabla f\|_\infty+\|f\|_\infty\le 1$ | $2|t|/(2+|t|)$ | 平滑饱和到 2 | 无 |
| MMD(高斯核)Ex. 8.9 | RKHS 单位球 | $\sqrt{2-2e^{-t^2/2\sigma^2}}$ | |t| ≫ σ 后饱和到 √2 | 带宽 σ |
| 能量距离 Ex. 8.12 | 核 $-\|x-y\|$ | $\sqrt{2|t|}$ | 像 √|t| 一样增长 | 无(无尺度) |
表中 δ₀ 与 δₜ 的数值是按各自定义直接算出的(例如 Dudley:在 L + M = 1 的约束下最大化 min(L|t|, 2M))。
用高斯核 MMD 比较两团点云,σ 取得比两团点之间的距离小得多,会发生什么?
为什么 W₁ 的测试函数族(1-Lipschitz 函数)不能直接给出整个测度空间上的范数,而平坦范数可以?
- IPM $\|\alpha-\beta\|_B=\max_{f\in B}\int f\,\mathrm{d}(\alpha-\beta)$:选不同的函数族 B 得到 TV、W₁、平坦范数、Dudley、MMD、能量距离。
- B 张成的空间在 $\mathcal{C}(\mathcal{X})$ 中稠密 ⇒ 度量弱收敛;泛核($\hat k_0\gt 0$)的 MMD 就满足。
- MMD² = 核矩阵三块平均的组合 (8.14),计算只要 $O(n^2)$;高斯核要选 σ,能量距离无尺度但只按 $s^{p/2}$ 缩放。
- H⁻¹ 范数是 W₂ 的局部线性化 (8.16)。
8.3 Wasserstein 空间不是 Hilbert 空间 Wasserstein Spaces Are Not Hilbertian
这一节回答:能不能把每个分布映射成某个欧氏(Hilbert)空间里的一个点,使 W 距离恰好等于这些点之间的欧氏距离?如果可以,核方法、多维标度(MDS)、低维嵌入这一整套欧氏工具就能直接搬到「分布」上。答案是:一维时可以,二维及以上不行。
集合 $\mathcal{Z}$ 上的距离 d 称为 Hilbert 距离,如果存在一个 Hilbert 空间 $\mathcal{H}$ 和映射 $\phi:\mathcal{Z}\to\mathcal{H}$,使得对任意 $z,z'$ 都有 $d(z,z')=\|\phi(z)-\phi(z')\|_{\mathcal{H}}$。
2.6 节的几个闭式特例说明,OT 有时确实是 Hilbert 距离:
- 一维分布(Rem. 2.30):取 φ = 广义分位数函数,W₂ 就是分位数函数之差的 L² 范数。
- 一维高斯(Rem. 2.31、(8.7)):W₂ 就是 (均值, 标准差) 这两个数的欧氏距离。
Hilbert 距离在数据分析中有很多好处(Dattorro 2017)。第一,它能直接变成径向基核:对任何 Hilbert 距离 d,$e^{-d^p/t}$ 对所有 $0\le p\le 2$、$t\gt 0$ 都是正定核(Berg et al. 1984)——高斯核(p = 2)和 Laplace 核(p = 1)就是欧氏距离的特例;整个核方法领域都建立在核的正定性之上。第二,Hilbert 空间中的点可以用多维标度等简单方法、以很小的失真嵌入到低维空间(Johnson & Lindenstrauss 1984;Barvinok 2002)。
于是人们自然希望 W 在更一般的情形(例如 $\mathcal{X}$ 是二维或更高维)仍是 Hilbert 距离。下面的等价刻画可以否定这一点。
距离 d 是 Hilbert 距离,当且仅当 $d^2$ 是负定的:对任意点 $z_1,\dots,z_n$ 和任意满足 $\sum_i r_i=0$ 的权重 r,都有 $\sum_{i,j}r_ir_j\,d^2(z_i,z_j)\le 0$。
(原书在 8.1 节和 8.3 节各有一个「Proposition 8.1」。这里的「负定」按惯例只考虑 $\sum_i r_i=0$ 的权重——即 Def. 8.3 意义下的条件负定,证明中也用到了这一点。)
证明思路
⇒(容易):若 $d(z_i,z_j)=\|\phi_i-\phi_j\|$,展开 $\|\phi_i-\phi_j\|^2=\|\phi_i\|^2+\|\phi_j\|^2-2\langle\phi_i,\phi_j\rangle$。由于 $\sum_i r_i=0$,含 $\|\phi_i\|^2$ 的项求和后消失,只剩
⇐(深刻):由 Schoenberg (1938) 的经典定理(见 Berg et al. 1984, Prop. 3.2)——负定的 $d^2$ 总能由某个 Hilbert 空间中的点实现。
第 1 步:Hilbert 空间里,「中点」是唯一的
若 $d(P,M)=d(M,Q)=\tfrac12 d(P,Q)$,三角不等式取等号。Hilbert 范数是严格凸的,取等号只能是 M 恰好落在线段 PQ 正中间:$M=\tfrac{P+Q}{2}$。所以两个不同的点不可能同时是 P、Q 的中点。
第 2 步:两个测度 T 与 B
在单位正方形的四个角上,T 把质量 ½、½ 放在上边两个角,B 放在下边两个角。每份质量竖直下移距离 1,所以 $\mathcal{W}_1(T,B)=1$。
第 3 步:副对角测度 A 是 T、B 的「中点」
A 把质量放在左上、右下两个角。它和 T 共享左上角,只需把右上角的 ½ 质量下移 1:$\mathcal{W}_1(T,A)=\tfrac12$;同理 $\mathcal{W}_1(A,B)=\tfrac12$。而 $\tfrac12+\tfrac12=1=\mathcal{W}_1(T,B)$——A 恰好「在 T 与 B 的正中间」。
第 4 步:主对角测度 D 也是「中点」
D 把质量放在左下、右上两个角。完全对称地,$\mathcal{W}_1(T,D)=\mathcal{W}_1(D,B)=\tfrac12$,D 也是一个中点。
第 5 步:矛盾——W₁ 不是 Hilbert 距离
如果 W₁ 是 Hilbert 距离,由第 1 步,A 与 D 的像都必须等于 T、B 的像的中点,于是 $\mathcal{W}_1(A,D)=0$。但把 A 变成 D,每份 ½ 质量都要移动 1:$\mathcal{W}_1(A,D)=1$。矛盾!用负定性的语言:四边形 T–A–B–D 的两条「对角线」平方和 $1^2+1^2=2$ 大于四条边的平方和 $4\times(\tfrac12)^2=1$,而欧氏空间里任何四边形都满足「对角线平方和 ≤ 四边平方和」。
第 6 步:W₂ 也不行(六个测度的反例)
对 W₂,上面的中点论证失效($\mathcal{W}_2(T,A)=1/\sqrt2$)。换一个构型:上、下、左、右四个「边」测度两两之间都有 $\mathcal{W}_2=1$——在 Hilbert 空间中它们只能是一个棱长为 1 的正四面体的四个顶点(外接球半径² = 3/8)。D、A 到每条边的 $\mathcal{W}_2^2$ 都是 ½。由「到四顶点的平方距离之和 = 4×到中心的距离² + 4×半径²」,D、A 都离中心只有 $\sqrt{1/8}$,从而 $\mathcal{W}_2(D,A)\le 2\sqrt{1/8}\approx 0.71$。可实际上 $\mathcal{W}_2(D,A)=1$!等价地:给 (D, A, T, B, L, R) 权重 r = (2, 2, −1, −1, −1, −1),得 $\sum r_ir_j\mathcal{W}_2^2=4\gt 0$,违反负定性。
若 $\mathcal{X}=\mathbb{R}^d$,$d\ge 2$,地面代价取欧氏距离 $d(x,y)=\|x-y\|_2$,则 p = 1、2 时 p-Wasserstein 距离都不是 Hilbert 距离。
证明思路(原书的数值反例)
只需在 d = 2 找反例(它自动是更高维的反例)。取单位正方形的四个角 $x^1=[0,0],x^2=[1,0],x^3=[0,1],x^4=[1,1]$,考虑四维单纯形上步长为 ¼ 的全部网格点:每个直方图 $\mathbf{a}^i$ 的分量取自 $\{0,\tfrac14,\tfrac12,\tfrac34,1\}$ 且和为 1,共 $\binom{4+4-1}{4}=35$ 个。对给定的 p 算出 35×35 的 Wasserstein 距离矩阵 $\mathbf{D}_p$。
$\mathbf{D}_p^2$(逐元素平方)不是负定的,当且仅当中心化矩阵 $\mathbf{J}\mathbf{D}_p^2\mathbf{J}$($\mathbf{J}=\mathbb{I}_n-\tfrac1n\mathbb{1}_{n,n}$)有正特征值——因为 $\mathbf{J}r$ 恰好取遍所有和为 0 的向量。原书 Fig. 8.6 画出了最大特征值随 p ∈ [1, 4] 的变化:全部为正。下面的演示用 Book.ot.emd 实时重算了这张图。
选一组测度,拖动 p。左下图是中心化平方距离矩阵 J D²ₚ J 的全部特征值(从大到小;红色 = 正特征值,它们正是「负定性」被破坏的方向);右下图是最大特征值随 p 的变化(后台逐点计算)。对照组「直线上的 35 个直方图」的四个点在一条直线上。
正方形上的 35 个直方图:对每个 p ∈ [1, 4] 最大特征值都为正(p = 1 时约 1.21,p ≈ 2.8 处最小约 0.34,与原书图 8.6 一致),所以 W₁、W₂ 都不是 Hilbert 距离。六个两点测度在 p ≤ 2 时同样给出正特征值,p ≥ 3 时不再违反——一个反例是否有效取决于 p。直线上的对照组只在 p = 2 时最大特征值降到 0(数值误差内):一维 W₂ 确实是 Hilbert 距离(φ = 分位数函数),而一维的 W₁、W₃… 仍然不是。
嵌入与失真 Embeddings and Distortion
既然不能「完美」地放进 Hilbert 空间,退而求其次:能否以较小的失真(distortion)近似嵌入?有大量工作刻画了这一点的难度:
- 当 $\mathcal{X}=\mathbb{R}^d$、$d\ge 2$ 时,把测度嵌入 $\ell^2$ 必然产生相当大的失真(Naor & Schechtman 2007;Andoni et al. 2018)。
- 嵌入 $\ell^1$ 容易一些:$0\lt p\le 1$ 时可以把 p-Wasserstein 空间准等距地嵌入 $\ell^1$(Indyk & Thaper 2003;Andoni et al. 2008;Do Ba et al. 2011),但等价常数随维数 d 迅速增长;p = 1 时这只对离散测度成立(常数依赖于尖峰之间的最小距离)。
- 相关的技巧:利用 W₁ 是 Lipschitz 函数的对偶(6.2 节),把约束 $\|\nabla f\|_1\le 1$ 近似成小波系数上的加权 $\ell^1$ 球(Shirdhonkar & Jacobs 2008),它定义了负指数的 Besov 空间(Leeb & Coifman 2016)。这与用二进剖分(dyadic partition)界 W 的方法(Weed & Bach 2017, Prop. 1;Fournier & Guillin 2015)类似,同样给出 $\ell^1$ 中的准等距嵌入(嵌入就是重新加权的小波系数),而且在均匀网格上可以线性时间近似计算(小波见 Mallat 2008)。多尺度嵌入近似 W 的思路在计算机视觉中用得很多(Ling & Okada 2006;Grauman & Darrell 2005;Cuturi & Fukumizu 2007;Lazebnik et al. 2006)。
OT 的负定 / 正定变体 Negative/Positive Definite Variants of Optimal Transport
如果非要一个能放进核方法的 OT 式距离,有两条路:
- 切片 Wasserstein(10.4 节):把测度随机投影到许多直线上,在每条直线上算一维 OT 再求和(平均)。一维 W₂² 是负定的,负定函数之和仍是负定的(Berg et al. 1984, §3.1.11),所以切片版本是负定的,可以用来构造正定核(Kolouri et al. 2016)。
- 熵正则化:把 OT 写成对所有运输方案的 soft-min(而不是 min),这正是 Kosowsky & Yuille (1994) 引入熵正则化的方式。这个 soft-min 的负指数(即「生成函数」)是正定的(Cuturi 2012)。
对一组分布算出 J D² J(D 为两两 W₂ 距离矩阵,J 为中心化矩阵),发现它有一个正特征值。能得出什么结论?
- d 是 Hilbert 距离 ⇔ d² 负定(对和为 0 的权重)⇔ 中心化矩阵 J D² J 没有正特征值。
- 一维 W₂、一维高斯的 W₂ 是 Hilbert 距离;$\mathbb{R}^d$(d ≥ 2)上的 W₁、W₂ 不是(Prop. 8.2,图 8.6)。
- 嵌入 $\ell^2$ 必有较大失真;嵌入 $\ell^1$(多尺度/小波)可做到准等距,但常数随维数变差。
- 切片 W 与熵正则化给出可用于核方法的负定/正定变体。
8.4 OT、MMD 与 φ-散度的经验估计 Empirical Estimators for OT, MMD and φ-divergences
实际应用中我们看不到分布本身,只有样本:$(x_i)_{i=1}^n$ 独立同分布地取自 α,$(y_j)_{j=1}^m$ 取自 β。这一节回答一个关键的统计问题:只凭样本,能多准确地估计 $D(\alpha,\beta)$?需要多少样本?把 W 用到机器学习中时,对这个问题有清楚的认识至关重要。
OT 与 MMD 的经验估计 Empirical Estimators for OT and MMD
对 Wasserstein 距离 $\mathcal{W}_p$((2.18))和 MMD 范数(8.2 节),最直接的估计是插入估计(plug-in estimator):把分布换成经验分布,直接算距离,
注意 $\hat\alpha_n$、$\hat\beta_m$ 是随机测度,所以 $D(\hat\alpha_n,\hat\beta_m)$ 是随机数。为简单起见假设 $\mathcal{X}$ 紧(无界区域需要对矩加额外条件)。若 D 度量弱收敛(Def. 2.2),由于 $\hat\alpha_n\to\alpha$ 弱收敛,就有 $D(\hat\alpha_n,\hat\beta_n)\to D(\alpha,\beta)$。关键问题是收敛有多快——这个速率称为 D 的样本复杂度(sample complexity)。
对 $\mathcal{X}=\mathbb{R}^d$ 中有界区域上的测度,当 $d\gt 2$、$1\le p\lt+\infty$ 时(Dudley 1969)
若其中一个测度关于 Lebesgue 测度有密度,这个速率在 $\mathbb{R}^d$ 中是紧的(不能更好)。Dudley 用覆盖数在一般度量空间上证明了它,后来在 $\mathbb{R}^d$ 上被细化(Dereich et al. 2013;Fournier & Guillin 2015)。当测度集中在低维子集上时速率更好:Weed & Bach (2017) 证明速率取决于支撑的内在维数,并研究了非渐近行为(例如方差很小的高斯混合这类「近似离散」的测度)。$\mathcal{W}_p(\hat\alpha_n,\hat\beta_n)$ 在其均值附近的集中性见 Bolley et al. (2007)、Boissard (2011)、Weed & Bach (2017)。
对 RKHS 对偶范数(MMD,(8.13)),与 Wasserstein 距离相反,样本复杂度不依赖于环境维数(Sriperumbudur et al. 2012):
即使 α = β,两组独立样本之间的 W 也不为 0:OT 必须给每个样本点在另一组里找一个「伙伴」,距离至少是典型的近邻间距。在 d 维中,n 个点的近邻间距约为 $n^{-1/d}$——d = 10 时,想把误差减半,需要约 $2^{10}\approx 1000$ 倍的样本。
MMD 只需估计几个期望(核的平均值),中心极限定理给出 $1/\sqrt n$ 的误差,与维数无关——代价是它是更「弱」的距离,对精细的几何差异不那么敏感。
另外,$\|\hat\alpha_n-\hat\beta_n\|_k^2$ 是 $\|\alpha-\beta\|_k^2$ 的有偏估计((8.14) 的对角项 $k(x_i,x_i)$ 引入了偏差)。要得到无偏估计(例如为了在最小化这类损失时使用 SGD),应该去掉对角项:
它满足 $\mathbb{E}\big(\mathrm{MMD}_k(\hat\alpha_n,\hat\beta_n)^2\big)=\|\alpha-\beta\|_k^2$(Gretton et al. 2012)。上面 MMD 演示的读数里同时给出了两种估计。
α 是单位立方体 [0,1]ᵈ 上的均匀分布。独立抽两组各 n 个样本 α̂ₙ 与 α̂′ₙ(真实距离为 0),计算 D(α̂ₙ, α̂′ₙ),在 log–log 坐标下看它随 n 衰减(原书图 8.7)。W₂ 用精确的最优指派(匈牙利算法,与 Book.ot.emd 结果一致)计算,能量距离用 (8.14)。打开本章后自动在后台运行;误差条为 ±1 个标准差。选择一个维度可显示理论斜率参考线。
左图五条线几乎平行,斜率都在 −½ 附近:能量距离(一种 MMD)的误差 ~ n^(−1/2),与维数无关。右图 W₂ 的斜率随维数变平:d = 1、2 约 −0.45 与 −0.41,d = 3 约 −0.34,d = 5 约 −0.22,d = 10 只有约 −0.12,接近 −1/d。在 d = 10 时样本数从 8 增加到 512(64 倍),W₂ 只下降了约 40%。
φ-散度的经验估计 Empirical Estimators for φ-divergences
用 $\mathcal{D}_\varphi(\hat\alpha_n|\hat\beta_n)$ 去近似 $\mathcal{D}_\varphi(\alpha|\beta)$ 是不可能的:它要么是 $+\infty$(例如 KL),要么在 $n\to\infty$ 时不收敛到正确的值(例如 TV)。必须先用密度估计(density estimation)把离散的经验测度「抹平」成密度(Silverman 1986)。在 $\mathbb{R}^d$ 中取光滑窗函数 h、带宽 σ > 0、$h_\sigma=h(\cdot/\sigma)$,核密度估计(kernel density estimation, KDE)是与这个核的卷积:
然后用 β 的样本做 Monte Carlo 来近似 φ-散度:
其中 σ 要随样本数 n 与维数 d 调整。也可以不固定带宽,而改用第 k 个近邻(Loftsgaarden & Quesenberry 1965),相当于按局部采样密度自适应地调整 σ。记 $\Delta_k(x)$ 为 x 到 $(x_i)_{i=1}^n$ 中第 k 个近邻的距离,k 近邻密度估计为
$|B_d|$ 是 $\mathbb{R}^d$ 中单位球的体积(原书把指数记作 r,即维数)。(8.20) 是「数一数宽为 σ 的窗口里落了多少样本」,(8.21) 反过来「量一量要多大的半径才能装下 k 个样本」。原书 Fig. 8.8 对 200 个取自两个高斯混合的样本比较了两种估计。一个典型应用是估计 (4.1) 中的熵泛函——它就是相对 Lebesgue 测度的 KL 散度;更多细节见 Moon & Hero (2014)。
从 α(双峰高斯混合,蓝)与 β(宽高斯,红)各抽 n = 200 个样本(底部短竖线)。上图:虚线是真实密度,实线是估计的密度。下图:按上面的公式估计的 KL(α|β) 随带宽 σ(或近邻数 k)的变化,水平虚线是真实值。拖动滑块,切换估计方式,或重新抽样。
σ 太小(或 k = 1):估计的密度是一根根尖刺,比值 ρ̂_α/ρ̂_β 要么接近 0 要么极大,KL 估计完全不可信。σ 太大(或 k 接近 n):两个估计都被抹成同一个大鼓包,KL 估计趋于 0。只有中间一段带宽能给出接近真实值的结果,而最佳带宽又取决于 n 与维数——这就是 φ-散度在高维统计中难用的原因。
在 d = 20 维中比较两个分布,只有几百个样本。仅从统计误差的角度看,下面哪种距离的插入估计最可靠?
- 插入估计 $D(\hat\alpha_n,\hat\beta_n)$ 对度量弱收敛的 D 是相合的;收敛速率称为样本复杂度。
- OT:$O(n^{-1/d})$(d > 2),维数灾难;支撑的内在维数低时会好很多。MMD:$O(n^{-1/2})$,与维数无关;去掉对角项得到无偏的 MMD²。
- φ-散度不能直接代入经验分布(TV ≡ 2、KL = ∞),必须先做核密度估计 (8.20) 或 k 近邻估计 (8.21),结果对带宽敏感。
8.5 熵正则化:介于 OT 与 MMD 之间 Entropic Regularization: Between OT and MMD
这一节把前面的线索收拢起来:OT 看得见几何,但样本复杂度差、也不是 Hilbert 距离;MMD 好估计、天生是 Hilbert 的,但要选核,而且对几何「近视」。第 4 章的熵正则化恰好提供了一个在两者之间连续调节的旋钮 ε。
回忆 Prop. 4.7:Sinkhorn 散度(Sinkhorn divergence)定义为熵正则化最优耦合的运输代价(不含熵项):
其中 $\mathbf{P}^\star$ 是 (4.2) 的解,$(\mathbf{f}^\star,\mathbf{g}^\star)$ 是对偶问题 (4.30) 的解。取 $\mathbf{C}_{i,j}=d(x_i,x_j)^p$,就得到正则化的 Wasserstein 代价 $\mathcal{W}_{p,\varepsilon}(\alpha,\beta)^p=\mathfrak{P}^\varepsilon_{\mathbf{C}}(\mathbf{a},\mathbf{b})$;对一般测度,$\mathcal{W}_{p,\varepsilon}(\alpha,\beta)^p=\int d(x,y)^p\,\mathrm{d}\pi^\star(x,y)$,$\pi^\star$ 为 (4.9) 的解。
为了抵消这个偏差,引入去偏(corrected)的正则化散度:
这个形状和 MMD² 的 (8.14) 一模一样:「交叉项 × 2 − 两个自身项」。Feydy et al. (2019) 证明:若 $e^{-c/\varepsilon}$ 是正定核,则一个相关的去偏散度(用含熵项的 $\mathrm{L}^\varepsilon_{\mathbf{C}}$ 代替 $\mathfrak{P}^\varepsilon_{\mathbf{C}}$)是非负的。也可以用正则化 OT 定义其他的归一化方案(例如 Amari et al. 2018)。
(Ramdas et al. 2017)
其中能量距离由 (8.19) 定义(这里核取 $-d(x,y)^p$)。
按定义逐项取极限,更精确的说法是 $\tilde{\mathcal{W}}_{p,\varepsilon}^p\to 2\,\mathcal{W}_p^p$;p = 1 时与原书写法完全一致。
为什么成立(核心思路)
ε → 0:熵正则耦合收敛到最优传输耦合,于是 $\mathcal{W}_{p,\varepsilon}(\alpha,\beta)^p\to\mathcal{W}_p(\alpha,\beta)^p$;自身项的最优耦合收敛到「原地不动」,代价 → 0。所以 $\tilde{\mathcal{W}}^p\to 2\mathcal{W}_p^p$。
ε → ∞:目标 $\langle\mathbf{P},\mathbf{C}\rangle-\varepsilon\mathbf{H}(\mathbf{P})$ 被熵项主导,而在 $\mathbf{U}(\mathbf{a},\mathbf{b})$ 中熵最大的耦合是独立耦合 $\mathbf{a}\mathbf{b}^\top$。于是 $\mathcal{W}_{p,\varepsilon}(\alpha,\beta)^p\to\sum_{i,j}a_ib_j\,d(x_i,y_j)^p$,两个自身项同理。代入去偏公式:
这正是核 $k=-d^p$ 的 (8.14),也就是能量距离的平方 (8.19)。
左图:两团平面点云 α(蓝)与 β(红),可拖动任意点;灰色连线是熵正则耦合 P^ε(α,β)(越深质量越多),勾选后还会显示自传输耦合 P^ε(α,α)(蓝色虚线)。右图:W̃ᵖ 随 log₁₀ε 的变化,两条水平虚线是 Prop. 8.3 的两个极限。
ε 很小时耦合几乎是一一对应的,自传输代价 ≈ 0,W̃ᵖ ≈ 2Wₚᵖ;ε 增大,每个点的质量被越来越均匀地「撒」给对面的所有点,自传输代价也不再为 0;ε 很大时耦合变成 a bᵀ,W̃ᵖ 收敛到能量距离²。p = 2 时两个极限比较接近:ε → ∞ 的极限只剩均值差 2‖m_α − m_β‖²(习题 8.4),而 2W₂² = 2‖m_α − m_β‖² + 2W₂²(两团点各自去掉均值后),这两团点主要差在平移上。
原书 Fig. 8.9 在与 Fig. 8.7 相同的设定下($[0,1]^d$ 上的均匀分布,d = 2、5,p = 3/2)画出了 $\mathbb{E}\log_{10}\tilde{\mathcal{W}}_{p,\varepsilon}(\hat\alpha_n,\hat\alpha'_n)$ 随 $\log_{10}n$ 的衰减:ε 越大,曲线越陡(接近 MMD 的 $n^{-1/2}$);ε 越小,越接近 OT 的缓慢速率。Genevay et al. (2019) 对 $c(x,y)=\|x-y\|^2$ 证明了:熵正则 OT 的样本复杂度在 OT 与 MMD 之间插值。
ε → +∞ 时,去偏的 Sinkhorn 散度 W̃ₚ,ε(α,β)ᵖ 趋于什么?
- $\mathcal{W}_{p,\varepsilon}^p=\langle\mathbf{P}^\star,\mathbf{C}\rangle$ 有偏:$\mathcal{W}_{p,\varepsilon}(\alpha,\alpha)\neq 0$。去偏:$\tilde{\mathcal{W}}^p=2\mathcal{W}_{p,\varepsilon}(\alpha,\beta)^p-\mathcal{W}_{p,\varepsilon}(\alpha,\alpha)^p-\mathcal{W}_{p,\varepsilon}(\beta,\beta)^p$。
- ε → 0:回到 OT($2\mathcal{W}_p^p$);ε → ∞:变成能量距离(核 $-d^p$ 的 MMD)。
- ε 同时调节样本复杂度:大 ε 像 MMD(快),小 ε 像 OT(慢)。
本章小结
- 两大家族:φ-散度逐点比较质量比(KL、TV、Hellinger、χ²、JS);积分概率度量在函数族 B 上找最大期望差(TV、W₁、平坦范数、Dudley、MMD、能量距离)。TV 是两者唯一的交集。
- 几何:φ-散度不使用地面距离,支撑不重叠时饱和(TV = 2)或无穷(KL);W 随位移连续增长;MMD 在核尺度 σ 内看得见位移,能量距离无尺度。
- Hilbert 结构:MMD 天生是 Hilbert 距离(核均值嵌入);W 只在一维或高斯族等特例中是,$\mathbb{R}^d$(d ≥ 2)上 W₁、W₂ 都不是(Prop. 8.2,判据 Prop. 8.1:d² 负定)。
- 统计:插入估计的样本复杂度——OT $O(n^{-1/d})$、MMD $O(n^{-1/2})$;φ-散度需要先做密度估计,依赖带宽。
- 桥梁:去偏的熵正则 OT $\tilde{\mathcal{W}}_{p,\varepsilon}$ 在 ε → 0 时是 OT、ε → ∞ 时是能量距离,样本复杂度也随之插值。
| φ-散度(KL、TV…) | MMD / 能量距离 | Wₚ(OT) | 去偏 Sinkhorn 散度 | |
|---|---|---|---|---|
| 怎样比较 | 逐点的质量比 | 核平滑后的欧氏距离 | 最小搬运代价 | 熵正则搬运 − 自传输偏差 |
| 支撑不重叠时 | TV = 2,KL = +∞(饱和/爆炸) | 有限、随位移变化(高斯核在 ≫σ 后饱和) | 有限、线性增长 | 有限、随位移变化 |
| 插入估计 | 不相合,需先密度估计 | $O(n^{-1/2})$,与维数无关 | $O(n^{-1/d})$,维数灾难 | 介于两者之间 |
| Hilbert 距离? | Hellinger 是;TV、KL 不是 | 是 | 一维 W₂ 是;d ≥ 2 不是 | soft-min 的负指数是正定核(8.3.2) |
| 要调的参数 | φ 的选择 | 核(高斯核的 σ) | 地面代价 dᵖ | ε(与 p) |
自测
在一维高斯族 {N(m, σ²)} 上,KL 与 W₂ 诱导的几何分别是什么?
为什么两组连续分布样本之间的 TV 插入估计 ‖α̂ₙ − β̂ₙ‖_TV 几乎总等于 2?
能量距离(核 −‖x−y‖)相对高斯核 MMD 的主要优点是什么?
下列哪一个是 Hilbert 距离?
MMD 的样本复杂度为什么与维数无关?
习题
提示
用 (8.3):b 的第 3 格有质量而 a 没有——对 KL(b|a)、χ²(b|a) 来说这是「分母为 0、分子为正」的格子,要用 φ′∞。参考解答
按 (8.3):KL(a|b) = φ(2)·¼ + φ(2)·¼ + φ(0)·½ = ½(2 log 2 − 1) + ½ = log 2 ≈ 0.693(等价地用 Σ aᵢ log(aᵢ/bᵢ),a₃ = 0 的项为 0)。KL(b|a):b₃ = ½ 但 a₃ = 0,这一格按 φ′∞ = ∞ 罚款,所以 KL(b|a) = +∞。
TV = ¼ + ¼ + ½ = 1(对称)。𝔥² = 2(√½ − ½)² + (√½)² = 2 − 2Σ√(aᵢbᵢ) = 2 − √2 ≈ 0.586,𝔥 ≈ 0.765(对称)。
χ²(a|b) = (¼)²/¼ × 2 + (½)²/½ = ½ + ½ = 1;χ²(b|a) = +∞(同 KL 的理由)。
JS²:ξ = (3/8, 3/8, ¼)。KL(a|ξ) = log(4/3) ≈ 0.288,KL(b|ξ) = ½ log(2/3) + ½ log 2 ≈ 0.144,JS² = ½(0.288 + 0.144) ≈ 0.216 ≤ log 2(对称、有界)。
小结:TV、𝔥、JS 对称;KL、χ² 不对称,并且只要「第一个参数」在「第二个参数」的支撑外有质量就是 +∞。顺便验证 Pinsker 不等式(图 8.2 的约定 TV_GS = ½·TV = 0.5):0.5 ≤ √(KL(a|b)/2) ≈ 0.589 ✓。
提示
每个测度只有一个原子,(8.14) 的三个和各只有一项;k(x, x) = 1。σ → ∞ 时用 1 − e^{−u} ≈ u。参考解答
(a) $\|\alpha-\beta\|_k^2=k(0,0)+k(t,t)-2k(0,t)=2-2e^{-t^2/(2\sigma^2)}$。
(b) σ → 0:$e^{-t^2/2\sigma^2}\to 0$,MMD² → 2,与 t 的大小无关——和 TV 一样「失明」。σ → ∞:MMD² ≈ t²/σ² → 0,MMD ≈ |t|/σ:只剩一个被 σ 压扁的、与位移成正比的信号。
(c) 能量距离:$\|\delta_0-\delta_t\|^2=0+0+2|t|$,所以 ED = √(2|t|);W₁ = |t|。|t| → ∞ 时 W₁ 线性增长,ED 像 √|t| 增长,高斯 MMD 饱和在 √2(对应原书图 8.4 左)。
提示
(a) 展开 ‖φᵢ − φⱼ‖²,利用 Σrᵢ = 0 消去平方范数项。(b) 只有 T–B 与 A–D 需要把两份质量都移动距离 1。参考解答
(a) $\sum_{i,j}r_ir_j\|\phi_i-\phi_j\|^2=\sum_j r_j\sum_i r_i\|\phi_i\|^2+\sum_i r_i\sum_j r_j\|\phi_j\|^2-2\sum_{i,j}r_ir_j\langle\phi_i,\phi_j\rangle=0+0-2\|\sum_ir_i\phi_i\|^2\le 0$。
(b) W₁(T,B) = W₁(A,D) = 1,W₁(T,A) = W₁(T,D) = W₁(B,A) = W₁(B,D) = ½。于是 $\sum r_ir_j d^2=2\big[d_{TB}^2+d_{AD}^2-d_{TA}^2-d_{TD}^2-d_{BA}^2-d_{BD}^2\big]=2[1+1-4\cdot\tfrac14]=2\gt 0$,违反 (a),所以 W₁ 不是 Hilbert 距离。
提示
(a)(b) 把推前测度的积分换元回原测度。(c) 展开 $-\|x-y\|^2=-\|x\|^2-\|y\|^2+2\langle x,y\rangle$,并利用 α − β 的总质量为 0。参考解答
(a) $\|f_{s\sharp}\mu\|_k^2=\iint-\|sx-sy\|^p\,\mathrm{d}\mu(x)\mathrm{d}\mu(y)=s^p\|\mu\|_k^2$,开方得 $s^{p/2}$。
(b) 耦合 π ↦ (f_s × f_s)♯π 是两组耦合之间的双射,代价 $\|sx-sy\|^p=s^p\|x-y\|^p$,所以 $\mathcal{W}_p^p$ 乘 $s^p$,$\mathcal{W}_p$ 乘 s。
(c) 令 μ = α − β(总质量 0)。$\iint-\|x\|^2\,\mathrm{d}\mu(x)\mathrm{d}\mu(y)=-\int\|x\|^2\mathrm{d}\mu\cdot\int\mathrm{d}\mu=0$,同理第二项为 0;第三项 $2\iint\langle x,y\rangle\mathrm{d}\mu\mathrm{d}\mu=2\|\int x\,\mathrm{d}\mu\|^2=2\|m_\alpha-m_\beta\|^2$。它只看均值:均值相同、形状不同的两个分布距离为 0,所以不是范数。这也解释了 8.5 节演示中 p = 2 时 ε → ∞ 的极限。
提示
要最大化 f(0) − f(t)。(a) 斜率不超过 1 且取值在 [−1, 1] 内。(b) 记 L = ‖f′‖∞、M = ‖f‖∞,L + M ≤ 1,则 f(0) − f(t) ≤ min(L|t|, 2M)。参考解答
(a) f(0) − f(t) ≤ |t|(Lipschitz)且 ≤ 2(取值范围),所以 ≤ min(|t|, 2);取 f(x) = max(−1, 1 − |x|),则 f(0) − f(t) = 1 − max(−1, 1 − |t|) = min(|t|, 2),上界达到。
(b) 上界 min(L|t|, 2M),在 L + M = 1 下最大化:令 L|t| = 2(1 − L),得 L = 2/(2 + |t|),值为 2|t|/(2 + |t|)。取 f(0) = M、以斜率 −L 下降到 f(t) = −M 的折线即可达到。两者都在 |t| 小时 ≈ |t|(像 W₁),|t| 大时饱和到 2(像 TV)。
提示
解方程 $(n'/n)^{-1/d}=1/10$。(b) 看 Weed & Bach (2017) 关于内在维数的结论。参考解答
(a) W:$n'/n=10^{d}$——d = 5 时 10⁵ 倍,d = 10 时 10¹⁰ 倍(实际上做不到)。MMD:$n'/n=10^2=100$ 倍,与维数无关。
(b) 速率取决于支撑的内在维数(Weed & Bach 2017),这时有效的 d 约为 2,W 的估计会好得多(约 n^(−1/2) 量级,差一个对数因子)。
(c) 大 ε 的去偏 Sinkhorn 散度样本复杂度接近 MMD(Genevay et al. 2019),梯度估计方差小;同时它仍保留一部分 OT 的几何(ε 适中时)。这是在「看几何」与「好估计」之间的折中。
提示
(a) 最优耦合 $\mathbf{P}_{ij}=e^{(\mathbf{f}_i+\mathbf{g}_j-\mathbf{C}_{ij})/\varepsilon}$ 的每一项都 > 0。(b) 把目标除以 ε:$\langle\mathbf{P},\mathbf{C}\rangle/\varepsilon-\mathbf{H}(\mathbf{P})$,ε → ∞ 时第一项消失。参考解答
(a) 所有 $\mathbf{P}_{ij}\gt 0$,其中 i ≠ j 的项对应 $\mathbf{C}_{ij}=d(x_i,x_j)^p\gt 0$,所以 $\langle\mathbf{P},\mathbf{C}\rangle\gt 0$。
(b) 除以 ε 后的目标在 ε → ∞ 时趋于 $-\mathbf{H}(\mathbf{P})$;在 $\mathbf{U}(\mathbf{a},\mathbf{b})$ 上熵最大的是独立耦合 $\mathbf{a}\mathbf{b}^\top$(它也是第 4 章 Sinkhorn 在 ε 很大时的结果:$\mathbf{K}=e^{-\mathbf{C}/\varepsilon}\to\mathbb{1}\mathbb{1}^\top$)。于是三项分别趋于 $\sum a_ib_jd_{ij}^p$、$\sum a_ia_{i'}d_{ii'}^p$、$\sum b_jb_{j'}d_{jj'}^p$,组合后正是 (8.14) 在 $k=-d^p$ 时的值。
(c) 两端的读数应分别非常接近 2W₁ 与能量距离²,差距在 10⁻³ 量级(ε 还不够「极端」,小 ε 端还受 Sinkhorn 收敛精度影响)。
变分 Wasserstein 问题 Variational Wasserstein Problems
前几章教我们怎样「算」Wasserstein 距离;这一章把它当成要优化的目标:它的梯度长什么样?一组分布的「平均」是什么?怎样沿着它「下坡」?又怎样用它去拟合、训练生成模型?
- 说清 Wasserstein 损失的两种求导方式:欧拉视角下梯度就是对偶势 $f$(Prop. 9.1);拉格朗日视角下梯度由最优耦合 $P$ 给出,等于「指向匹配点的位移」(Prop. 9.2、(9.7))。
- 理解 Wasserstein 重心(Fréchet 均值)与欧氏平均的本质区别;会求一维(分位数平均)、高斯(不动点迭代)与一般离散情形(熵正则 + 广义 Sinkhorn)的重心。
- 认识 k-means 聚类、字典学习都是「变分 Wasserstein 问题」的特例。
- 理解 JKO 格式:把近端点法里的欧氏距离换成 $W_2$ 就得到 Wasserstein 梯度流;知道热方程是(负)熵的 Wasserstein 梯度流,并会用粒子法模拟 Fokker–Planck 方程。
- 明白最小 Kantorovich 估计为什么能在最大似然失灵的地方(没有密度的生成模型)工作,以及梯度怎样经由最优耦合传回参数。
- 本章的问题都长成 $\min_\theta \mathcal{L}_c(\alpha_\theta,\beta)$:调节参数 $\theta$,让模型分布 $\alpha_\theta$ 在 OT 意义下靠近数据 $\beta$。一切的前提是会求梯度。
- 欧拉离散(格点固定、调权重):梯度 = 对偶势 $f$,可以理解成每个格子的「边际价格」;拉格朗日离散(权重固定、动点):梯度 = 最优耦合 $P$,对平方欧氏代价,点 $x_i$ 的负梯度正好指向它的「匹配点」(重心投影)$T(x_i)$。
- 实际计算中往往只跑少量 Sinkhorn 迭代,再对整个迭代过程做反向自动微分,代价与前向计算同阶。
- Wasserstein 重心是 Wasserstein 空间里的加权平均:它把形状平移、变形到中间,而欧氏平均只是把两个形状叠在一起。一维 = 分位数函数取平均;高斯 = 均值取平均 + 协方差的不动点;一般离散情形 = 熵正则的「多边缘 Sinkhorn」。
- k-means 恰好是「支撑点至多 $k$ 个」的 Wasserstein 重心问题;熵正则化把硬分配变成软聚类。
- 梯度流:把近端点法 $\min_a \tfrac12\|a-a^{(\ell)}\|^2+\tau F(a)$ 里的欧氏距离换成 $W_2^2$,就是 JKO 格式。热方程 = 负熵的 Wasserstein 梯度流:同一条方程,既可看成高度在「垂直」升降,也可看成质量在「水平」扩散。
- 最小 Kantorovich 估计:用 OT 损失拟合模型。当模型只能采样、没有密度(生成模型 $h_{\theta\sharp}\zeta$)时,最大似然等于 $+\infty$,而 OT 损失有限、平滑、可求导——这是 WGAN 等方法的出发点。
到目前为止,我们一直在「计算」两个分布之间的 Wasserstein 距离。本章反过来,把它当成损失函数(loss)来最小化。统计、图像处理和机器学习里常用各种散度衡量「拟合误差」:欧氏距离、总变差、Hellinger、Kullback–Leibler……OT 与它们最大的不同在于它懂几何:它知道把一堆质量挪到「旁边一点点」只花一点点代价(物理上的质量搬运 + 观测之间的地面代价)。这让它成为非常诱人的损失函数——前提是我们能高效地近似它并求导,这正是本章的技术核心。
书中列举的应用很广:纹理合成(让合成图像的统计量接近样例)、图像分割(衡量区域的统计同质性)、各类以概率测度为观测的反问题(图像复原、断层成像、密度正则化、粒子图像测速、稀疏恢复与压缩感知、地震反演),形状匹配(计算解剖学里常用核方法,OT 是有趣的替代品),以及用 Wasserstein 损失代替 KL 做非负矩阵分解(nonnegative matrix factorization, NMF)——当直方图的「格子」之间有几何关系时,结果会截然不同。这些问题的共同点:都需要 Wasserstein 距离(或其近似)的梯度。下面先讲怎么求梯度(9.1),再讲三类重要应用:重心(9.2)、梯度流(9.3)和最小 Kantorovich 估计(9.4)。
9.1 Wasserstein 损失的求导 Differentiating the Wasserstein Loss
这一节要解决的问题:数据是一个分布 $\beta$,模型是一族参数化分布 $\{\alpha_\theta\}_{\theta\in\Theta}$($\Theta$ 是欧氏空间的子集),我们用 Wasserstein 距离作为「保真项」(fidelity term),想找最好的 $\theta$。最简单的形式是
更复杂的问题(例如 9.2 节的重心问题是若干个这样的项之和)通常也能用同样的工具处理:要么用链式法则显式地算导数,要么用 9.1.3 节提倡的自动微分。
凸性(Convexity)。两个直方图(或两个密度)之间的 Wasserstein 距离对两个输入是联合凸的:由对偶形式 (2.20)、(2.24),它是一族关于 $(a,b)$ 的线性函数 $\langle f,a\rangle+\langle g,b\rangle$ 的最大值,而线性函数的最大值是凸的。因此:
- 若参数就是直方图本身($\Theta=\Sigma_n$,$\alpha_\theta=\theta$),问题 (9.1) 是凸的——这正是重心问题的情形;
- 若 $\theta$ 是单纯形 $\Sigma_K$ 中的 $K$ 个权重,$\alpha_\theta=\sum_{i=1}^K\theta_i\alpha_i$ 是固定「原子」的凸组合,问题仍然是凸的——这是用 Wasserstein 损失做字典学习时的一步 [Rolet et al., 2016];
- 但对一般的参数化 $\theta\mapsto\alpha_\theta$(例如 $\theta$ 控制点的位置),(9.1) 一般不是凸的。
简单情形(Simple cases)。当 Wasserstein 距离有闭式解时,可以换一种表示把问题变成普通的欧氏问题:一维分布用分位数函数($W_2$ 就是分位数函数之间的 $L^2$ 距离,Rem. 2.30);同一族椭圆分布用协方差矩阵上的 Bures 度量(Rem. 2.31)。然后直接在这些表示上求解 (9.1)。
两种离散化。大多数情况下没有闭式解,只能先把 $\alpha_\theta$ 离散化,再求 (9.1) 的局部极小。有两种根本不同的思路:欧拉离散(Eulerian discretization) 固定位置、调整每个位置上的质量;拉格朗日离散(Lagrangian discretization) 固定每个粒子的质量、移动粒子的位置(名字来自流体力学:欧拉观察者站在固定地点看流体经过,拉格朗日观察者骑在流体微团上一起走)。
| 欧拉离散 Eulerian | 拉格朗日离散 Lagrangian | |
|---|---|---|
| 固定的是 | 位置 $x_i$(网格单元、词表中的词向量……) | 权重(通常都是 $1/n$) |
| 优化的是 | 权重 $a(\theta)\in\Sigma_n$ | 位置 $x(\theta)=(x(\theta)_i)_i$ |
| 代价矩阵 $C$ | 与 $\theta$ 无关 | 随 $\theta$ 变化:$C(x(\theta))$ |
| 梯度来自 | 对偶势 $f$ (9.3) | 最优耦合 $P$ (9.8) |
| 质量怎么「动」 | 「垂直」:各格子里的质量升降 | 「水平」:粒子在空间中移动 |
| 适合 | 低维空间(形状、颜色空间)或本身离散的问题(文本、字符串) | 高维、连续取值的数据(机器学习中几乎唯一可行的选择) |
9.1.1 欧拉离散 Eulerian Discretization
假设 $\beta=\sum_{j=1}^m b_j\delta_{y_j}$ 和 $\alpha_\theta=\sum_{i=1}^n a(\theta)_i\delta_{x_i}$ 都支撑在固定的位置上。$x_i$ 可以是把整个观测空间切成网格的单元,也可以是连续空间里一组感兴趣的点(例如词典中所有词的词向量 [Kusner et al., 2015])。模型完全由权重向量 $a:\theta\mapsto a(\theta)\in\Sigma_n$ 描述(网格很大时它往往很稀疏)。原始的 (9.1) 不可微,于是用第 4 章的熵正则 OT 把它变光滑:
当 $\varepsilon>0$ 时,$(a,b)\mapsto \mathrm{L}^\varepsilon_C(a,b)$ 是凸且可微的,梯度为
其中 $(f,g)$ 是熵正则对偶问题 (4.30) 的唯一解,并中心化使 $\sum_i f_i=\sum_j g_j=0$。当 $\varepsilon=0$ 时,这个公式给出的是次微分中的元素;对偶解唯一时函数可微。(这就是第 4 章的 Prop. 4.6。)
为什么成立
核心想法:「一族线性函数的最大值」的梯度 = 取到最大值的那个线性函数的系数(包络定理 / Danskin 定理)。由 (4.30),$\mathrm{L}^\varepsilon_C(a,b)=\max_{f,g}\ \langle f,a\rangle+\langle g,b\rangle-\varepsilon\langle e^{f/\varepsilon},Ke^{g/\varepsilon}\rangle$,括号里对 $(a,b)$ 是线性的,所以 $\mathrm{L}^\varepsilon_C$ 是凸的,梯度就是最优的 $(f,g)$。$\varepsilon>0$ 时对偶解在「整体加减常数」之外唯一,所以梯度唯一。
为什么要中心化?$(f+t,\,g-t)$ 也是最优解。梯度下降时 $a$ 必须留在单纯形里,只有和为零的方向才保持总质量;中心化就是在「总质量守恒」的前提下选定一个代表。
由链式法则,$\mathcal{E}_E$ 光滑,其梯度为
这里 $\partial a(\theta)\in\mathbb{R}^{n\times\dim(\Theta)}$ 是映射 $a(\theta)$ 的 Jacobi 矩阵,$f\in\mathbb{R}^n$ 是 $a(\theta)$ 与 $b$ 之间熵正则对偶问题的对偶势(代价矩阵 $C$ 在欧拉设定下固定、与 $\theta$ 无关)。有了它就可以用梯度下降求 $\mathcal{E}_E$ 的局部极小。
格点固定在 $[0,1]$ 上。蓝色柱子是可调的直方图 $a$,红色轮廓是目标 $b$;下方紫色曲线是 Sinkhorn 算出的对偶势 $f$(已中心化,$f$ 的正负用颜色区分)。点「下一步」做一次镜像梯度下降 $a\leftarrow a\odot e^{-\tau f}/Z$(在单纯形上最自然的梯度步),或者按「播放」连续迭代。
$f$ 在 $a$ 过剩的地方高、在 $a$ 短缺的地方低;每一步里柱子只是原地变高变矮,不会左右滑动——这就是「欧拉」的含义。读数里的「梯度检验」在 $a$ 已有质量的格子中,把 $\delta=10^{-4}$ 的质量从最「贵」的格子 $i$ 挪到最「便宜」的格子 $j$,预测值 $\delta(f_j-f_i)$ 与实际的损失变化吻合到三四位有效数字,这就是 Prop. 9.1。(为什么只在有质量的格子里检验?在几乎空的格子上,熵项让 $f_j$ 像 $\varepsilon\log a_j$ 一样随 $a_j$ 急剧变化,一阶近似只在极小的 δ 内才准。)随着迭代,$f$ 逐渐变平。把 ε 调大会发现 $a$ 最终比 $b$ 更「胖」:$a\mapsto\mathrm{L}^\varepsilon_C(a,b)$ 的最小点并不是 $b$ 本身,而是被高斯核抹平的 $b$——熵正则带来的偏差(第 4 章的 Sinkhorn 散度正是为了消除它)。
9.1.2 拉格朗日离散 Lagrangian Discretization
另一种做法:权重固定(通常是均匀的 $1/n$),把模型写成经验测度 $\alpha_\theta=\frac1n\sum_i\delta_{x(\theta)_i}$,其中 $x:\theta\mapsto x(\theta)=(x(\theta)_i)_{i=1}^n\in\mathcal{X}^n$ 是点云的参数化(这里设 $\mathcal{X}$ 是欧氏空间)。(9.1) 近似为
注意现在代价矩阵 $C(x(\theta))$ 随 $\theta$ 变化,因为 $\alpha_\theta$ 的支撑在动。下面的命题说明熵正则 OT 损失是代价矩阵的光滑函数。
固定输入直方图 $(a,b)$ 与 $\varepsilon>0$,映射 $C\mapsto\mathcal{R}(C)\stackrel{\text{def.}}{=}\mathrm{L}^\varepsilon_C(a,b)$ 是凹且光滑的,并且
其中 $P$ 是熵正则问题 (4.2) 的唯一最优解。$\varepsilon=0$ 时,这个公式给出「上梯度」(upper gradients,凹函数的超梯度)的集合。
为什么成立
这次看原问题:$\mathcal{R}(C)=\min_{P\in U(a,b)}\ \langle C,P\rangle-\varepsilon H(P)$。括号里的函数对 $C$ 是线性的,一族线性函数的最小值是凹的;由包络定理,梯度就是取到最小值的 $P$。直观地说:代价矩阵第 $(i,j)$ 项涨一点点,总代价增加的量正比于从 $i$ 运到 $j$ 的质量 $P_{ij}$。
设 $\mathcal{X},\mathcal{Y}$ 是 $\mathbb{R}^d$ 的凸子集,离散测度形如 (2.3)。由链式法则,$x=(x_i)_{i=1}^n\mapsto\mathcal{F}(x)\stackrel{\text{def.}}{=}\mathrm{L}_{C(x)}(\mathbb{1}_n/n,b)$ 光滑,梯度为 $\nabla\mathcal{F}(x)=\big(\sum_{j}P_{i,j}\nabla_1c(x_i,y_j)\big)_{i=1}^n$ (9.6),其中 $\nabla_1c$ 是对第一个变量的梯度。对平方欧氏代价 $c(s,t)=\|s-t\|^2$:
再用一次链式法则,拉格朗日离散问题 (9.4) 光滑,梯度为
其中 $\partial x(\theta)$ 是 $x(\theta)$ 的 Jacobi 矩阵,$\nabla\mathcal{F}$ 按 (9.6) 或 (9.7) 计算,$P$ 取 $\alpha_\theta$ 与 $\beta$ 之间的最优耦合。据此可以做梯度下降求 $\mathcal{E}_L$ 的局部极小,例如 [Cuturi and Doucet, 2014]。
蓝点 $x_i$(每个质量 $1/n$)和红点 $y_j$(每个质量 $1/m$)都可以拖动。灰色连线是最优耦合 $P$(线宽 ∝ $P_{ij}$),空心蓝圈是重心投影 $T(x_i)$,箭头是下降方向 $T(x_i)-x_i=-\nabla_i\mathcal{F}/(2a_i)$。点「下降一步」执行 $x\leftarrow x+\tau\,(T(x)-x)$。
当 $m=n=5$ 且 ε = 0 时,$P$ 是一个置换,每个蓝点的箭头都直指它的「搭档」;$m\ne n$ 时一个蓝点的质量被拆给几个红点,$T(x_i)$ 落在它们之间。读数里的「有限差分检验」把被拖动的点沿 $x$ 方向挪 $h=10^{-4}$,数值导数与公式 (9.7) 吻合——这就是 Prop. 9.2 + 链式法则。把 ε 调大,$T(x_i)$ 被「抹平」到更靠近整体中心的位置,蓝点最后会缩成一团:又一次看到熵正则的偏差。
9.1.3 自动微分 Automatic Differentiation
公式 (9.3) 与 (9.8) 的麻烦在于:它们要求精确的最优 $f$ 或 $P$,而这只有跑大量 Sinkhorn 迭代才能达到足够精度。在规模大、要比较的直方图多的场景里,算一次 Wasserstein 距离的预算有限,只允许少量迭代。这时与其把第 $L$ 步的中间结果当成 (4.30) 的解代入公式,不如直接对 Sinkhorn 算法的输出求导,使用反向模式自动微分(reverse-mode automatic differentiation)。
这相当于使用第 4 章 (4.48) 定义的「算法版」Sinkhorn 散度 $\mathfrak{D}^{(L)}_C$(而不是包含熵项的 $\mathrm{L}^\varepsilon_C$),并把它当作简单映射的复合来求导:欧拉情形对 $\mathfrak{D}^{(L)}_C(a(\theta),b)$ 求导,拉格朗日情形对 $\mathfrak{D}^{(L)}_{C(x(\theta))}(a,b)$ 求导($L$ 足够大)。
第 1 步:前向——把 Sinkhorn 展开成计算图
输入 $a$(或点的位置 $x$,经由 $C(x)$ 与 $K=e^{-C/\varepsilon}$)。每一次 Sinkhorn 迭代都是一个简单映射:$v^{(\ell)}=b/(K^\top u^{(\ell-1)})$,$u^{(\ell)}=a/(Kv^{(\ell)})$。$L$ 次迭代串起来就是一张很深但很规整的计算图,终点是 $\mathfrak{D}^{(L)}=\langle f^{(L)},a\rangle+\langle g^{(L)},b\rangle$。前向时把每个中间结果都存下来。
第 2 步:反向——从输出往回传导数
从 $\partial\mathfrak{D}^{(L)}/\partial\mathfrak{D}^{(L)}=1$ 出发,沿着计算图倒着用链式法则,每经过一个节点只需做一次与前向同样规模的矩阵–向量乘法。于是得到的梯度是「我们实际计算出的那个量」的精确梯度,计算代价与前向同阶(这正是反向模式最快的原因)。
第 3 步:对比——「代入公式」只在收敛后才对
如果只迭代了 $L$ 步就把 $f^{(L)}$ 当作梯度代入 (9.3),得到的是一个不一致的近似:它既不是 $\mathrm{L}^\varepsilon_C$ 的精确梯度(没收敛),也不是 $\mathfrak{D}^{(L)}$ 的梯度。自动微分则保证优化的目标与梯度彼此一致。公式 (9.3)、(9.8) 的主要价值在于理论理解:它们告诉我们自动微分在收敛极限下算的是什么。
第 4 步:代价——内存
唯一的缺点:反向模式要存储前向的所有中间结果,内存随迭代次数 $L$ 线性增长。可以用「检查点」(checkpointing)等子采样策略缓解 [Griewank, 1992]。实践中,PyTorch 等深度学习框架都内置了高效的反向自动微分与 GPU 支持,大规模使用 Sinkhorn 损失时应当直接用它们。
在欧拉离散中,把一小份质量 δ 从格子 i 挪到格子 j,熵正则损失大约变化多少?
拉格朗日离散、平方欧氏代价、精确 OT 且蓝点与红点一样多(均匀权重)时,第 i 个蓝点的负梯度方向指向哪里?
- 对权重求导 → 对偶势 $f$(Prop. 9.1);对代价矩阵求导 → 耦合 $P$(Prop. 9.2)。两者都是「极值函数的梯度 = 最优解」(包络定理)。
- 平方欧氏代价下,点的负梯度 ∝ 指向重心投影 $T(x_i)$ 的位移。
- 迭代次数有限时,对 Sinkhorn 迭代本身做自动微分更可靠。
9.2 Wasserstein 重心、聚类与字典学习 Wasserstein Barycenters, Clustering and Dictionary Learning
这一节要解决的问题:怎样给一组分布求「平均」?无监督学习里最基本的操作是求若干数据点的均值(重心)。把「点」换成「分布」之后,平均可以有很多种定义;用 OT 定义的平均——Wasserstein 重心(Wasserstein barycenter)——会保留分布的「形状」,是一个凸问题,并且有高效算法。我们还会看到,k-means 聚类与字典学习也属于同一类变分问题。
先回到最朴素的问题:度量空间 $(\mathcal{X},d)$ 中的点 $(x_s)_{s=1}^S$ 和权重 $(\lambda_s)_s\in\Sigma_S$ 的「加权平均」可以定义为变分问题
通常取 $p=2$。当 $\mathcal{X}=\mathbb{R}^d$、$d(x,y)=\|x-y\|_2$ 时,$p=2$ 给出通常的线性平均 $x=\sum_s\lambda_sx_s$,$p=1$ 给出更复杂的中位点(几何中位数)。换用别的距离还能得到别的平均,例如在 $\mathbb{R}_+$ 上的调和平均、几何平均。这叫 Fréchet 均值(Fréchet mean) 或 Karcher 均值。对一般的距离 $d$,(9.9) 往往是困难的非凸问题;幸运的是,对 OT 距离它可以写成凸规划,可以证明解存在,并且有高效的数值方法。
Wasserstein 空间中的 Fréchet 均值 Fréchet Means over the Wasserstein Space
给定输入直方图 $\{b_s\}_{s=1}^S$($b_s\in\Sigma_{n_s}$)与权重 $\lambda\in\Sigma_S$,Wasserstein 重心是
的解,代价矩阵 $C_s\in\mathbb{R}^{n\times n_s}$ 需要事先给定。典型的「欧拉」设定是所有分布都定义在同一个网格上:$n_s=n$,$C_s=C=D^p$(距离矩阵的 $p$ 次方),于是问题变成 $\min_{a\in\Sigma_n}\sum_s\lambda_s W_p^p(a,b_s)$。
这个问题(对一般测度的形式)由 Agueh 与 Carlier [2011] 提出。对直方图来说它其实是一个线性规划:为每个输入引入一个耦合 $P_s$(连接重心与第 $s$ 个输入),所有耦合必须共享同一个行边缘——那就是重心 $a$:
(原书此式把第一个约束印成了 $P_s^{\top}\mathbb{1}_{n_s}=a$;按文意应是行和 $P_s\mathbb{1}_{n_s}=a$。)虽然是 LP,但规模太大,中等规模的问题就无法用通用求解器;可以改用一阶方法,例如对偶问题上的次梯度下降 [Carlier et al., 2015],或者下面的熵正则方法。
拖动 λ(第二个分布 $\alpha_1$ 的权重)。上图:蓝、红是两个输入,紫色实线是 Wasserstein 重心 $\alpha_\lambda$,黄色虚线是欧氏平均(混合)。中间一行点:同一分位数水平上 $\alpha_0$、$\alpha_1$ 的位置被配对,紫点按 λ 插值。下图:分位数函数 $Q(t)$(横轴是累积概率 $t$),重心的分位数函数恰好是 $Q_\lambda=(1-\lambda)Q_0+\lambda Q_1$。
欧氏平均始终是「两个峰各矮一截」,而 Wasserstein 重心是一个峰从左边走到右边、形状逐渐变形——这正是第 7 章的位移插值(McCann 插值),见下面的 Rem. 9.8。「单峰 vs 双峰」时,重心在中途「裂」成两个峰:因为 $\alpha_0$ 的左半部分质量被配给 $\alpha_1$ 的左峰、右半部分配给右峰。读数验证了三件事:重心的均值 = 均值的加权平均(Rem. 9.1);标准差不超过标准差的加权平均,形状相同(如两个高斯)时取等号(Rem. 9.7);$W_2(\alpha_0,\alpha_\lambda)=\lambda\,W_2(\alpha_0,\alpha_1)$(重心沿常速测地线运动)。
对定义在 $\mathcal{X}$ 上的一般输入测度 $(\beta_s)_s$,重心问题是 $\min_{\alpha\in\mathcal{M}^1_+(\mathcal{X})}\sum_s\lambda_s\mathcal{L}_c(\alpha,\beta_s)$ (9.11)。在 $\mathcal{X}=\mathbb{R}^d$、$c(x,y)=\|x-y\|^2$ 时,只要有一个输入有密度,重心就唯一 [Agueh and Carlier, 2011]。
- 它推广了点的重心:若每个 $\beta_s=\delta_{x_s}$ 是单点,则解是 $\delta_{x^\star}$,$x^\star$ 就是 (9.9) 的 Fréchet 均值。
- 对平方欧氏代价,重心的均值 = 均值的重心:$\int x\,\mathrm{d}\alpha^\star(x)=\sum_s\lambda_s\int x\,\mathrm{d}\alpha_s(x)$;并且 $\alpha^\star$ 的支撑落在各输入支撑的凸包内。
- 用离散分布逼近输入、改解 (9.10) 时的一致性见 [Carlier et al., 2015];(9.11) 还可以改写成多边缘 OT 问题(Rem. 10.2)。
进阶:分布的分布与一致性(Rem. 9.3)
还可以把 (9.11) 推广到无穷多个输入:设 $M$ 是「分布上的分布」($M\in\mathcal{M}^1_+(\mathcal{M}^1_+(\mathcal{X}))$,即随机测度 $\beta$ 的分布),重心定义为 $\min_\alpha\ \mathbb{E}_M\big(\mathcal{L}_c(\alpha,\beta)\big)=\int\mathcal{L}_c(\alpha,\beta)\,\mathrm{d}M(\beta)$ (9.13)。(9.11) 是 $M=\sum_s\lambda_s\delta_{\beta_s}$ 的特例。按 $M$ 随机抽 $S$ 个输入、取等权重,得到的重心 $\hat\beta_S$ 本身是随机测度;$\mathcal{L}_c(\hat\beta_S,\alpha)\to0$(期望或高概率意义下)就是重心的一致性,已被证明 [Bigot and Klein, 2012a; Le Gouic and Loubes, 2016]——可以理解为Wasserstein 空间中的大数定律。相应的中心极限定理是重要的开放问题,目前只在一维和高斯等特殊情形有结果 [Panaretos and Zemel, 2016; Agueh and Carlier, 2017]。
在 $\mathcal{X}=\mathbb{R}^d$、$c(x,y)=\|x-y\|^2$ 时,可以用传输映射研究重心。设 $\alpha$ 有密度,$T_s$ 是从 $\alpha$ 到 $\alpha_s$ 的最优映射($T_{s\sharp}\alpha=\alpha_s$,Rem. 2.24)。平均映射 $T^{(\alpha)}\stackrel{\text{def.}}{=}\sum_s\lambda_sT_s$ 本身也是 $\alpha$ 到 $T^{(\alpha)}_\sharp\alpha$ 的最优映射(由 Brenier 定理:凸函数梯度的正组合仍是某个凸函数的梯度)。重心问题的一阶最优性条件是:在重心 $\alpha^\star$ 处 $T^{(\alpha^\star)}=\mathrm{Id}$。进一步,在一定正则性条件下,重心是不动点方程
的唯一解 [Álvarez-Esteban et al., 2016; Zemel and Panaretos, 2018]。而且若 $\alpha$ 不是重心,$G$ 严格降低目标值,不动点迭代 $\alpha^{(\ell+1)}=G(\alpha^{(\ell)})$ 收敛到重心。当最优映射有闭式时(例如高斯)可以直接用;对点数相同的经验测度,最优映射换成最优指派;对一般离散测度,则用重心投影 (4.19) 代替 [Cuturi and Doucet, 2014]。
三个输入点云(各 24 个等权重的点):圆环、方框、十字。在右下角的小三角形里拖动黑点设置权重 $\lambda\in\Sigma_3$(越靠近哪个顶点,那个输入的权重越大)。紫色点是重心:每一轮先求它与每个输入的最优指派,再把每个点搬到三个搭档的加权平均位置。
权重在顶点时重心就是那个输入;在三角形内部,形状在圆环、方框、十字之间连续变形,整体位置满足「重心的均值 = 均值的加权平均」。点「随机初始化」再逐步迭代:目标值 $\sum_s\lambda_sW_2^2$ 每一步都下降,通常几步就收敛。注意这里优化的是点的位置(自由支撑),这个问题关于位置并不是凸的,不同初值可能停在不同的局部极小——但结果通常都很合理。
特殊情形 Special Cases
一般来说求解 (9.10) 或 (9.11) 并不容易,但有几类情形的解是显式的或很简单。
对平方欧氏代价,高斯分布 $\alpha_s=\mathcal{N}(m_s,\Sigma_s)$ 的重心仍是高斯 $\mathcal{N}(m^\star,\Sigma^\star)$ [Agueh and Carlier, 2011]。由高斯间距离公式 (2.41),均值部分与协方差部分分离:均值就是加权平均 $m^\star=\sum_s\lambda_sm_s$;协方差则最小化 $\sum_s\lambda_s\mathcal{B}(\Sigma,\Sigma_s)^2$($\mathcal{B}$ 是 Bures 度量 (2.42))。一阶最优性条件说明 $\Sigma^\star$ 是映射
唯一的正定不动点($\Sigma^{1/2}$ 是半正定矩阵的平方根)。$\Psi$ 不是严格压缩的,但迭代 $\Sigma^{(\ell+1)}=\Psi(\Sigma^{(\ell)})$ 实践中收敛。Álvarez-Esteban 等 [2016] 提出了保证收敛的另一个映射 $\bar\Psi(\Sigma)\stackrel{\text{def.}}{=}\Sigma^{-\frac12}\Big(\sum_s\lambda_s\big(\Sigma^{\frac12}\Sigma_s\Sigma^{\frac12}\big)^{\frac12}\Big)^2\Sigma^{-\frac12}$,原因是 (9.14) 中的 $G$ 把高斯映成高斯:$G(\mathcal{N}(m,\Sigma))=\mathcal{N}(m^\star,\bar\Psi(\Sigma))$。这个方法已用于纹理合成 [Xia et al., 2014]。
四个角是输入高斯(椭圆沿协方差主轴画出,半轴长 ∝ 标准差)。拖动角上椭圆的两个小圆点可改变它的方向与长短轴。中间每个椭圆都是一个 Wasserstein 重心,权重对四个角是双线性的:位置 $(u,v)$ 处 $\lambda=((1-u)(1-v),\,u(1-v),\,(1-u)v,\,uv)$;协方差用不动点迭代 $\Sigma\leftarrow\bar\Psi(\Sigma)$ 求出(每个椭圆画在自己的格子里,不画均值的移动)。
重心在四个角之间平滑地旋转、伸缩,与原书图 9.2 一致;「细针」预设对应图 9.2 右图:沿两根针之间的边插值时,得到的仍是(转动的)细针。勾选「线性平均」对比:直接平均协方差矩阵会让椭圆「胀大」——两根互相垂直的针(第三个预设)线性平均后是一个大圆,而 Wasserstein 重心是一个小得多的圆(见习题 9.3)。读数给出中心格子的不动点残差,接近机器精度。
一维时最优传输就是单调重排(Rem. 2.30),重心几乎有闭式解。最简单的情形:每个输入都是 $n$ 个点的经验测度 $\beta_s=\frac1n\sum_{i=1}^n\delta_{y_{s,i}}$,点已排好序 $y_{s,1}\le y_{s,2}\le\dots$。则重心也是 $n$ 个点的经验测度 $\alpha_\lambda=\frac1n\sum_i\delta_{x_{\lambda,i}}$,其中
即「第 $i$ 小的点们」各自求 Fréchet 均值;$p=2$ 时就是 $x_{\lambda,i}=\sum_s\lambda_sy_{s,i}$。一般情形用累积分布函数的反函数(分位数函数,(2.34)、(2.36)):对所有 $r\in[0,1]$,$\mathcal{C}^{-1}_{\alpha_\lambda}(r)=A_\lambda\big(\mathcal{C}^{-1}_{\alpha_s}(r)\big)_{s}$。这只需要排序,可以在 $O(n\log n)$ 时间内求出支撑点少于 $n$ 个的离散测度的重心。上面第一个演示正是这样计算的。
若所有输入都是同一个模板 $\alpha_0$ 经过缩放和平移得到的,$\alpha_s=T_{r_s,u_s\sharp}\alpha_0$,则重心也是 $\alpha_0$ 的缩放平移:$\alpha_\lambda=T_{r^\star,u^\star\sharp}\alpha_0$,平移量 $u^\star=\sum_s\lambda_su_s$。
在 $\mathbb{R}^d$ 上取平方欧氏代价(更一般地可推广到测地空间),两个测度 $(\alpha_0,\alpha_1)$ 的重心就是第 7 章的 McCann 插值(McCann interpolant) (7.6):设 $T_\sharp\alpha_0=\alpha_1$ 是 Monge 映射,则 $\alpha_\lambda=(\lambda_1\mathrm{Id}+\lambda_2T)_\sharp\alpha_0$;离散情形的计算见 (7.9)。换句话说,两点的重心是「测地线上的一点」,这正是第一个演示里看到的「峰在走」。
重心的熵正则近似 Entropic Approximation of Barycenters
一般的离散输入没有闭式解。可以用熵平滑来近似 (9.10):
这是光滑的凸问题,可以用梯度下降(梯度由 Prop. 9.1 的对偶势给出)[Cuturi and Doucet, 2014; Gramfort et al., 2015];也可以在半对偶上用拟牛顿法 [Cuturi and Peyré, 2016],便于加入额外的正则项(例如让重心关于某个范数光滑)。一个更简单却非常有效的办法来自 Benamou 等 [2015]:把 (9.15) 改写成(加权的)KL 投影问题
其中 $K_s\stackrel{\text{def.}}{=}e^{-C_s/\varepsilon}$。重心被隐含在所有耦合的共同行边缘里:$a=P_1\mathbb{1}=\dots=P_S\mathbb{1}$。把 Sinkhorn 推广到这个问题(它同样是交替投影,也是 4.6 节广义 Sinkhorn 的特例),最优耦合有缩放形式 $P_s=\mathrm{diag}(u_s)K_s\,\mathrm{diag}(v_s)$ (9.17),缩放向量按下式依次更新:
第 1 步:列缩放 (9.18)
从 $u_s=\mathbb{1}$ 出发做 $v_s=b_s/(K^{\top}u_s)$。现在两个耦合的列边缘都等于各自的输入。图中虚线是它们的行边缘 $r_s=u_s\odot Kv_s$:大致是各输入被高斯核抹平后的样子,两者还相距很远。
第 2 步:几何平均 (9.20)
$a=\prod_s(K v_s)^{\lambda_s}$,即两条行边缘的加权几何平均(图中已归一化显示)。注意:只迭代了一次,$a$ 已经是位于两峰之间的一个峰了——对数域里的平均把两个高斯峰「合成」一个。
第 3 步:行缩放 (9.19)
$u_s=a/(Kv_s)$:现在两个耦合的行边缘都精确等于 $a$,但列边缘又偏离了 $b_s$(读数中的列边缘误差)。下一轮 (9.18) 再把它拉回来——这就是交替投影。
第 4 步:迭代 10 轮
重复 (9.18)→(9.20)→(9.19)。列边缘误差迅速下降,$a$ 趋于稳定。
第 5 步:收敛(300 轮)并与精确重心比较
黑色虚线是精确的 Wasserstein 重心(分位数平均)。熵正则重心的位置正确,但被 $\varepsilon$ 略微抹宽了——$\varepsilon$ 越小越接近精确解,但需要的迭代也越多(与第 4 章的 Sinkhorn 一样)。
(原书在这里第二次使用了编号 9.1。)(9.17) 中的最优缩放可以写成 $(u_s,v_s)=(e^{f_s/\varepsilon},e^{g_s/\varepsilon})$,其中 $(f_s,g_s)_s$ 是下面问题的解(最优值与 (9.15) 相同):
证明思路
对 (9.16) 引入拉格朗日乘子:行约束 $a=P_s\mathbb{1}$ 对应 $f_s$,列约束 $P_s^\top\mathbb{1}=b_s$ 对应 $g_s$。强对偶成立,交换 min 与 max。对 $a$ 取最小:$\min_a\langle\sum_s\lambda_sf_s,a\rangle$ 只有在 $\sum_s\lambda_sf_s=0$ 时有限——这就是约束的来源(直观上,$a$ 是公共变量,它的「价格」必须在各项之间相互抵消)。对 $P_s$ 取最小得到 KL 的 Legendre 变换:
它是可分的,逐元素计算 $\max_r\ ur-(r\log(r/k)-r+k)$,最优性条件 $u=\log(r/k)$,即 $r=ke^u$,代回即得。于是对 $g_s$ 做分块最大化(其他变量固定)恰好是 (9.18);在约束 $\sum_s\lambda_sf_s=0$ 下对全部 $(f_s)_s$ 同时最大化,就要解出 $a$(即 (9.20)),并得到 (9.19)。所以 (9.18)–(9.20) 就是对偶问题上的交替(分块坐标)上升。
四个角是输入形状(26×26 网格上的直方图):圆环、十字、两个圆点、心形。左边 5×5 网格按双线性权重排布熵正则重心(用 (9.18)–(9.20) 逐个计算,稍候片刻即全部出现)。在左图中点击或拖动可以选任意位置的权重,右边大图显示对应的重心。
沿上边看,圆环逐渐「长出」十字的四臂;沿左边,圆环拆成两个圆点;中心处四个形状融合成一个既有洞又有臂的形状——这是质量在移动,而不是四张图的透明叠加。两点值得注意:(1) 即使在角上(只有一个输入),显示的也是被 $\varepsilon$ 轻微抹平的形状,这是熵正则的偏差;(2) $\varepsilon$ 越大图越模糊,但迭代收敛得越快。原书图 9.3 为了显示二值形状,对密度做了阈值化。
- 图 9.4:同样的熵正则重心用于三维形状(形状内部均匀分布的测度),四个输入之间的双线性插值。
- 图 9.5:曲面上的重心插值,地面代价取测地距离的平方;计算时用「热核近似测地距离」(Rem. 4.19),把 $K$ 换成曲面上的热扩散算子。
- 图 9.6:在两张图片的三维颜色直方图之间插值,再用重心投影(Rem. 4.11)把插值后的直方图「施加」回图片——得到平滑的颜色迁移动画。
高效计算 Wasserstein 重心至今仍是活跃的研究课题 [Staib et al., 2017a; Dvurechenskii et al., 2018]。除了形状分析,重心还被用于:图像处理 [Rabin et al., 2011],尤其是颜色修改(图 9.6);贝叶斯计算中汇总多个后验分布 [Srivastava et al., 2015];非线性降维——把输入测度表示成若干已知测度的 Wasserstein 重心 [Bonneel et al., 2016](这类问题的目标函数非凸,可以用自动微分精确优化,见 9.1.3 节)。与重心密切相关的问题还有:Wasserstein 空间中的主成分分析 [Seguy and Cuturi, 2015; Bigot et al., 2017b]、模板模型的统计估计 [Boissard et al., 2015],以及在概率测度空间上做 k-means 等更高级的聚类 [del Barrio et al., 2016; Ho et al., 2017]。
把两个互不重叠的一维峰 α₀、α₁ 取 λ = 1/2 的 Wasserstein 重心(平方代价),结果最可能是?
在熵正则重心迭代 (9.18)–(9.20) 中,公共的行边缘 a 是如何由各耦合的行边缘得到的?
聚类:k-means 是一个 Wasserstein 问题 k-Means as a Wasserstein Variational Problem
原书在 Rem. 9.2 指出了一个漂亮的联系。设输入只有一个测度 $\beta$(例如 $\mathbb{R}^d$ 中的一堆数据点),代价是平方欧氏距离,考虑
其中 $\alpha$ 被限制为支撑点至多 $k$ 个的离散测度(位置和权重都可以选)。这个问题等价于对 $\beta$ 做通常的 k-means:k-means 输出的质心就是最优 $\alpha$ 的支撑点,$\alpha$ 的权重就是分配给各质心的数据点所占的比例。若用熵正则近似 $\mathcal{L}_c$,得到的是被「抹平」的分配,这正是 k-means 的软聚类变体(例如高斯混合)中出现的形式 [Dessein et al., 2017]。
- 固定质心位置、优化耦合与权重:$\alpha$ 的权重可以自由选,所以只剩「列边缘 = $\beta$」这一个约束,每个数据点可以把全部质量送给最近的质心——这就是 k-means 的分配步(Voronoi 分区),权重自动等于各簇的点数比例。
- 固定耦合、优化质心位置:$\sum_{i,j}P_{ij}\|c_i-x_j\|^2$ 对 $c_i$ 最小化,得到 $c_i=\frac{1}{a_i}\sum_jP_{ij}x_j$——重心投影,也就是簇内平均,这就是 k-means 的更新步。
- 熵正则:只剩列约束时,最优耦合是 $P_{ij}=b_j\,\mathrm{softmax}_i(-\|c_i-x_j\|^2/\varepsilon)$,也就是软分配(与等方差、等先验的高斯混合 EM 的 E 步同形)。
小圆点是数据 $\beta$(60 个点,等权重),菱形是 $k$ 个质心,也就是 $\alpha$ 的支撑点(大小 ∝ 权重 $a_i$,可以拖动)。每点一次「一轮」:先求最优耦合(ε = 0 时每个点把质量全部送给最近的质心,背景色块是 Voronoi 分区),再把每个质心移到它收到的质量的重心投影。ε > 0 时是软分配:点的颜色越淡,归属越不确定。
ε = 0 时这就是 Lloyd 算法:分配与更新交替,目标值(即 $W_2^2(\alpha,\beta)$)单调下降,几轮后停住;$\alpha$ 的权重恰好是各簇的点数比例(Rem. 9.2)。多点几次「重新随机质心」,有时会停在不同的局部最优——k-means 对初值敏感,因为 (9.12) 关于质心位置非凸。把 ε 调大,归属变得模糊,质心被拉向数据整体的中心;ε 很大时所有质心几乎重合。
字典学习 Dictionary Learning
本章开头提到,为了给一组直方图降维,Lee 与 Seung [1999] 把非负矩阵分解写成以 KL 散度衡量重建误差的问题:把每个数据直方图 $b_k$ 近似成少数几个「原子」(字典)$d_1,\dots,d_K$ 的非负组合 $\sum_i w_{k,i}d_i$。当直方图的格子之间有几何关系(例如相邻的颜色、相近的词)时,可以把 KL 换成 Wasserstein 距离,得到明显不同的结果 [Sandler and Lindenbaum, 2011; Zen et al., 2014; Rolet et al., 2016]。按 9.1 节「凸性」一段:固定字典时,关于组合权重的问题是凸的(原子的凸组合 + 凸的损失);交替更新权重与字典就是 Wasserstein 字典学习的一轮。
| 线性组合(NMF 式) | 重心组合(非线性) | |
|---|---|---|
| 表示方式 | $b\approx\sum_i w_i d_i$(原子叠加) | $b\approx$ 原子 $d_i$ 以 $\lambda$ 为权重的 Wasserstein 重心 |
| 能表达「峰的位置移动」吗 | 不能:只能在原子的位置之间分配高度 | 能:重心会把峰平移到中间 |
| 优化 | 固定字典时关于权重是凸的 | 非凸;用自动微分穿过重心算法求梯度 [Bonneel et al., 2016] |
Wasserstein 传播 Wasserstein Propagation
Solomon 等 [2014b] 把重心问题推广到图上:图 $\mathcal{G}$ 中一部分节点 $V$ 上的分布 $(b_v)_{v\in V}$ 已知,其余节点 $U$ 上的分布 $(b_u)_{u\in U}$ 未知,通过最小化所有边上的传输代价之和来确定未知分布:
重心问题 (9.10) 是「星形图」的特例:$U$ 只有一个中心节点,与所有已知节点相连(权重 $\lambda_s$ 可以吸收进代价矩阵)。为每条边引入耦合并加熵正则,可以像 (9.16) 那样改写并推广 Sinkhorn 迭代(也可看作 4.6 节广义 Sinkhorn 的特例)。把图换成连续区域,(9.23) 推广为一种 Dirichlet 能量 [Solomon et al., 2013],由此定义「取值为测度的调和函数」,在图像与曲面处理中有应用;理论分析见 [Lavenant, 2017],非二次(全变差)推广见 [Vogt and Lellmann, 2018]。
- Wasserstein 重心 = Wasserstein 空间中的 Fréchet 均值;对直方图是 LP(所有耦合共享行边缘 $a$)。
- 显式情形:一维 = 分位数函数取平均;高斯 = 均值平均 + 协方差不动点 $\Psi$/$\bar\Psi$;两个输入 = McCann 插值。
- 一般情形:熵正则 + 迭代 Bregman 投影(几何平均);或自由支撑的不动点迭代(最优指派 / 重心投影)。
- k-means 是 $k$ 点支撑的重心问题;Wasserstein 字典学习与传播是重心问题的推广。
9.3 梯度流 Gradient Flows
这一节要解决的问题:怎样在概率分布的空间里做「梯度下降」?答案分两步:先把梯度下降写成隐式(近端)形式,再把其中的欧氏距离换成 Wasserstein 距离——这就是 JKO 格式(JKO scheme)。它把热方程、Fokker–Planck 方程、多孔介质方程等许多经典的偏微分方程统一解释为「某个能量在 Wasserstein 几何下的最速下降」。
从梯度下降到近端点法 Explicit and Implicit Steps
给定光滑函数 $a\mapsto F(a)$,标准的梯度下降是
$\tau$ 是足够小的步长。这叫显式(explicit)格式,只适用于光滑的 $F$。对非光滑函数可以改用隐式(implicit)格式,也叫近端点算法(proximal-point algorithm):
这就是第 7 章遇到过的欧氏近端算子 (7.13)。(9.24) 是反复作用显式算子 $\mathrm{Id}-\tau\nabla F$,(9.25) 则用隐式算子 $(\mathrm{Id}+\tau\nabla F)^{-1}$(最优性条件是 $a^{(\ell+1)}+\tau\nabla F(a^{(\ell+1)})=a^{(\ell)}$:梯度在新位置取值)。对凸的 $F$,无论 $\tau>0$ 多大,(9.25) 都收敛。
如果 $F$ 定义在直方图单纯形 $\Sigma_n$ 上,那么用最优传输度量代替 (9.25) 中的 $\ell^2$ 范数就很自然:
Wasserstein 梯度流与 JKO 格式 Wasserstein Gradient Flows
(9.26) 可以推广到任意测度:对定义在 $\mathcal{M}^1_+(\mathcal{X})$ 上的函数 $F$,迭代
这种隐式时间步进是构造连续流的有用工具:形式上令 $\tau\to0$、记 $t=\tau\ell$,$\alpha^{(\ell)}$ 就逼近一条连续的流 $t\in\mathbb{R}_+\mapsto\alpha_t$。对 $p=2$、$\mathcal{X}=\mathbb{R}^d$,形式推导表明 $\alpha_t$ 满足偏微分方程
其中 $F'(\alpha)$ 是 $F$ 的一阶变分(first variation):一个连续函数,满足 $F(\alpha+\varepsilon\xi)=F(\alpha)+\varepsilon\int_{\mathcal{X}}F'(\alpha)\,\mathrm{d}\xi(x)+o(\varepsilon)$。
典型例子是 $F=-H$,其中 $H$ 是相对于 Lebesgue 测度 $\mathcal{L}_{\mathbb{R}^d}$ 的熵 $H(\alpha)=-\int\rho_\alpha(x)\big(\log\rho_\alpha(x)-1\big)\mathrm{d}x$ (9.29)(没有密度时令 $H=-\infty$);$-H$ 也就是相对熵 $\mathrm{KL}(\alpha|\mathcal{L}_{\mathbb{R}^d})$。此时 $F'(\alpha)=\log\rho_\alpha$,(9.28) 变成 $\mathrm{div}(\rho\nabla\log\rho)=\mathrm{div}(\nabla\rho)$,即线性热扩散方程
所以热扩散有两种解释:既是 Dirichlet 能量 $\int\|\nabla\rho_\alpha\|^2\mathrm{d}x$ 的「经典」欧氏梯度流(对质量的幅度做「垂直」运动),也是负熵的最优传输梯度流(对质量的位置做「水平」运动)。
初始密度是三个峰的混合,按热方程 $\partial_t\rho=\partial_{xx}\rho$ 演化(按「播放」或拖动时间 $t$)。欧氏视角:每个位置的高度按竖直箭头升降($\partial_t\rho=\rho''$,Dirichlet 能量的 $L^2$ 梯度流)。Wasserstein 视角:质量像粒子一样水平移动,速度 $v=-\partial_x\log\rho$(负熵的 $W_2$ 梯度流)。下图是 24 个「等质量粒子」(分位数点)的轨迹:横轴是位置,纵轴是时间。
两种视角描述的是同一个演化。欧氏视角里,峰顶在下降、谷底在上升,质量像是被「垂直」地重新分配;Wasserstein 视角里,每一小份质量都从密集处向稀疏处走:峰的左侧速度向左、右侧向右,粒子轨迹从不交叉(一维最优传输是单调的)。读数中负熵 $\int\rho\log\rho$ 与 Dirichlet 能量都单调下降——同一条热方程,同时是这两个能量在两种不同几何下的最速下降。这正是 Jordan、Kinderlehrer 与 Otto [1998] 的发现。
对 Wasserstein 梯度流的兴趣源于 Jordan、Kinderlehrer 与 Otto 的开创性论文 [Jordan et al., 1998],这类演化因此常被称为「JKO 流」。Ambrosio 等 [2006] 的专著详细说明了 JKO 流是度量空间中梯度流的特例;综述见 [Santambrogio, 2017]。JKO 流可以用来研究多种非线性演化方程:多孔介质方程 [Otto, 2001]、全变差流 [Carlier and Poon, 2019]、量子漂移 [Gianazza et al., 2009]、流形上的热演化 [Erbar, 2010]。它灵活的形式还允许对解加约束,例如 Maury 等 [2010] 用来模拟人群运动的拥挤约束(密度处处有上界)[Santambrogio, 2018]。
度量空间中的梯度流 Gradient Flows in Metric Spaces
隐式步进 (9.27) 是度量空间 $(\mathcal{X},d)$ 中梯度流这一更一般框架的特例 [Ambrosio et al., 2006]。对 $\mathcal{X}$ 上的函数 $F$,隐式的离散最小化步是
JKO 步 (9.27) 就是在概率分布空间上取 Wasserstein 距离。在某些情形下可以证明,(9.31) 在 $\tau\to0$、$k\tau=t$ 时有连续流极限 $x_t$。如果 $\mathcal{X}$ 同时有欧氏结构,可以把 $F$ 线性化,定义显式步:
与隐式公式 (9.31) 形成鲜明对比:显式步通常很容易计算,但可能不稳定;隐式步总是稳定的,对非光滑的 $F$ 也有定义,但通常没有闭式。原书图 9.7 在 $\mathbb{R}^2$ 上最小化 $F(x)=\|x\|^2$,距离取 $d(x,y)=\|x-y\|_p$:显式格式对 $p=1$ 和 $p=+\infty$ 不稳定,$p=1$ 时给出沿坐标轴的步(坐标下降);隐式格式则是稳定的,并且 $p=1$ 时一旦两个坐标相等,下一步就沿对角线方向。
最小化 $F(x)=\|x\|^2$(灰色圆是等高线),但「走了多远」用 $\ell_p$ 距离衡量:蓝 $p=1$、绿 $p=2$、红 $p=\infty$。左图是显式步 (9.32),右图是隐式步 (9.31),各走 15 步。拖动任一图中的黑色起点,并调节步长 $\tau$。
显式 (9.32)
隐式 (9.31)
$p=2$ 时两种格式都沿直线指向原点:显式每步乘以 $(1-\tau)$,$\tau>1$ 后会越过原点,$\tau\ge2$ 时发散;隐式每步乘以 $1/(1+\tau)$,对任何 $\tau$ 都收敛。$p=1$ 的显式步只挪动绝对值较大的那个坐标(阶梯状的坐标下降);$p=\infty$ 的显式步每次让两个坐标移动同样多,于是在坐标轴附近来回振荡。隐式格式对三种距离都平稳收敛,$p=1$ 时两坐标一旦相等就沿对角线前进。同一个 $F$,换一种距离就换一种「梯度流」——Wasserstein 梯度流正是把距离换成 $W_2$。
粒子系统的拉格朗日离散 Lagrangian Discretization Using Particle Systems
有限维问题 (9.26) 可以看成测度空间中的流 (9.27) 的欧拉离散。另一种做法(拉格朗日方法,粒子系统)是把解参数化为随时间移动的经验测度 $\alpha_t=\frac1n\sum_{i=1}^n\delta_{x_i(t)}$:变量是点的位置而不是权重。(9.26) 于是变成关于 $X(t)=(x_i(t))_i\in\mathcal{X}^n$ 的 $n$ 个耦合常微分方程。若 $F$ 对离散测度有限,可直接令 $\mathcal{F}(X)=F\big(\frac1n\sum_i\delta_{x_i}\big)$。典型例子:线性函数 $F(\alpha)=\int V\mathrm{d}\alpha$ 对应 $\mathcal{F}(X)=\frac1n\sum_iV(x_i)$;二次相互作用 $F(\alpha)=\int\!\!\int W(x,y)\mathrm{d}\alpha(x)\mathrm{d}\alpha(y)$ 对应 $\mathcal{F}(X)=\frac1{n^2}\sum_{i,j}W(x_i,x_j)$。
对只在有密度时才有限的函数(例如熵),要先用密度估计把点云变成密度。对熵 (9.29),一个相合估计(差一个常数)是最近邻距离的对数和 [Beirlant et al., 1997]:
步长足够小时,$W_2$ 与点位置之间的欧氏距离一致(按粒子权重 $1/n$ 归一化),梯度流就等价于位置上的欧氏流 $X'(t)=-\nabla\mathcal{F}(X(t))$,用显式欧拉步 $X^{(\ell+1)}=X^{(\ell)}-\tau\nabla\mathcal{F}(X^{(\ell)})$ 离散,类似 (9.24)。若 $\mathcal{F}$ 不光滑,则像 (9.25) 那样用隐式欧拉步 $X^{(\ell+1)}=\mathrm{Prox}^{\|\cdot\|}_{\tau\mathcal{F}}(X^{(\ell)})$。最简单的线性情形 $F(\alpha)=\int V\mathrm{d}\alpha$ 中,每个粒子独立地沿 $x_i'(t)=-\nabla V(x_i(t))$ 运动(密度沿流的积分曲线做平流)。
240 个粒子(每个质量 $1/n$)最初分成两个方块。能量 $F(\alpha)=\int V\,\mathrm{d}\alpha-\kappa H(\alpha)$:势能 $V$ 把粒子往低处拉,熵项(用最近邻距离 (9.33) 估计)让相邻粒子互相推开。每一帧做若干次显式欧拉步。颜色随时间由蓝变红。下方一排是按当前设置、从两个方块出发的时间快照(对应原书图 9.8 的 $t=0,0.2,\dots,0.8$)。
$V=\|x\|^2$、$\kappa=1$ 时,两团粒子先相向而行、合并,再铺开成一团圆形的高斯云,经验协方差趋于理论值 $(\kappa/2)I$(平稳分布 $\propto e^{-V/\kappa}$;有限粒子数和有限时间步会带来百分之几的偏差)。把 κ 调到 0:只剩线性能量的流,每个粒子独立地沿 $-\nabla V$ 滑向原点,全部挤成一点。选「无」:只有熵,粒子不断扩散——这是离散的热方程。双势阱时平稳分布有两个峰,粒子会分成两群。这就是离散化的 Fokker–Planck 方程;它也可以用随机方法模拟:让单个粒子带高斯噪声地漂移(Langevin Monte Carlo),其收敛速度同样可以用 Wasserstein 距离刻画 [Dalalyan and Karagulyan, 2017]。
测地凸性 Geodesic Convexity
与梯度流密切相关的重要概念是函数 $F$ 关于 Wasserstein-2 几何的凸性,即 $F$ 沿 Wasserstein 测地线(位移插值,Rem. 7.1)是凸的。对这样的函数,(连续时间的)Wasserstein 梯度流存在、唯一,是离散步进 (9.27) 在 $\tau\to0$ 时的极限,并在 $t\to+\infty$ 时收敛到一个平稳分布。
- 熵是测地凸函数的典型例子(此处指负熵 $-H$);线性函数 $F(\alpha)=\int V\mathrm{d}\alpha$($V$ 凸)与二次相互作用 $F(\alpha)=\int\!\!\int W(x,y)\mathrm{d}\alpha(x)\mathrm{d}\alpha(y)$($W$ 凸)也是。
- 线性函数在通常意义下也是凸的,但相互作用能不一定:$W(x,y)=\|x-y\|^2$ 是负半定核(Def. 8.3),对应的 $F$ 在通常意义下是凹的,却是测地凸的。
- McCann [1997] 的重要结果:$\mathbb{R}^d$ 上的广义「熵」$F(\alpha)=\int\varphi(\rho_\alpha(x))\mathrm{d}x$ 是测地凸的,只要 $\varphi$ 凸、$\varphi(0)=0$、$\varphi(t)/t\to+\infty$($t\to+\infty$),并且 $s\mapsto s^d\varphi(s^{-d})$ 是凸的且递减。
数值方法 Numerical Schemes
关于离散化梯度流的数值解有大量文献,这里只列代表性的工作。一维问题有非常精确的求解器,因为 OT 是分布函数反函数(分位数函数)的二次泛函(Rem. 2.30)[Kinderlehrer and Walkington, 1999; Blanchet et al., 2008; Agueh and Bowles, 2013; Matthes and Osberger, 2014; Blanchet and Carlier, 2015]。高维可以用有限元和有限体积格式 [Carrillo et al., 2015; Burger et al., 2010],或拉格朗日格式(粒子系统)[Carrillo and Moll, 2009; Benamou et al., 2016a; Westdickenberg and Wilkening, 2010]。另一个方向是寻找能保持连续情形某些性质的离散流(通常在离散网格或图上)[Mielke, 2013; Erbar and Maas, 2014; Chow et al., 2012; Maas, 2011]。
用熵正则化近似求解欧拉离散问题 (9.26) 的方法由 Peyré [2015] 提出,Chizat 等 [2018b] 做了改进,Carlier 等 [2017] 做了理论分析:加上熵正则后,(9.26) 具有 (4.49) 的形式(取 $G=\iota_{\{a^{(\ell)}\}}$,并把 $F$ 换成 $\tau F$),于是可以用广义 Sinkhorn 迭代 (4.51) 近似 $a^{(\ell+1)}$;$\varepsilon\to0$ 时的收敛性由 Carlier 等 [2017] 证明。原书图 9.9 展示了这样算出的演化:带漂移 $V$ 与拥挤约束的能量 $F(\alpha)=\int V\mathrm{d}\alpha+\iota_{\le\kappa}(\rho_\alpha)$(密度不得超过 κ),场景包括带障碍物的平面区域和曲面。机器学习中一个有趣的应用是反过来从数据学习能量 $F$,使其最好地刻画观测到的密度演化——可以用熵正则 OT 加自动微分求解这个光滑的非凸优化 [Hashimoto et al., 2016]。
还可以对 10.2 节的非平衡 OT 距离计算梯度流,得到允许质量产生或消失的演化,这对刻画许多物理、生物或化学现象至关重要。著名的例子是描述细胞(肿瘤)生长的 Hele-Shaw 模型 [Perthame et al., 2014],理论研究见 [Gallouët and Monsaingeon, 2017; Di Marino and Chizat, 2017];这类非平衡梯度流同样可以用广义 Sinkhorn 算法近似 [Chizat et al., 2018b]。
JKO 格式与普通的近端点法(隐式梯度下降)相比,唯一的改动是什么?
热方程 ∂ρ/∂t = Δρ 作为 Wasserstein 梯度流,是在最小化哪个能量?
- 显式步 (9.24) 简单但可能不稳定;隐式(近端)步 (9.25) 稳定。梯度流由「距离」决定。
- JKO:近端项用 $W_2^2$ → 连续极限 $\partial_t\alpha=\mathrm{div}(\alpha\nabla F'(\alpha))$;负熵 → 热方程;$\int V\mathrm{d}\alpha-\kappa H$ → Fokker–Planck。
- 数值上可用欧拉离散(熵正则 + 广义 Sinkhorn)或拉格朗日粒子(最近邻熵估计 + 显式欧拉)。
- 测地凸性(沿位移插值的凸性)是 Wasserstein 梯度流理论的关键。
9.4 最小 Kantorovich 估计量 Minimum Kantorovich Estimators
这一节要解决的问题:手里只有一堆样本 $(x_i)_{i=1}^n$,想用参数模型 $\theta\mapsto\alpha_\theta$ 去拟合它们。统计学的标准答案是最大似然,但它要求模型有密度;而现代的生成模型(GAN、VAE 的解码器)恰恰只能采样、没有密度。把损失换成 OT 距离,就得到最小 Kantorovich 估计量(minimum Kantorovich estimator, MKE)。
形式上,要把参数模型拟合到观测到的经验测度 $\beta$:
其中 $\mathcal{L}$ 是离散分布与「连续」(任意)分布之间的某种损失(见图 9.10)。
若 $\alpha_\theta$ 关于 Lebesgue 测度(或别的固定参考测度)有密度 $\rho_\theta$,最大似然估计(maximum likelihood estimator, MLE) 就是
它是 KL 损失的经验版本:若 $x_i$ 是某个 $\bar\beta$ 的独立同分布样本,$n\to\infty$ 时 $\frac1n\mathcal{L}_{\mathrm{MLE}}$ 收敛到 $\mathrm{KL}(\bar\beta|\alpha_\theta)$ 加上一个与 $\theta$ 无关的常数($\bar\beta$ 的熵)。(原书简写为 $\mathcal{L}_{\mathrm{MLE}}(\alpha,\beta)\to\mathrm{KL}(\alpha|\bar\beta)$。)
MLE 在许多情形下给出最优的估计 [Owen, 2001],但估计奇异分布时它会失灵:要么 $\alpha_\theta$ 没有密度(于是 $\mathcal{L}_{\mathrm{MLE}}(\alpha_\theta,\beta)=+\infty$);要么样本来自某个奇异的 $\bar\beta$(为了让 $\mathrm{KL}$ 有限,$\alpha_\theta$ 必须与 $\bar\beta$ 有相同的支撑,而这个支撑通常是未知的)。另一个问题是,在许多实际情形中密度 $\rho_\theta$ 根本无法计算(或太难计算)。
生成模型 Generative Models
两个问题(奇异、密度未知)同时出现的典型场景是生成模型(generative model):参数测度写成固定参考测度 $\zeta\in\mathcal{M}(\mathcal{Z})$ 的推前(push-forward)(Def. 2.1)
隐空间 $\mathcal{Z}$ 通常是低维的,所以 $\alpha_\theta$ 的支撑集中在一个低维「流形」上,得到的测度高度奇异(关于 Lebesgue 测度没有密度)。而且即使有密度,通常也算不出来;与此同时,采样却很容易:取 $\zeta$ 的独立样本 $z_i$,计算 $x_i=h_\theta(z_i)$ 即可。
灰色短竖线是 $n=40$ 个数据点 $\beta$。模型族都是「位置–尺度」型:$\alpha_\theta$ 的分位数函数是 $\theta_1+\theta_2\,q(t)$。右图是损失曲面(颜色越深损失越小,斜线区域表示 $+\infty$),可在 $W_2^2$(MKE)与负对数似然(MLE)之间切换。拖动右图中的白点改变 $\theta$,左图同步显示模型;点「梯度下降」看 $\theta$ 沿 $W_2^2$ 的梯度滑向最优点(★ = MKE 最优,✕ = MLE 最优)。
高斯模型:两种损失都有唯一最优点,均值都是样本均值;MKE 的 $\sigma^\star$ 略小于样本标准差(习题 9.7)。均匀模型:负对数似然在「区间没有盖住全部数据」的地方都是 $+\infty$,MLE 必须恰好覆盖从最小值到最大值——选「含一个离群点」,MLE 的区间被一个点拉得很宽,而 $W_2^2$ 处处有限、光滑,离群点只按其质量 $1/n$ 施加影响。狄拉克模型:没有密度,似然处处是 $+\infty$,MLE 无从谈起;$W_2^2(\delta_\mu,\beta)$ 却是一条抛物线,最优点是样本均值。这正是 MKE 能训练「没有密度的生成模型」的原因。(对这类一维位置–尺度模型,$W_2^2$ 是 $\theta$ 的二次函数,所以梯度下降一路直奔最优点。)
对偶形式与梯度 Dual Formulation and Gradients
为了应对这样困难的场景,要用弱度量代替 MLE 泛函 $\mathcal{L}_{\mathrm{MLE}}$,并写成对偶形式
8.2 节的对偶范数(例如 MMD、$W_1$)对应 $\mathcal{R}=\{(f,-f):f\in B\}$,最优传输 (2.24) 则取 $\mathcal{R}=\mathcal{R}(c)$((2.25) 中的约束集 $f(x)+g(y)\le c(x,y)$)。对固定的 $\theta$,用这样的损失计算 (9.34) 中的能量就是求解一个半离散最优传输(第 5 章的主题);而对 $\theta$ 最小化要困难得多,通常是高度非凸的。
记 $f_\theta$ 为计算 $\mathcal{E}(\theta)=\mathcal{L}(\alpha_\theta,\beta)$ 时 (9.35) 的解,则一个次梯度为
其中 $\partial h_\theta(x)\in\mathbb{R}^{\dim(\Theta)\times d}$ 是 $\theta\mapsto h_\theta$ 关于 $\theta$ 的微分(在生成样本处取值),$\nabla f_\theta$ 是 $f_\theta$ 关于 $x$ 的梯度。这个公式在数值上很难用:首先要算出一个连续函数 $f_\theta$(半离散问题的解);对 OT 损失可以用随机优化(第 5 章 5.4 节;原书此处指向 §8.5),但在高维几乎不可行。另一种办法是给势函数加上参数形式,例如 RKHS 展开 [Genevay et al., 2016] 或深度网络近似(WGAN [Arjovsky et al., 2017]),但这会带来目前尚无理论分析的近似误差。最后,由于需要计算对偶势的梯度 $\nabla f_\theta$,它在数值上也不稳定。
对 OT 损失,还有另一个梯度公式:不求对偶势,而求下面等价问题的原始最优耦合:
在这里的半离散情形,目标可以拆成(每个 $\gamma_i\in\mathcal{M}^1_+(\mathcal{Z})$ 是分给数据点 $x_i$ 的那一块隐空间质量)
求得最优的 $(\gamma_{\theta,i})_i$ 后,梯度为
$\nabla_1c(x,y)\in\mathbb{R}^d$ 是 $x\mapsto c(x,y)$ 的梯度。与 (9.36) 不同,这个公式不需要计算对偶势的梯度。
第 1 步:从参考分布采样
在隐空间 $\mathcal{Z}=[0,1]$ 上取 $\zeta$ 的 12 个样本 $z_k$(左边的小横条)。生成器是最简单的「线段」模型 $h_\theta(z)=p+z\,w$,参数 $\theta=(p,w)\in\mathbb{R}^4$。
第 2 步:推前——模型没有密度
$\tilde x_k=h_\theta(z_k)$ 落在一条线段上:$\alpha_\theta=h_{\theta\sharp}\zeta$ 是平面上的一维测度,没有密度,在任何数据点(蓝)处似然都是 0,MLE 无法使用。
第 3 步:OT 匹配(离散版的 (9.38))
在生成点与数据点之间解最优传输(这里点数相同,最优耦合是一个指派 $\sigma$)。灰线连接每个生成点与它的匹配点。$W_2^2$ 是连线长度平方的平均。
第 4 步:梯度——每个生成点被拉向匹配点
拉力 $-\nabla_1c=2(x_{\sigma(k)}-\tilde x_k)$(箭头)。链式法则把它们汇总到参数上:$\nabla_p\mathcal{E}=\frac2m\sum_k(\tilde x_k-x_{\sigma(k)})$,$\nabla_w\mathcal{E}=\frac2m\sum_kz_k(\tilde x_k-x_{\sigma(k)})$——整体平移由平均拉力决定,方向与长度由「按 $z_k$ 加权」的拉力决定。
第 5 步:更新并重复
$\theta\leftarrow\theta-\eta\nabla\mathcal{E}(\theta)$,然后回到第 1 步(重新匹配)。浅色线段依次是 1、3、10 步后的位置,深色是 40 步后:线段移到数据中间,并沿数据的主方向铺开,$W_2^2$ 从 8.67 降到约 0.02。
用 $\mathcal{L}=\mathcal{L}_c$ 得到的这类估计量常被称为「最小 Kantorovich 估计量」,最早由 Bassetti 等 [2006] 提出(另见 [Canas and Rosasco, 2012])。它曾被用于训练受限玻尔兹曼机 [Montavon et al., 2016],与近似贝叶斯计算结合 [Bernton et al., 2017];用深度网络近似这些计算,可以训练 GAN [Arjovsky et al., 2017] 与 VAE [Bousquet et al., 2017] 这类深度生成模型(另见 [Genevay et al., 2018, 2017; Salimans et al., 2018])。用 Sinkhorn 散度拟合参数模型在形状匹配与配准中早已是常规操作 [Gold et al., 1998; Chui and Rangarajan, 2000; Myronenko and Song, 2010; Feydy et al., 2017]。
在机器学习应用中,OT 方法的成败很大程度上取决于地面代价 $c(x,y)$ 是否刻画了数据的几何。许多数据可以嵌入欧氏空间(例如词向量 [Mikolov et al., 2013]),但很多时候需要调整或优化度量。监督任务中的度量学习是经典问题 [Kulis, 2012; Weinberger and Saul, 2009],它已被推广到在含 OT 距离的学习流程中学习地面度量 $c(x,y)$ [Cuturi and Avis, 2014](另见 Zen et al. 2014;Wang and Guibas 2012;Huang et al. 2016)。相关的反问题是从观测到的最优耦合 $P$ 反推代价矩阵,可用低秩先验正则化 [Dupuy et al., 2016]。与之相关的还有迁移学习 [Pan and Yang, 2010] 与域适应 [Glorot et al., 2011]:把训练好的机器学习流程迁移到新数据集上,这也可以用 OT 技术建模和求解 [Courty et al., 2017b,a]。
与对偶梯度公式 (9.36) 相比,基于原始耦合的梯度公式(由 (9.38) 得到)最大的好处是什么?
- MLE = 经验 KL,需要密度;生成模型 $h_{\theta\sharp}\zeta$ 支撑低维、没有密度,MLE 失效。
- OT 损失(MKE)对奇异模型仍然有限、可微;计算它是半离散 OT 问题。
- 梯度两条路:对偶势 $\nabla f_\theta$(WGAN 式,需要近似势函数)或原始耦合 (9.38)(只需匹配,不需要势的梯度)。
本章小结
- 一个统一的形式:本章所有问题都是 $\min_\theta\mathcal{L}_c(\alpha_\theta,\beta)$ 或其组合;关键工具是 Wasserstein 损失的梯度。
- 求导:欧拉离散(调权重)的梯度是对偶势 $f$;拉格朗日离散(动点)的梯度由最优耦合 $P$ 给出,平方代价下 $\nabla_i\mathcal{F}=2a_i(x_i-T(x_i))$,指向重心投影。迭代有限时对 Sinkhorn 做自动微分。
- 重心:Wasserstein 空间中的 Fréchet 均值;「平移、变形」而非「叠加」。一维 = 分位数平均;高斯 = 均值平均 + 不动点 $\Psi$/$\bar\Psi$;$S=2$ = McCann 插值;一般 = 熵正则 + 迭代 Bregman 投影(几何平均),或自由支撑不动点(最优指派 / 重心投影)。k-means 与 Wasserstein 字典学习、Wasserstein 传播都是同一族问题。
- 梯度流:JKO = 近端点法中的距离换成 $W_2$;连续极限 $\partial_t\alpha=\mathrm{div}(\alpha\nabla F'(\alpha))$。负熵 → 热方程,$\int V\mathrm{d}\alpha-\kappa H$ → Fokker–Planck。欧拉(熵正则 Sinkhorn)或拉格朗日(粒子)离散;注意测地凸性与锁定现象。
- MKE:用 OT 代替似然,适用于没有密度的生成模型;梯度可经对偶势或原始耦合回传。
| 小节 | 问题 | 核心工具 | 本章演示 |
|---|---|---|---|
| 9.1 | $\min_\theta\mathcal{L}_c(\alpha_\theta,\beta)$ 的梯度 | $\nabla_a=f$(Prop. 9.1);$\nabla_C=P$(Prop. 9.2);自动微分 | 欧拉镜像下降;拖点看梯度 |
| 9.2 | $\min_a\sum_s\lambda_s\mathrm{L}_{C_s}(a,b_s)$ | 分位数平均;$\bar\Psi$ 不动点;(9.18)–(9.20);指派不动点;Lloyd | 一维重心;高斯网格;二维形状;点云;k-means |
| 9.3 | $\operatorname{argmin}_\alpha W_2^2(\alpha,\alpha^{(\ell)})+\tau F(\alpha)$ | JKO → PDE (9.28);粒子 + 最近邻熵 | 热方程两视角;显式/隐式;Fokker–Planck 粒子 |
| 9.4 | $\min_\theta\mathcal{L}_c(h_{\theta\sharp}\zeta,\beta)$ | 半离散 OT;对偶或原始梯度 (9.36)/(9.38) | MKE vs MLE 损失曲面;线段生成模型 |
概念之间的联系:拉格朗日梯度 (9.7)「每个点被拉向它的重心投影」贯穿全章——它就是重心的不动点迭代(Rem. 9.4)、k-means 的更新步(Rem. 9.2)、粒子梯度流中的「漂移」,以及 MKE 原始梯度 (9.38) 的核心。熵正则 + Sinkhorn 则提供了光滑、可微、可并行的计算引擎(Prop. 9.1、(9.18)–(9.20)、梯度流的广义 Sinkhorn)。
| 重心的求法 | 适用情形 | 特点 |
|---|---|---|
| 分位数平均(Rem. 9.6) | 一维 | 精确,只需排序,$O(n\log n)$ |
| $\bar\Psi$ 不动点(Rem. 9.5) | 高斯 | 均值取平均,协方差迭代收敛 |
| McCann 插值(Rem. 9.8) | 两个输入 | $(\lambda_1\mathrm{Id}+\lambda_2T)_\sharp\alpha_0$ |
| 迭代 Bregman 投影((9.18)–(9.20)) | 同一网格上的直方图(欧拉) | 简单、可并行;有 $\varepsilon$ 模糊 |
| 自由支撑不动点(Rem. 9.4) | 点云(拉格朗日) | 锐利、无模糊;关于位置非凸 |
自测
用梯度下降更新直方图 a 时,为什么要把对偶势 f 中心化(让 f 的分量之和为 0)?
对平方欧氏代价,若干高斯 N(m_s, Σ_s) 的 Wasserstein 重心的均值是什么?
把 k-means 写成 Wasserstein 问题 (9.12) 后,最优 α 的权重 a_i 等于什么?
生成模型把一维均匀分布经 h_θ 映成平面中的一条曲线。用平面上带噪声的数据做最大似然拟合,会发生什么?
对一个凸函数 F,下列哪种格式对任意步长 τ > 0 都收敛?
熵正则重心(ε > 0)与精确的 Wasserstein 重心相比,典型的差别是什么?
习题
提示
一维最优传输是单调重排:第 $i$ 小的蓝点配第 $i$ 小的红点。参考解答
单调匹配给出 $P=\frac12 I$,$\mathcal{F}=\frac12(x_1-y_1)^2+\frac12(x_2-y_2)^2$,直接求导得 $\nabla\mathcal{F}=(x_1-y_1,\ x_2-y_2)$。按 (9.7):$\nabla_i\mathcal{F}=2\big(a_ix_i-\sum_jP_{ij}y_j\big)=2\big(\frac12x_i-\frac12y_i\big)=x_i-y_i$,一致。负梯度指向各自的匹配点 $y_i$(重心投影 $T(x_i)=y_i$)。
若 $x_1$ 被拖到 $x_2$ 右边,单调匹配交换:原来的 $x_1$ 变成较大的点而配给 $y_2$,梯度随之变成 $x_1-y_2$ 与 $x_2-y_1$。在 $x_1=x_2$ 处匹配不唯一,$\mathcal{F}$ 不可微(有一个「折角」),此时 (9.7) 给出的是超梯度之一——这正是 Prop. 9.2 中 $\varepsilon=0$ 时「上梯度」的含义。
提示
用 $\sum_ia_i=\sum_jb_j=1$;$e^{(f_i+t)/\varepsilon}e^{(g_j-t)/\varepsilon}=e^{f_i/\varepsilon}e^{g_j/\varepsilon}$。参考解答
(a) $\langle f+t,a\rangle+\langle g-t,b\rangle=\langle f,a\rangle+\langle g,b\rangle+t(\sum a-\sum b)=\langle f,a\rangle+\langle g,b\rangle$;而 $\varepsilon\langle e^{f/\varepsilon},Ke^{g/\varepsilon}\rangle=\varepsilon\sum_{ij}e^{(f_i+g_j-C_{ij})/\varepsilon}$ 中 $t$ 相互抵消。故目标值不变,最优解只确定到这种平移。
(b) 由 Prop. 9.1,一阶变化为 $\langle\nabla_a\mathrm{L}^\varepsilon_C,\delta(e_j-e_i)\rangle=\delta(f_j-f_i)$;把 $f$ 换成 $f+t\mathbb{1}$,差 $f_j-f_i$ 不变。因为保持质量的方向分量和都为 0,常数部分永远不起作用;中心化只是选一个代表,并保证梯度步本身不改变总质量。
提示
$\Psi(cI)=\sum_s\lambda_s(c\,\Sigma_s)^{1/2}=\sqrt c\sum_s\lambda_s\Sigma_s^{1/2}$,对角矩阵的平方根逐元素开方。参考解答
(a) $\Psi(cI)=\sqrt c\cdot\frac12\big(\mathrm{diag}(1,\epsilon)+\mathrm{diag}(\epsilon,1)\big)=\sqrt c\,\frac{1+\epsilon}{2}I$。令其等于 $cI$ 得 $\sqrt c=\frac{1+\epsilon}{2}$,即 $\Sigma^\star=\big(\frac{1+\epsilon}{2}\big)^2I$(由唯一性,它就是重心)。
(b) 线性平均是 $\frac{1+\epsilon^2}{2}I$。$\epsilon\to0$ 时,重心是半径(标准差)$\frac12$ 的圆,线性平均是半径 $\frac1{\sqrt2}\approx0.71$ 的圆:线性平均协方差会「胀大」。直观上:从 $\mathcal{N}(0,\Sigma_1)$ 到 $\mathcal{N}(0,\Sigma_2)$ 的最优映射是线性的 $T=\mathrm{diag}(\epsilon,1/\epsilon)$——把水平方向从 1 压到 $\epsilon$,同时把竖直方向从 $\epsilon$ 拉到 1;重心是 $\frac12(\mathrm{Id}+T)_\sharp\mathcal{N}(0,\Sigma_1)$,走到一半时两个方向的标准差都是 $\frac{1+\epsilon}{2}$。线性平均则相当于把两根针的质量叠在一起,各方向的二阶矩直接平均。
提示
分位数函数:$Q_0(t)=t$,$Q_1(t)=2+2t$。参考解答
$Q_{1/2}(t)=\frac12t+\frac12(2+2t)=1+1.5t$,所以重心是 $U[1,2.5]$:一个宽度 1.5 的均匀分布,位于两者之间。欧氏平均则是密度为 $\frac12$ 的 $U[0,1]$ 与密度为 $\frac14$ 的 $U[2,4]$ 的叠加(两块,中间 $[1,2]$ 是空的)。
两个输入是模板 $U[0,1]$ 以 $x\mapsto rx+u$ 变换得到:$(r_0,u_0)=(1,0)$、$(r_1,u_1)=(2,2)$。重心的缩放因子 1.5 是算术平均 $\frac12(1+2)$,平移 1 是 $\frac12(0+2)$。若按原书 Rem. 9.7 的调和平均 $(\frac12\cdot1+\frac12\cdot\frac12)^{-1}=\frac43$,就与直接计算不符——这印证了本章「常见误区」框中的说明:原书公式对应的是 $x\mapsto x/r+u$ 的约定。
提示
(a) 权重 $a$ 可自由选择,行约束消失,问题对每一列 $j$ 独立。(b) 对每一列写拉格朗日函数。参考解答
(a) 行边缘 $a$ 是自由变量,所以唯一的约束是 $\sum_iP_{ij}=b_j=\frac1n$,目标 $\sum_j\sum_iP_{ij}C_{ij}$ 对各列可分。第 $j$ 列是在 $\{P_{\cdot j}\ge0,\ \sum_iP_{ij}=\frac1n\}$ 上最小化线性函数,最优解把全部质量放在 $C_{ij}$ 最小的 $i$,即最近的质心,值为 $\frac1n\min_i\|c_i-x_j\|^2$。求和即 k-means 目标;此时 $a_i$ 等于第 $i$ 簇的点数比例。
(b) 第 $j$ 列的拉格朗日函数 $\sum_i\big(P_{ij}C_{ij}+\varepsilon P_{ij}(\log P_{ij}-1)\big)-\mu_j(\sum_iP_{ij}-b_j)$,对 $P_{ij}$ 求导为零:$C_{ij}+\varepsilon\log P_{ij}-\mu_j=0$,得 $P_{ij}=e^{(\mu_j-C_{ij})/\varepsilon}$;由 $\sum_iP_{ij}=b_j$ 定出 $e^{\mu_j/\varepsilon}$,即得 softmax 形式。这正是各向同性、等先验(方差 $\varepsilon/2$)的高斯混合 EM 的 E 步。
提示
两个问题都是关于 $x$ 的凸二次函数,令梯度为零。参考解答
(a) 隐式:$\min_x\|x-x^{(\ell)}\|^2+\tau\|x\|^2$,令 $2(x-x^{(\ell)})+2\tau x=0$ 得 $x^{(\ell+1)}=\frac{x^{(\ell)}}{1+\tau}$。显式:$\min_x\|x-x^{(\ell)}\|^2+\tau\langle2x^{(\ell)},x\rangle$,得 $x^{(\ell+1)}=(1-\tau)x^{(\ell)}$。
(b) 隐式对所有 $\tau\gt0$ 收敛(因子 $\frac1{1+\tau}\lt1$)。显式需要 $|1-\tau|\lt1$,即 $0\lt\tau\lt2$;$1\lt\tau\lt2$ 时来回越过原点振荡着收敛,$\tau\ge2$ 时不收敛($\tau\gt2$ 时发散)。
(c) $(1+\tau)^{-t/\tau}\to e^{-t}$,$(1-\tau)^{t/\tau}\to e^{-t}$:两者都逼近 $x(t)=e^{-t}x(0)$,即 $\dot x=-x$。(注意 (9.31) 中距离平方没有 $\frac12$,所以这里的连续流是 $\dot x=-\frac12\nabla F$;这只差一个时间尺度。)
提示
$W_2^2=\int_0^1(\mu+\sigma q(t)-Q_\beta(t))^2\mathrm{d}t$;$\int q=0$,$\int q^2=1$,$\sum_im_i=0$;最后用 Cauchy–Schwarz 与 Jensen。参考解答
(a) 在第 $i$ 段 $((i-1)/n,i/n]$ 上 $Q_\beta=x_{(i)}$。展开:$\int(\mu+\sigma q)^2=\mu^2+\sigma^2$(交叉项含 $\int q=0$);$-2\int(\mu+\sigma q)Q_\beta=-2\mu\bar x-2\sigma M$;$\int Q_\beta^2=\frac1n\sum x_{(i)}^2$。配方即得 $(\mu-\bar x)^2+(\sigma-M)^2+\big(\frac1n\sum x_{(i)}^2-\bar x^2-M^2\big)$。
(b) 在 $\sigma\ge0$ 上最小化得 $\mu^\star=\bar x$,$\sigma^\star=M$(数据非退化时 $M\gt0$)。因 $\sum_im_i=n\int_0^1q=0$,有 $M=\frac1n\sum_im_i(x_{(i)}-\bar x)\le\sqrt{\frac1n\sum m_i^2}\,\sqrt{\frac1n\sum(x_{(i)}-\bar x)^2}$。而由 Jensen,$m_i^2=\big(n\int_{\text{段}}q\big)^2\le n\int_{\text{段}}q^2$,所以 $\frac1n\sum m_i^2\le\int_0^1q^2=1$。于是 $\sigma^\star\le$ 样本标准差 $\hat\sigma_{\mathrm{MLE}}$,等号仅在 $x_{(i)}-\bar x$ 与 $m_i$ 成比例且各段内 $q$ 为常数时成立(有限 $n$ 时不可能),所以 MKE 的 $\sigma^\star$ 总是略小。
提示
$\log(K^\top u)_j=\mathrm{LSE}_i\big((f_{s,i}-C_{ij})/\varepsilon\big)$,其中 $\mathrm{LSE}_i(z_i)=\log\sum_ie^{z_i}$,计算时先减去最大值。参考解答
(9.18):$g_{s,j}=\varepsilon\log b_{s,j}-\varepsilon\,\mathrm{LSE}_i\big((f_{s,i}-C_{ij})/\varepsilon\big)$。
记 $\ell_{s,i}=\mathrm{LSE}_j\big((g_{s,j}-C_{ij})/\varepsilon\big)=\log(K_sv_s)_i$。(9.20):$\log a_i=\sum_s\lambda_s\,\ell_{s,i}$。(9.19):$f_{s,i}=\varepsilon\big(\log a_i-\ell_{s,i}\big)$。
注意由此自动满足 $\sum_s\lambda_sf_s=\varepsilon\big(\sum_s\lambda_s\big)\log a-\varepsilon\sum_s\lambda_s\ell_s=0$,正是对偶问题 (9.21) 中的约束——对数域写法同时说明了 (9.18)–(9.20) 是 (9.21) 的分块坐标上升。收敛后重心为 $a=\exp\big(\sum_s\lambda_s\ell_s\big)$;输入为零的格子取 $\log0=-\infty$,需单独处理(令对应的 $g_{s,j}=-\infty$)。
最优传输的扩展 Extensions of Optimal Transport
同一个 Kantorovich 框架,换一换「边缘」「约束」「代价」或「空间」,就得到多边缘问题、非平衡传输、切片距离和 Gromov–Wasserstein 距离——这一章是 OT 家族的全景图。
- 说清六种扩展分别改动了 Kantorovich 问题 (2.11) 的哪一部分,各自解决什么实际困难;
- 理解多边缘问题与 Wasserstein 重心的联系:为什么离散重心最多只有 $\sum_s n_s-S+1$ 个支撑点;
- 掌握非平衡 OT:KL 惩罚如何让质量「就地销毁、凭空生成」,以及广义 Sinkhorn 更新 (10.9) 中指数 $\tau/(\tau+\varepsilon)$ 的含义;
- 会用「投影 → 排序 → 平均」计算切片 Wasserstein 距离,明白它为什么便宜、为什么能用来构造核;
- 知道向量/矩阵值测度为何难以直接做 OT,以及 Bures 度量、矩阵 KL 在其中的角色;
- 理解 Gromov–Wasserstein 只比较「内部距离矩阵」,因此能跨空间匹配形状,并会用熵正则迭代 (10.28) 求解。
- 本章所有问题都长得像 Kantorovich 问题:在某个「耦合」集合上最小化一个代价——区别只在于改了哪一块。
- 多边缘 OT:一次耦合 $S$ 个分布,耦合从矩阵变成 $S$ 维张量;代价取「加权方差」时,它的解直接给出 Wasserstein 重心(离散,最多 $\sum_s n_s-S+1$ 个点)。
- 非平衡 OT:把硬边缘约束换成 $\tau\cdot\mathrm{KL}$ 惩罚——搬得太远不如就地销毁、就地生成;$\tau\to\infty$ 回到经典 OT,Sinkhorn 只需给缩放加一个指数 $\tau/(\tau+\varepsilon)$。
- 额外约束:给耦合设上限(容量约束)或要求「条件均值不变」(鞅约束),最优耦合被迫摊开;熵正则 + Dykstra 算法可解。
- 切片 Wasserstein:投影到许多方向,每个方向做一维 OT(排序),再取平均;复杂度只有 $O(Kn\log n)$,而且是 Hilbert 度量,可以造正定核。
- 向量/矩阵值测度:一般无法直接定义 OT;对单位迹正定矩阵,特征值像直方图、特征向量还会旋转,Bures 度量推广了 Hellinger 距离。
- Gromov–Wasserstein:不比较两边点的位置,只比较两边的内部距离 $D$ 与 $D'$,所以对旋转、平移、反射不变,能匹配不同空间里的形状;它是非凸二次问题,常用熵正则 + 迭代 Sinkhorn 求局部解。
前面九章都围绕同一个问题:两个同样总质量的直方图 $a,b$,住在同一个空间里,用代价矩阵 $C$ 衡量「把 $i$ 处的质量搬到 $j$ 处」要花多少,求最省钱的耦合 $P\in U(a,b)$。现实中这几个前提常常不成立:要同时比较三个以上的分布;两堆质量不一样多(或者数据有噪声,质量本来就不可信);运输方案本身有物理/金融上的限制;数据维数高,精确 OT 太贵;「质量」不是一个数而是向量或矩阵;两个分布住在根本不同的空间里,连代价 $C$ 都无从定义。本章逐一处理这些情况。下表先给出全局印象,读完各节后可以回来对照。
| 小节 | 扩展 | 改动了 Kantorovich 问题的哪一部分 | 典型算法 | 典型应用 |
|---|---|---|---|---|
| 10.1 | 多边缘问题 | 边缘从 2 个变成 $S$ 个,耦合是 $S$ 维张量 | 多边缘 Sinkhorn (10.2)、线性规划 | Wasserstein 重心、密度泛函理论、流体 |
| 10.2 | 非平衡 OT | 硬边缘约束 → 软惩罚 $\tau\,\mathbf{D}_\varphi$ | 广义 Sinkhorn (10.9) | 噪声数据、质量不等的测度、细胞动力学 |
| 10.3 | 额外约束 | 可行集再交上一个集合 $\mathcal{C}$ | 熵正则 + Dykstra | 容量受限的运输、金融中的鞅传输 |
| 10.4 | 切片 Wasserstein | 距离换成「所有一维投影上 $W_2^2$ 的平均」 | 排序 + 随机方向;Radon 变换 | 颜色迁移、纹理合成、核方法 |
| 10.5 | 向量与矩阵 | 「质量」从数变成向量、正定矩阵 | 对偶范数、量子熵 Sinkhorn | 张量场(如扩散张量)插值 |
| 10.6 | Gromov–Wasserstein | 不需要跨空间的代价 $C$,只比较内部距离 | 熵正则 + 迭代 Sinkhorn (10.28) | 形状匹配、跨语言词向量对齐 |
10.1 多边缘问题 Multimarginal Problems
这一节要回答:如果不是两个、而是 $S$ 个分布要「一起」配对,OT 该怎么写?答案是把耦合矩阵升级为 $S$ 维张量——每个元素给一个「$S$ 元组」分配质量。它最漂亮的应用是:Wasserstein 重心可以直接从一个多边缘问题里读出来。
给定 $S$ 个直方图 $a_s\in\Sigma_{n_s}$ 和一个代价张量 $C\in\mathbb{R}^{n_1\times\cdots\times n_S}$,求
「对除第 $s$ 个下标以外的所有下标求和」就得到第 $s$ 个边缘。$S=2$ 时这正是 Kantorovich 问题 (2.11)。
熵正则与 Sinkhorn。熵正则 (4.2) 可以原样推广到这里:$\min_{P\in U(a_s)_s}\langle P,C\rangle-\varepsilon H(P)$。最优解仍然是「缩放形式」:对多重下标 $i=(i_1,\dots,i_S)$,$P_i=K_i\prod_{s=1}^S u_{s,i_s}$,其中 $K=e^{-C/\varepsilon}$。Sinkhorn 轮流更新每个缩放向量:
意思和两边缘时完全一样:先算出第 $s$ 个边缘「现在是多少」(分母),再按「目标 / 现状」的比例缩放。麻烦在于分母要对 $\prod_{\ell\neq s}n_\ell$ 项求和——张量一共有 $\prod_s n_s$ 个元素,$S$ 稍大就会爆炸(维数灾难),除非代价有特殊结构(见下面的 Rem. 10.3)。
进阶:一般测度的写法 Rem. 10.1,以及量子化学中的应用
对空间 $\mathcal{X}_1,\dots,\mathcal{X}_S$ 上的测度 $\alpha_s$,把求和换成积分:
其中耦合集要求 $P_{s,\sharp}\pi=\alpha_s$($P_s$ 是取第 $s$ 个分量的投影,推前后恰好是第 $s$ 个输入)。一个典型应用是密度泛函理论(density functional theory):$S$ 个电子彼此排斥,代价取奇异的库仑相互作用 $c(x_1,\dots,x_S)=\sum_{i\neq j}\frac{1}{\|x_i-x_j\|}$,多边缘 OT 给出「电子彼此尽量远离」的强关联极限。多边缘 OT 的理论性质可参考 Pass 的综述。
多边缘形式的重心 Multimarginal Formulation of the Barycenter
回忆第 9 章:Wasserstein 重心 $\alpha$ 要同时靠近 $S$ 个输入 $\beta_s$,即最小化 $\sum_s\lambda_s\mathcal{L}_c(\alpha,\beta_s)$ (9.11)。原书 Rem. 10.2 给出一个巧妙的等价形式。
定义重心映射(barycentric map) $A_\lambda(x_1,\dots,x_S)=\operatorname{argmin}_{x}\sum_s\lambda_s c(x,x_s)$,并取多边缘代价
若 $\pi$ 是这个多边缘问题的最优解,则 $\alpha=A_{\lambda,\sharp}\pi$ 就是重心问题 (9.11) 的解。对平方欧氏代价,$A_\lambda=\sum_s\lambda_s x_s$ 就是加权平均,代价 (10.5) 是这支小队的加权方差 $\sum_\ell\lambda_\ell\|x_\ell-\bar x\|^2$,去掉与耦合无关的常数项后等价于原书的 $-\sum_{r\le s}\lambda_r\lambda_s\langle x_r,x_s\rangle$。
离散情形:若 $\beta_s=\sum_{i_s}a_{s,i_s}\delta_{x_{s,i_s}}$,则重心也是离散的:
$P$ 是一个有 $\sum_s n_s-S+1$ 个独立等式约束的线性规划的解,它的顶点解最多有 $\sum_s n_s-S+1$ 个非零元素,所以存在支撑点不超过 $\sum_s n_s-S+1$ 个的重心(Anderes 等,2016)。
为什么成立(证明思路)
核心工具是粘合引理(gluing lemma):给定每个输入与重心之间的耦合 $\pi_s\in\mathcal{U}(\alpha_s,\alpha)$,总能把它们「粘」成一个 $S+1$ 维耦合 $\bar\pi$,使它在 $(x_s,x)$ 上的边缘恰好是 $\pi_s$。于是重心问题等价于在 $\mathcal{X}^{S+1}$ 上的单个耦合里最小化
注意最后一个边缘(重心)没有约束,于是可以对每个 $(x_1,\dots,x_S)$ 先把 $x$ 取成最优点 $A_\lambda(x_1,\dots,x_S)$,剩下的就是只含 $S$ 个输入边缘、代价为 (10.5) 的多边缘问题。至于支撑点个数:$S$ 组边缘约束共 $\sum_s n_s$ 个等式,其中「总质量为 1」被重复计算了 $S$ 次,所以独立约束有 $\sum_s n_s-(S-1)$ 个;线性规划的基本可行解(顶点)非零元个数不超过独立约束个数。
拖动红、蓝、绿三组点(输入 $\beta_1,\beta_2,\beta_3$);在右上角三角形里拖动黑点改变权重 $\lambda$。灰色细线连出最优耦合选中的「三元组」,紫色圆点是每个三元组的加权中心 $A_\lambda$(面积 ∝ 质量)——紫点合起来就是重心。下方是耦合张量的切片。勾选「熵正则」可看 Sinkhorn (10.2) 的模糊解。
均匀权重时,精确解通常恰好选出 $n$ 个三元组(像一个「三维置换」),重心就是 $n$ 个等质量的紫点;把权重换成「随机」,就会出现质量拆分,非零三元组增多,但永远不超过上界 $\sum_s n_s-S+1$。读数里用 emd 独立验算的 $\sum_s\lambda_sW_2^2(\alpha,\beta_s)$ 与多边缘最优值相同——多边缘问题确实给出了重心。打开熵正则后,几乎所有三元组都分到一点质量,重心被「抹开」;$\varepsilon$ 越小越接近精确解。
进阶:不可压缩流体(Euler 方程)的松弛 Rem. 10.3
Brenier 提出过 Euler 不可压缩流体方程的一个凸松弛:不去追踪「每个粒子怎么动」,而是求所有路径 $\gamma:[0,1]\to\mathcal{X}$ 上的一个概率分布 $\bar\pi$(和 Kantorovich 松弛一样,允许质量拆分)。能量是每条路径的动能 $\int_0^1\|\gamma'(t)\|^2\mathrm{d}t$(对照 (7.17)),与路径空间上普通 OT 的区别在于不可压缩:要求每个时刻 $t$ 粒子密度都是均匀分布 $\rho_{\mathcal{X}}$,而不只是在 $t=0,1$ 两端。
把路径离散成网格上的 $S$ 个时刻 $(x_{i_1},\dots,x_{i_S})$,就得到均匀边缘 $a_s=\mathbb{1}_n/n$ 的 $S$ 边缘问题,代价为
其中大常数 $R$ 强制粒子在首末时刻按给定的置换 $\sigma$ 移动。这个代价是「链式」的(只耦合相邻时刻),所以 (10.2) 的分母可以拆成 $S$ 次矩阵–向量乘法,代价从 $O(n^S)$ 降到 $O(Sn^2)$(Benamou 等,2015)。
三个输入各有 5 个点($S=3$,$n_s=5$)。多边缘耦合张量有多少个未知数?边缘约束中有多少个是独立的?
10.2 非平衡最优传输 Unbalanced Optimal Transport
这一节处理经典 OT 的一个「硬伤」:它要求两个测度总质量相等。一堆沙子 1 吨、另一堆 1.3 吨,Kantorovich 问题 (2.11) 根本无解;即使总质量相等,局部的质量差异也会逼着一部分质量长途跋涉。以往的补救办法(先归一化、改用对偶范数 §8.2)都不理想。非平衡 OT 的思路是:不再强制边缘相等,而是为偏离边缘付出代价。
对任意正直方图 $(a,b)\in\mathbb{R}_+^n\times\mathbb{R}_+^m$(总质量可以不同),用一个散度 $\mathbf{D}_\varphi$ (8.3) 惩罚边缘偏差:
$\tilde a=P\mathbb{1}_m$、$\tilde b=P^\top\mathbb{1}_n$ 是实际参与运输的质量;$(\tau_1,\tau_2)$ 权衡「改变质量」与「运输质量」的代价。当 $\tau_1=\tau_2\to+\infty$ 且 $\sum_ia_i=\sum_jb_j$ 时,回到带硬边缘约束的经典 OT (2.11)。
注:原书 (10.7) 第一项印作 $\mathrm{L}_C(a,b)$、(10.8) 中印作 $P^\top\mathbb{1}_m$,按上下文应分别为 $\mathrm{L}_C(\tilde a,\tilde b)$ 与 $P^\top\mathbb{1}_n$。
这个框架统一了许多已有模型:$\mathbf{D}_\varphi$ 取 $\ell^2$ 范数(Benamou 2003);取 $\ell^1$ 范数就是部分传输(partial transport)(Figalli;Caffarelli–McCann);最常用的是 KL 散度(Liero 等 2018)。
取 $\mathbf{D}_\varphi=\mathrm{KL}$、$\tau_1=\tau_2=\tau\to0$ 时,运输(只要走出一步就要付 $C_{ij}\gt0$)相对于改变质量变得极其昂贵,最优耦合只剩「原地不动」的对角部分,于是(在 $a,b$ 共用同一组支撑点、$C_{ii}=0$ 时)
即平方 Hellinger 距离(Example 8.3)。原书写作 $\mathrm{L}^\tau_C\to\mathfrak{h}^2$,指的是除以 $\tau$ 之后的这个极限。
为什么是 Hellinger(一行计算)
只允许对角耦合 $P=\mathrm{diag}(p)$ 时,目标是 $\tau\big[\mathrm{KL}(p|a)+\mathrm{KL}(p|b)\big]$。逐点求导:$\log(p_i/a_i)+\log(p_i/b_i)=0$,得 $p_i=\sqrt{a_ib_i}$(几何平均)。代回去:$\mathrm{KL}(p|a)+\mathrm{KL}(p|b)=\sum_i(a_i+b_i-2\sqrt{a_ib_i})=\sum_i(\sqrt{a_i}-\sqrt{b_i})^2$。
广义 Sinkhorn 迭代 Generalized Sinkhorn Iterations
加上熵正则后,KL 版本的非平衡 OT 仍可用 Sinkhorn 求解:这是 §4.6 广义 Sinkhorn (4.51) 的特例。最优解仍是缩放形式 $P=\mathrm{diag}(u)K\mathrm{diag}(v)$ (4.12),只是更新多了一个指数:
推导:KL 的近端算子 (4.52)
广义 Sinkhorn 的行更新是 $u\leftarrow\mathrm{Prox}^{\mathrm{KL}}_{F/\varepsilon}(Kv)/(Kv)$,其中 $F(s)=\tau\,\mathrm{KL}(s|a)$。近端问题 $\min_s\ \varepsilon\,\mathrm{KL}(s|Kv)+\tau\,\mathrm{KL}(s|a)$ 逐点求导:$\varepsilon\log\frac{s}{Kv}+\tau\log\frac{s}{a}=0$,得 $s=(Kv)^{\frac{\varepsilon}{\varepsilon+\tau}}a^{\frac{\tau}{\varepsilon+\tau}}$。于是 $u=s/(Kv)=\big(a/(Kv)\big)^{\frac{\tau}{\tau+\varepsilon}}$,正是 (10.9)。
实现细节(本页演示采用):$\varepsilon$ 很小时要在对数域或「吸收」稳定化下计算;另外 $(f+\lambda,\,g-\lambda)$ 这个方向在平衡问题里无关紧要,在非平衡问题里却收敛很慢,每轮顺手把它精确优化一下($\lambda=\frac{\tau}{2}\log\frac{\sum_i a_ie^{-f_i/\tau}}{\sum_j b_je^{-g_j/\tau}}$)可以大幅加速——这是 Séjourné 等人提出的平移不变技巧,不改变最优解。
上方是源直方图 $a$(总质量 1),下方是目标 $b$(右峰质量可调,总质量可以不是 1)。紫色连线是耦合 $P$(越深质量越多)。上方蓝色 = 实际运出的 $P\mathbb{1}$,灰色 = 被销毁的部分;下方红色 = 实际运到的 $P^\top\mathbb{1}$,绿色 = 凭空生成的部分;细黑线标出 $a$、$b$ 的原始高度。拖动 $\tau$ 与右峰质量滑块观察。
$\tau$ 很小时几乎不运输:左边两峰离得近,还会互相「挪一点」;远处的质量干脆在上方销毁(灰)、在下方生成(绿)。$\tau$ 增大,运输线越伸越远;$\tau$ 很大时几乎没有质量被销毁,但因为两边总质量不同,运输总质量趋于几何平均 $\sqrt{|a|\,|b|}$,多出来的缺口仍靠「生成」补齐。经验法则:运输量随距离按 $e^{-d^2/(2\tau)}$ 衰减(见习题 10.2),所以质量大约只会运到 $\sqrt{2\tau}$ 这个距离尺度。
对任意测度 $(\alpha,\beta)$,(2.15) 的非平衡版本(也叫 log-entropic 版本)是在所有正测度 $\pi\in\mathcal{M}_+(\mathcal{X}\times\mathcal{Y})$ 上最小化 $\int c\,\mathrm{d}\pi+\tau\mathcal{D}_\varphi(P_{1,\sharp}\pi|\alpha)+\tau\mathcal{D}_\varphi(P_{2,\sharp}\pi|\beta)$。取 $c(x,y)=\|x-y\|^2$、$\mathcal{D}_\varphi=\mathrm{KL}$ 时,$\mathcal{L}^\tau_c(\alpha,\beta)^{1/2}$ 称为 Gaussian–Hellinger 距离,它是一个真正的距离(Liero 等 2018)。
取截断代价 $c(x,y)=-\log\cos\big(\min(d(x,y)/\kappa,\pi/2)\big)$ 与 $\mathcal{D}_\varphi=\mathrm{KL}$,则 $\mathrm{WFR}(\alpha,\beta)=\mathcal{L}^\tau_c(\alpha,\beta)^{1/2}$ 就是 Wasserstein–Fisher–Rao(又称 Hellinger–Kantorovich)距离。$d\ge\pi\kappa/2$ 时代价为 $+\infty$:质量永远不会被运到比 $\pi\kappa/2$ 更远的地方,更远的差异只能靠增减质量解决。在 $\mathbb{R}^d$ 上,这个静态形式与 §7.4 的动态形式 (7.15) 等价(Liero 等;Chizat 等,2018)。
非平衡重心与插值 Unbalanced Barycenters
把重心问题 (9.11) 中的 $\mathcal{L}_c$ 换成 $\mathcal{L}^\tau_c$,就得到非平衡重心;两个输入、权重 $(1-t,t)$ 时,重心随 $t$ 的演化就是一种「插值」。原书 Fig. 10.1 用两团「一大一小」的高斯混合说明了 $\tau$ 的作用:经典 OT 必须拆开左边的大峰,得到很不规则的插值;非平衡 OT 允许质量在途中变化,各个峰不被拆开,局部的峰与峰平滑地对应起来。下面的演示重现了这张图(非平衡一侧用熵正则 + 广义 Sinkhorn 计算;经典一侧用一维单调重排精确计算)。
浅蓝 = 起点 $\alpha_0$(左峰大、右峰小),浅红 = 终点 $\alpha_1$(两峰一样大),紫色 = 权重 $(1-t,t)$ 的重心 $\alpha_t$。拖动 $t$ 或点「播放」看演化;拖动 $\tau$ 看非平衡一侧如何逐渐变得像经典一侧。
经典插值在中途出现三个峰:左边大峰的一部分(约 0.2 的质量)必须一路走到最右边去填补右峰的缺口。非平衡插值始终只有两个峰,各自平移并改变大小,途中总质量略有下降。把 $\tau$ 调大,中间那个「长途旅行」的小峰会重新出现——$\tau=\infty$ 就是经典 OT。
什么时候用非平衡 OT?实践中,当数据有噪声或不完全可靠时(成像、机器学习),非平衡 OT 往往比经典 OT 表现更好;当测度的总质量本身有意义(例如信号强度)、或者归一化没有意义时,它更是必需的。Frogner 等(2015)用它比较描述图像的词标签集合;Schiebinger 等(2017)用非平衡 OT 与相应的 Sinkhorn 迭代研究细胞的发育动力学(细胞会增殖和死亡,质量天然不守恒)。
处理质量变化的另一个简单办法是 §8.2 的对偶范数:选一个紧集 $B\subset C(\mathcal{X})$,就得到整个 $\mathcal{M}(\mathcal{X})$ 上的范数(测度甚至可以取负值)。其中的平坦范数(flat norm) (8.11) 恰好是非平衡传输的特例:取 $\mathcal{D}_\varphi(\alpha|\alpha')=\|\alpha-\alpha'\|_{\mathrm{TV}}$(全变差范数 (8.9))。
在广义 Sinkhorn 更新 (10.9) 中令 τ → ∞,迭代会变成什么?
10.3 耦合带额外约束的问题 Problems with Extra Constraints on the Couplings
这一节介绍另一类常见变形:保留两个边缘约束,但对耦合本身再加一条限制 $\pi\in\mathcal{C}$。可行集变小了,最优耦合往往被迫偏离「一对一的 Monge 映射」。
容量约束 Capacity Constraint
要求耦合的密度 $\rho_\pi$(例如相对 Lebesgue 测度)有上界:$\mathcal{C}=\{\pi:\ \rho_\pi\le\kappa\}$,$\kappa\gt0$(Korman–McCann 2015)。离散情形就是逐元素的上限 $P_{ij}\le\kappa$。
怎么算?加上熵惩罚 (4.9) 后,问题变成求核 $K$ 在「行边缘」「列边缘」「容量」三个凸集交集上的 KL 投影。可以用 Dykstra 算法(Benamou 等 2015)轮流做 KL 投影,它是 Sinkhorn(§4.2)的推广:前两个投影就是 Sinkhorn 的行、列缩放;投影到 $\{P\le\kappa\}$ 有闭式解——逐元素取 $\min(P,\kappa)$。由于这个集合不是仿射的,Dykstra 需要为它保存一个「修正量」$Q$。
初始化 $P=K=e^{-C/\varepsilon}$,$Q=\mathbb{1}$。重复:
① 行缩放 $P\leftarrow\mathrm{diag}\big(a/P\mathbb{1}\big)P$;② 列缩放 $P\leftarrow P\,\mathrm{diag}\big(b/P^\top\mathbb{1}\big)$;③ 容量投影 $T=P\odot Q$,$P\leftarrow\min(T,\kappa)$,$Q\leftarrow T/P$。
注意必须从 $P=K$ 出发(不能随意热启动),它收敛到 $K$ 在交集上的 KL 投影,也就是熵正则问题的解。
热力图是耦合 $P$(行 = 源 $a$,列 = 目标 $b$,颜色越深质量越多);红色格子表示已满载($P_{ij}=\kappa$)。向右拖动滑块降低容量上限 $\kappa$,观察耦合如何从一条细带变宽,以及运输代价如何上升。
滑块在最左端时约束不起作用,耦合是熵正则 OT 的细带(几乎是单调映射)。$\kappa$ 越小,满载的红格子越多,带子越宽,代价越高;最右端 $\kappa=\max_ia_i\cdot\max_jb_j$ 时,独立耦合 $ab^\top$ 仍然可行,但最优耦合已经非常分散。这正是「容量约束排除了集中在 Monge 映射上的奇异耦合」。
鞅约束 Martingale Constraint
当 $\mathcal{X}=\mathcal{Y}=\mathbb{R}^d$ 时,要求耦合的条件均值不变:
也就是说:从 $x$ 出发的质量可以拆开送往许多 $y$,但这些 $y$ 的平均必须仍是 $x$——耦合的重心投影映射(barycentric projection) (4.20) 必须是恒等映射。
鞅约束在金融中有大量应用(Galichon 等;Dolinsky–Soner;Tan–Touzi;Beiglböck 等):若 $x$ 是资产今天的价格、$y$ 是将来的价格,「鞅」意味着公平博弈——将来价格的条件期望等于今天的价格,由此可以给出与模型无关的期权价格界。几点要注意:
- 对任意 $(\alpha,\beta)$,$\mathcal{C}$ 通常是空集;非空的充要条件是 $\alpha,\beta$ 满足凸序(convex order)——粗略地说,$\beta$ 与 $\alpha$ 均值相同但「更分散」(对所有凸函数 $\varphi$ 有 $\int\varphi\,\mathrm{d}\alpha\le\int\varphi\,\mathrm{d}\beta$)。
- 它禁止解集中在单个 Monge 映射上,最优耦合可能集中在若干个映射图像的并(如上图),甚至更复杂的集合上。
- 离散化一个现成问题时很难精确施加这个约束;熵正则后仍可用 Dykstra 近似求解,但投影到 (10.12) 没有闭式解,需要内层子迭代(Guo–Obłój 2017)。
为什么容量约束(密度 ≤ κ)会让最优耦合不再是一个 Monge 映射?
10.4 切片 Wasserstein 距离与重心 Sliced Wasserstein Distance and Barycenters
这一节要回答:高维 OT 太贵,能不能只用最便宜的一维 OT(排序即可,§2.6)来比较高维分布?切片 Wasserstein 距离的办法是:把两个分布投影到许多方向上,比较所有的一维「影子」,再取平均。
其中 $\mathbb{S}^d=\{\theta\in\mathbb{R}^d:\|\theta\|=1\}$ 是单位球面($\mathrm{d}\theta$ 取球面上的均匀概率测度),$P_\theta(x)=\langle x,\theta\rangle$ 是到方向 $\theta$ 上的投影。这个定义来自 Bonneel 等(2015,源于 Marc Bernot 的想法),与测度空间上的 Radon 反演问题有关。
离散点云只需排序。当 $m=n$、$\alpha=\frac1n\sum_i\delta_{x_i}$、$\beta=\frac1n\sum_i\delta_{y_i}$ (10.14) 时,对每个方向 $\theta$,把 $\langle x_i,\theta\rangle$ 与 $\langle y_i,\theta\rangle$ 分别排序(排序置换记为 $\sigma_\theta,\kappa_\theta$),第 $k$ 小配第 $k$ 小:
(原书的式子省略了因子 $\frac1n$,不影响讨论。)用 $K$ 个随机方向做蒙特卡洛近似,总代价只有 $O(Kn\log n)$——对比精确 OT 的约 $O(n^3)$,差别巨大。
左:拖动蓝点($\alpha$)、红点($\beta$),或拖动黄色把手旋转投影方向 $\theta$。右上:该方向上的一维投影,排序后第 $k$ 小配第 $k$ 小。右下:所有方向上的 $W_2^2(\theta)$ 曲线(其平均就是 $\mathrm{SW}^2$)与随机抽取的 $K$ 个方向;也可切换成「正弦图」看 Radon 变换。
每个方向上只是「排序、配对」;不同方向的 $W_2^2(\theta)$ 相差很大,但它们的平均很稳定。$K$ 增大时,蒙特卡洛估计收敛到数值积分的 $\mathrm{SW}^2$,误差约按 $1/\sqrt{K}$ 缩小。读数还验证了一个不等式:二维中 $\mathrm{SW}^2\le W_2^2/2$(习题 10.5)——切片距离比真正的 $W_2$ 小,因为每个方向都只看到了一部分位移。正弦图里每个点变成一条正弦曲线 $\theta\mapsto\langle x,\theta\rangle$:这族曲线就是点云的 Radon 变换。
拉格朗日离散与随机梯度下降 Lagrangian Discretization and Stochastic Gradient Descent
固定目标点云 $y$,把 $\mathcal{E}_\beta(x)\overset{\text{def.}}{=}\mathrm{SW}(\alpha,\beta)^2$ 看成点的位置 $x=(x_i)_i$ 的函数。它是光滑的,可以做梯度下降:
这个流可以理解为泛函 $\alpha\mapsto\mathrm{SW}(\alpha,\beta)^2$ 的 Wasserstein 梯度流(§9.3)的拉格朗日实现。数值上发现它没有局部极小,总会收敛到 $\alpha=\beta$;收敛后每个 $x_i$ 的起点与终点就构成两个分布之间的一个匹配(类似 Monge 映射)。这正是颜色迁移、纹理合成(Rabin 等 2011)的做法,也与 Pitié 等(2007)的交替迭代方法有关。
切片重心:仿照 Fréchet 意义下的 Wasserstein 重心 (9.11),定义
对 $\alpha$ 与所有 $\beta_s$ 都用 (10.14) 式的拉格朗日离散,就是对点的位置做非凸最小化:$\min_x\mathcal{E}(x)=\sum_s\lambda_s\mathcal{E}_{\beta_s}(x)$,梯度 $\nabla\mathcal{E}=\sum_s\lambda_s\nabla\mathcal{E}_{\beta_s}$ (10.17),同样配合随机方向做梯度下降。在每个方向上,这等价于把 $x$ 的第 $k$ 小投影拉向「各个 $\beta_s$ 第 $k$ 小投影的加权平均」——也就是一维重心(Rem. 9.6)。
紫色的 60 个点从一团随机点出发,按 (10.17) 做随机梯度下降,目标是 $(1-t)\,\mathrm{SW}^2(\cdot,\beta_1)+t\,\mathrm{SW}^2(\cdot,\beta_2)$。点「播放」后随时拖动 $t$:$t=0$ 时点云变成左边的 $\beta_1$,$t=1$ 时变成右边的 $\beta_2$,中间是切片重心。
即使每步只用 1 个随机方向,点云也会稳稳地收敛,只是更「抖」;方向越多越平滑。播放中拖动 $t$,点云会连续地在两个形状之间变形——这就是 Fig. 10.3 中「拉格朗日」一列的做法。勾选「显示位移」可以看到每个点从哪里来:收敛后,起点到终点的对应就是一个近似的传输映射。
欧拉离散与 Radon 变换 Eulerian Discretization and Radon Transform
另一种不需要迭代的近似做法:注意到 (10.13) 其实是在比较两个测度的 Radon 变换——即「所有一维投影组成的族」:
关键事实:Radon 变换可逆,逆变换由滤波反投影(filtered backprojection) 给出:$\mathcal{R}^+(\rho)=C_d\,\Delta^{\frac{d-1}{2}}\mathcal{B}(\rho)$ (10.18)。其中反投影 $\mathcal{B}$ (10.19) 把每个一维测度 $\rho_\theta$ 沿垂直于 $\theta$ 的方向「均匀抹开」再全部叠加,分数阶拉普拉斯 $\Delta^{\frac{d-1}{2}}$ 是傅里叶域上乘以 $\|\omega\|^{d-1}$ 的高通滤波(把抹糊的部分「锐化」回来)。于是 $\mathcal{R}^+\circ\mathcal{R}=\mathrm{Id}$。
求重心时,就对每个方向分别求一维重心(用单调重排,Rem. 9.6):
再用逆 Radon 变换得到 $\alpha_{\mathcal{R}}=\mathcal{R}^+(\rho^\star)$。它一般只是近似:Radon 变换不是满射,逐方向拼出来的 $\rho^\star$ 未必是任何测度的 Radon 变换——不过实践中几乎是(Bonneel 等 2015)。对固定网格上的图像,$\mathcal{R}$ 与 $\mathcal{R}^+$ 都有快速算法,所以这种欧拉式做法很高效。原书 Fig. 10.2 展示了一个圆盘到两个小圆盘的 Radon 重心(下排是它们的 Radon 变换,横轴为角度 $\theta$,可以看到正弦图如何被插值);Fig. 10.3 比较了 Radon 重心、拉格朗日重心与真正的 Wasserstein 重心(鸭子 ↔ 兔子):三者相近,切片重心略微模糊。
切片 Wasserstein 核 Sliced Wasserstein Kernels
除了便宜,切片距离还有一个结构上的优点:它等距于一个欧氏距离(是「Hilbert 度量」)。原因见 Rem. 2.30 与 (2.36):一维 $W_2$ 就是分位数函数之间的 $L^2$ 距离,所以
其中 $Q^\alpha_\theta$ 是 $P_{\theta,\sharp}\alpha$ 的分位数函数:把 $\alpha$ 映成「一族分位数函数」,SW 就是普通的 $L^2$ 距离。与之对照,$\mathbb{R}^d$($d\ge2$)上的 $W_2$ 不是 Hilbert 度量(§8.3)。因此可以用 SW 在概率分布空间上构造再生核 Hilbert 空间,例如
对任意一组输入测度 $(\alpha_i)_i$,指数核矩阵 $(k(\alpha_i,\alpha_j))_{i,j}$ 是对称半正定的;能量距离型的 $-\mathrm{SW}^p$ 严格说是条件半正定的(在系数和为零的向量上半正定),同样可以用于核方法。于是可以用「核技巧」做回归、分类(SVM、逻辑回归)、聚类(核 K-means)、降维(核 PCA)(Hofmann 等 2008;Kolouri 等 2016)。
为什么可以用 SW 构造高斯型的正定核 exp(−SW²/(2σ²)),而对 d ≥ 2 的 W₂ 一般不行?
10.5 向量与矩阵的传输 Transporting Vectors and Matrices
这一节问:如果每个位置上的「质量」不是一个非负数,而是一个向量(比如 RGB 颜色强度、若干种化学成分的浓度)或一个正定矩阵(比如扩散张量成像中每个体素的张量),OT 还能用吗?结论是:一般情形很难,只有对偶范数能直接推广;对锥值测度和正定矩阵,有一些专门的构造,但理论还不完整。
设 $\mathbb{V}$ 是带内积的欧氏空间(通常 $\mathbb{V}=\mathbb{R}^d$)。向量值测度 $\alpha\in\mathcal{M}(\mathcal{X};\mathbb{V})$ 通过它对连续函数 $g:\mathcal{X}\to\mathbb{V}$ 的积分来定义:$\int_{\mathcal{X}}g(x)\,\mathrm{d}\alpha(x)\in\mathbb{R}$ (10.21),这对 $g$ 与 $\alpha$ 都是线性的。离散测度 $\alpha=\sum_i\mathbf{a}_i\delta_{x_i}$($\mathbf{a}_i\in\mathbb{V}$)的积分就是
等价地,$\mathbb{V}=\mathbb{R}^d$ 时 $\alpha$ 就是 $d$ 个普通(可正可负的)实测度 $(\alpha_s)_{s=1}^d$——它的各个坐标。
对偶范数 Dual Norms
把 OT 距离推广到向量值测度并不平凡,一般来说是不可能的——连处理可正可负的实测度都很困难。唯一简单的办法是 §8.2 的对偶范数:把 (6.3) 中的函数集 $B$ 换成向量值函数集 $B\subset C(\mathcal{X};\mathbb{V})$,即 $\|\alpha\|_B=\max_{g\in B}\sum_i\langle\mathbf{a}_i,g(x_i)\rangle$。于是 $W_1$、平坦范数、MMD 范数都能直接用于向量值测度。
锥值测度上的 OT OT over Cone-Valued Measures
若把 $\alpha$ 限制在 $\mathcal{M}(\mathcal{X};\mathcal{V})$ 中,就可以定义更精细的 OT 距离。这里 $\mathcal{V}=\{\lambda u:\lambda\in\mathbb{R}^+,\ u\in\mathcal{V}_0\}$ 是 $\mathbb{V}$ 中的正齐次凸锥($\mathcal{V}_0$ 为紧凸集)。两个重要例子:
- $\mathcal{V}=\mathbb{R}^d_+$:每个点有 $d$ 种非负「成分」,例如化学成分的分布;已有动态凸形式的 OT(Zinsl–Matthes 2015)。
- $\mathcal{V}=\mathcal{S}^d_+\subset\mathbb{R}^{d\times d}$:正半定矩阵(张量场)。可以把矩阵当向量用对偶范数(Ning–Georgiou 2014);也有动态凸形式(Chen 等 2016;Jiang 等 2012)和一些静态(Kantorovich 型)形式(Ning 等 2015;Peyré 等 2017),但还缺一个数学上完备的理论——例如这些静态做法是否定义了距离、是否对应某个动态形式,都还不清楚。
原书 Fig. 10.4 用 Peyré 等(2017)的方法(基于量子相对熵 (10.22) 的 Sinkhorn 推广)在两个张量场之间插值:与逐点的线性插值不同,这种类 OT 方法会搬运张量的「质量」(椭圆大小),同时搬运它的各向异性与朝向。
正定矩阵上的 OT OT over Positive Matrices
一个相关但很不一样的设定:把直方图 $a\in\Sigma_n$ 换成单位迹的正定矩阵 $A\in\mathcal{S}^+_n$,$\mathrm{tr}(A)=1$(量子力学中的「密度矩阵」)。道理是:$A$ 的特征值 $\lambda(A)\in\Sigma_n$ 恰好是一个直方图;但还要考虑特征向量的旋转,所以问题更复杂。第 8 章的一些散度可以推广过来:
- Bures 度量 (2.42) $\ B(A,B)^2=\mathrm{tr}\big(A+B-2(A^{1/2}BA^{1/2})^{1/2}\big)$ 推广了 Hellinger 距离:两者在对角正定矩阵上相等。
- 矩阵 KL(量子相对熵)推广了 KL 散度 (4.6),对两个变元都是凸的:
($\log$ 是矩阵对数;原书 (10.22) 右边误写成了 $P,Q$,应为 $A,B$。)
也可以求解凸的动态形式来定义矩阵之间的 OT 距离(Carlen–Maas 2014;Chen 等 2016、2017)。还有一个 Sinkhorn 的矩阵版本(Gurvits 2004,即「算子缩放」),Georgiou–Pavon(2015)做了深入研究:它只在某些情形下被证明收敛,但经验上似乎总是有效。
每个 $2\times2$ 单位迹正定矩阵画成一个椭圆(半轴 ∝ √特征值)。拖动椭圆 $A$(蓝)、$B$(红)上的把手,同时改变主轴方向与特征值。右上是两者的特征值直方图;下方比较两种插值:逐元素的线性插值,与把 $A,B$ 看成零均值高斯协方差时的 $W_2$(Bures–Wasserstein)测地线。
点「对齐主轴」:两矩阵可交换,问题退化为比较两个直方图——Bures 距离恰好等于特征值(排好序)之间的 Hellinger 距离,矩阵 KL 也等于直方图的 KL。一旦主轴转开,Bures 与矩阵 KL 都变大(可以证明它们永远不小于对应的直方图量,这是 von Neumann 迹不等式的推论);主轴垂直时,相当于把直方图的两个「格子」对调后再比较。下面两排比较插值:线性插值的中间椭圆明显「变胖」(上排的黑色虚线是同一时刻 Bures–Wasserstein 测地线的椭圆,总被包在里面)。这不是巧合:记 $T$ 为从 $A$ 到 $B$ 的 Monge 映射($TAT=B$),测地线为 $\Sigma_t=((1-t)I+tT)A((1-t)I+tT)$(第 2 章 Rem. 2.31),则 $(1-t)A+tB-\Sigma_t=t(1-t)(I-T)A(I-T)\succeq0$。
两个单位迹正定矩阵都是对角阵 A = diag(r),B = diag(s)。它们的 Bures 距离等于什么?
10.6 Gromov–Wasserstein 距离 Gromov–Wasserstein Distances
这一节解决形状匹配中的一个根本困难:OT 距离对重要的变换族——缩放、平移、旋转——不具有不变性,而两个形状也可能住在完全不同的空间里(比如一个是平面曲线,一个是三维网格;或者两种语言的词向量)。已有一些非凸的 OT 变体会同时优化一个全局变换(Cohen–Guibas 1999;Pele–Taskar 2013;近年用于跨语言词向量对齐:Grave 等、Alvarez-Melis 等 2019),但它们都要求事先指定要容忍哪一族变换。本节介绍一个更一般、更自然的扩展:它可以比较不同空间上的测度,而不需要定义任何变换族。
本节沿一条清晰的路线展开:Hausdorff 距离(同一空间中的集合)→ Gromov–Hausdorff 距离(不同空间中的集合)→ Gromov–Wasserstein 距离(不同空间中的测度)→ 熵正则求解。先用步骤播放器看一遍全貌:
第 1 步:Hausdorff 距离——同一空间里的两个集合
$A$、$B$ 在同一个度量空间 $\mathcal{Z}$ 里。对 $A$ 中每个点找 $B$ 中最近的点,取其中最远的那个距离;反过来再做一遍;两者取大者,就是 $\mathcal{H}_{\mathcal{Z}}(A,B)$。它衡量「最坏的那个点离对方有多远」。
第 2 步:用「集合耦合」改写
集合耦合 $R\subset A\times B$ 要求每个 $a$ 至少有一个伙伴、每个 $b$ 也至少有一个伙伴(这是测度耦合的「集合版」)。Hausdorff 距离 = 在所有集合耦合中,使「最长的一对」最短 (10.23)——把 Kantorovich 问题中的积分换成最大值。
第 3 步:Gromov–Hausdorff——两个集合住在不同空间
$\mathcal{X}$、$\mathcal{Y}$ 各有自己的距离,没有公共坐标。办法:把它们等距地嵌入某个共同空间 $\mathcal{Z}$,再算 Hausdorff 距离,对所有嵌入取最小。等价地,只比较两边的内部距离:$\frac12\min_R\max|d_{\mathcal{X}}(x,x')-d_{\mathcal{Y}}(y,y')|$ (10.24)。
第 4 步:Gromov–Wasserstein——把「最大」换成「加权平均」
给两边都配上概率测度,把集合耦合换成测度耦合 $P\in U(a,b)$,把最大值换成加权和:$\sum|D_{ii'}-D'_{jj'}|^2P_{ij}P_{i'j'}$ (10.25)。这样得到的问题更「光滑」,还能用熵正则 + Sinkhorn 近似求解。
10.6.1 Hausdorff 距离 Hausdorff Distance
度量空间 $(\mathcal{Z},d_{\mathcal{Z}})$ 中两个集合 $A,B$ 的 Hausdorff 距离为
等价地:最小的 $r$,使得 $A$ 包含在 $B$ 的 $r$-邻域里、$B$ 也包含在 $A$ 的 $r$-邻域里(原书 Fig. 10.5 的虚线圆)。它是紧集族 $\mathcal{K}(\mathcal{Z})$ 上的距离;若 $\mathcal{Z}$ 紧,则 $(\mathcal{K}(\mathcal{Z}),\mathcal{H}_{\mathcal{Z}})$ 也紧(Burago 等 2001)。
Mémoli(2011)指出,这个集合间的距离可以仿照 Wasserstein 距离来定义(测度可以看作「带权重的集合」):把测度耦合 (2.14) 换成集合耦合(set coupling)
并且(因为没有测度可以积分)把 Kantorovich 问题 (2.15) 中的积分换成最大值:
测度耦合 $\pi\in\mathcal{U}(\alpha,\beta)$ 的支撑恰好是两个支撑集之间的一个集合耦合:$\mathrm{Supp}(\pi)\in\mathcal{R}(\mathrm{Supp}(\alpha),\mathrm{Supp}(\beta))$。所以 Hausdorff 距离与 $W_\infty$(Rem. 2.20)相关:对任意支撑为 $(A,B)$ 的测度,$\mathcal{H}(A,B)\le W_\infty(\alpha,\beta)$。
拖动红点(集合 $A$)和蓝点(集合 $B$)。虚线把每个点连到对方集合中最近的点;两条粗箭头分别实现 $\sup_a\inf_b d$ 与 $\sup_b\inf_a d$,较大者就是 $\mathcal{H}(A,B)$。勾选「$\mathcal{H}$ 邻域」看以 $\mathcal{H}$ 为半径的圆如何互相覆盖;勾选「$W_\infty$」看均匀权重下的最优瓶颈匹配。
Hausdorff 距离只关心「集合」:每个点只要附近有对方的点就行,一个点可以被很多点共享。$W_\infty$ 则要求质量守恒(均匀权重时就是一一配对),所以总有 $\mathcal{H}\le W_\infty$。点「示例」:两边都是「左一团、右一团」,但左右两团的点数不同——$\mathcal{H}$ 很小,而 $W_\infty$ 必须把一个点送到另一团去,因而很大。
10.6.2 Gromov–Hausdorff 距离 Gromov–Hausdorff Distance
Gromov–Hausdorff(GH)距离(Gromov 2001;另见 Edwards 1975)衡量两个度量空间 $(\mathcal{X},d_{\mathcal{X}})$、$(\mathcal{Y},d_{\mathcal{Y}})$ 离「彼此等距」有多远(原书 Fig. 10.6)。
这里要求 $f$ 是等距嵌入:$d_{\mathcal{Z}}(f(x),f(x'))=d_{\mathcal{X}}(x,x')$($g$ 同理)。可以证明 GH 是紧度量空间之间的距离(在相差一个等距变换的意义下):$\mathcal{GH}(d_{\mathcal{X}},d_{\mathcal{Y}})=0$ 当且仅当存在等距同构 $h:\mathcal{X}\to\mathcal{Y}$(双射且保持距离)。
与 (10.23) 类似,GH 也能用集合耦合改写(Mémoli 2011):
对离散空间 $\mathcal{X}=(x_i)_{i=1}^n$、$\mathcal{Y}=(y_j)_{j=1}^m$,用距离矩阵 $D=(d_{\mathcal{X}}(x_i,x_{i'}))_{i,i'}$、$D'=(d_{\mathcal{Y}}(y_j,y_{j'}))_{j,j'}$ 和表示集合耦合的 0-1 矩阵 $R\in\{0,1\}^{n\times m}$,
(原书上式中 $d_{\mathcal{X}}(y,y')$ 应为 $d_{\mathcal{Y}}(y,y')$,(10.24) 中 $R_{j,j'}$ 应为 $R_{i',j'}$。)
GH 距离最初的动机正是定义和研究度量空间的极限(如上图),细节见 Burago 等(2001)。GH 距离的测地线也有显式描述(Chowdhury–Mémoli 2016),与下面 GW 空间的测地线(Rem. 10.8)非常相似。优化问题 (10.24) 高度非凸,求全局最优不可行;数值上只能用近似方案,已用于视觉与图形学中的形状匹配(Mémoli–Sapiro 2005;Bronstein 等 2006)。人们常希望把 Hausdorff 距离中的「最大值」换成「积分」来使它变得光滑,这需要引入测度——这正是下一小节 GW 距离的动机之一。
10.6.3 Gromov–Wasserstein 距离 Gromov–Wasserstein Distance
OT 需要一个跨两个空间的代价 $C$ 来比较直方图 $(a,b)$;如果两个直方图的格子不在同一个空间里,或者无法事先把两个空间「配准」,就无从定义 $C$。GW 只要求一个更弱的假设:两个矩阵 $D\in\mathbb{R}^{n\times n}$、$D'\in\mathbb{R}^{m\times m}$ 分别刻画各自内部点与点之间的相似关系,典型情形是(某次幂的)距离矩阵。
读法:若 $i$ 配给 $j$、$i'$ 配给 $j'$(质量分别为 $P_{ij},P_{i'j'}$),那么 $i,i'$ 之间的距离应当接近 $j,j'$ 之间的距离;$\mathcal{E}$ 把所有这样「成对的失真」按质量加权求和。它就是 GH 问题 (10.24) 把最大值换成求和、把集合耦合换成测度耦合的结果。
这是一个非凸问题,可以写成二次指派问题(QAP,Loiola 等 2007),一般情形下是 NP 难的;对某种特殊代价它等价于图匹配问题(Lyzinski 等 2016)。GW 满足三角不等式,事实上它定义了「带概率分布的度量空间」之间的一个距离(在相差一个保测度等距变换的意义下)——这是 Mémoli(2011)引入并详细研究的;Sturm(2012)给出了深入的数学阐述(特别是测地结构与梯度流);在计算机视觉中的应用见 Schmitzer–Schnörr(2013)。它与用于形状匹配的 GH 距离紧密相关(Mémoli 2007;Bronstein 等 2010)。
一般设定是在两个度量测度空间(metric measure spaces) $(\mathcal{X},d_{\mathcal{X}},\alpha_{\mathcal{X}})$、$(\mathcal{Y},d_{\mathcal{Y}},\alpha_{\mathcal{Y}})$ 之间求耦合:
$\mathcal{GW}$ 是度量测度空间之间的距离(相差等距同构):称两者等距同构,如果存在双射 $\varphi:\mathcal{X}\to\mathcal{Y}$,使 $\varphi_\sharp\alpha_{\mathcal{X}}=\alpha_{\mathcal{Y}}$ 且 $d_{\mathcal{Y}}(\varphi(x),\varphi(x'))=d_{\mathcal{X}}(x,x')$。
进阶:GW 空间中的测地线 Rem. 10.8
在等距意义下,所有度量空间构成的空间配上 GW 距离 (10.26) 后具有测地结构。Sturm(2012)证明:$(\mathcal{X}_0,d_{\mathcal{X}_0},\alpha_0)$ 与 $(\mathcal{X}_1,d_{\mathcal{X}_1},\alpha_1)$ 之间的测地线可以取为 $t\in[0,1]\mapsto(\mathcal{X}_0\times\mathcal{X}_1,\,d_t,\,\pi^\star)$,其中 $\pi^\star$ 是 (10.26) 的最优解,
也就是说:中间时刻的「空间」是乘积空间,距离是两边距离的线性插值。这个公式可以用来定义和分析「以度量空间为变量」的泛函的梯度流;但数值上很难处理,因为要在乘积空间 $\mathcal{X}_0\times\mathcal{X}_1$ 上计算。Peyré 等(2016)用一个启发式办法——固定所涉空间的点数,并利用下面的熵平滑 (10.27)——来定义度量测度空间的测地线与重心。
10.6.4 熵正则 Entropic Regularization
为了近似计算 GW,并帮助迭代收敛到更好的极小值,可以考虑熵正则版本
Gold–Rangarajan(1996)、Rangarajan 等(1999)最早提出、Solomon 等(2016)在图形学中重新发扬的做法是:反复调用 Sinkhorn,逐步逼近 (10.27) 的一个驻点。思路是把非凸的目标在当前解处线性化:
这可以解释成一种镜像下降(mirror descent)(Solomon 等 2016);每一步都是一个普通的熵正则 OT,用 Sinkhorn (4.15) 以 $C^{(\ell)}$ 为代价求解即可。
① 初始化 $P^{(0)}=a\otimes b=ab^\top$(独立耦合)。② 对 $\ell=0,1,2,\dots$:算线性化代价 $C^{(\ell)}=-2DP^{(\ell)}D'+$(与 $P$ 无关的项 $c_i+c'_j$);③ 用 Sinkhorn 求 $P^{(\ell+1)}=\mathrm{Sinkhorn}(a,b,C^{(\ell)},\varepsilon)$;④ $P$ 不再变化时停止。每步代价约 $O(n^2m+nm^2)$(两次矩阵乘法)加一次 Sinkhorn。
为什么线性化代价是 −DPD′(推导)
把平方展开:$|D_{ii'}-D'_{jj'}|^2=D_{ii'}^2+D'^2_{jj'}-2D_{ii'}D'_{jj'}$。对 $P\in U(a,b)$,前两项求和后只依赖边缘:$\sum D^2_{ii'}a_ia_{i'}+\sum D'^2_{jj'}b_jb_{j'}$,是常数。所以 $\mathcal{E}(P)=\text{常数}-2\langle DPD',P\rangle$($D,D'$ 对称),梯度是 $-4DPD'$ 再加上形如 $c_i+c'_j$、在 $U(a,b)$ 上不影响最优解的项。常数倍 4 可以并入 $\varepsilon$,这就是 (10.28) 中的 $C^{(\ell)}=-DP^{(\ell)}D'$。本页演示使用完整的张量积代价 $\mathcal{L}(D,D')\otimes P=c_{D,D'}-2DPD'$(Peyré–Cuturi–Solomon 2016),它与 $-2DPD'$ 只差 $c_i+c'_j$,Sinkhorn 解相同,但数值更稳定,而且 $\langle\mathcal{L}\otimes P,P\rangle$ 恰好等于 $\mathcal{E}(P)$。
左边是形状 $\mathcal{X}$(36 个点),右边是同一条曲线换一种采样(30 个点)后得到的 $\mathcal{Y}$。点按沿曲线的位置分段着色,连线把每个 $x_i$ 连到它最主要的对应点 $y_j$(颜色一致 = 对应正确)。拖动 $\mathcal{Y}$ 中心的把手平移,用滑块旋转、缩放 $\mathcal{Y}$,或者镜像它;切换「方法」比较 GW 与直接比较位置的 OT。「迭代 ℓ」滑块回放 (10.28) 的每一步(仿原书图 10.9)。
不管怎么旋转、镜像、平移 $\mathcal{Y}$,GW 的耦合纹丝不动(读数显示 $D'$ 的最大变化只有 $10^{-16}$ 量级,根本不需要重算),热力图始终是一条对角带——颜色一一对上。切换到 OT,耦合随旋转剧烈变化,颜色张冠李戴(注意:平方代价下的 OT 对平移其实是不变的,对旋转和镜像则不然)。把「迭代 ℓ」拖回 0、1、2……可以看到原书图 10.9 的现象:从独立耦合 $a\otimes b$ 出发,先出现模糊的结构,几步之后收缩成一条细带。缩放 $\mathcal{Y}$ 会改变 $D'$、增大 GW 能量,但只要缩放不太离谱,对应关系依然正确。
原书 Fig. 10.10 展示了熵正则 GW 在不同形状(人体、机器人、二维剪影与点云)之间算出的模糊对应(fuzzy correspondences):每个彩色区域在另一个形状上对应到一片区域,而不是一个点——熵正则让对应「软化」,这在形状差异较大时反而更稳健。
把形状 Y 旋转 90° 再镜像一次,GW 耦合和 OT(平方欧氏代价)耦合分别会怎样?
术语卡片 Glossary
点击卡片翻面。这些术语会汇总进全书的中英术语表。
本章小结
- 同一个框架,六种改法。多边缘(更多边缘)、非平衡(软化边缘)、额外约束(缩小可行集)、切片(换成一维投影的平均)、向量/矩阵值(换掉「质量」的类型)、Gromov–Wasserstein(换掉跨空间的代价,只比较内部距离)。
- 多边缘 OT 的耦合是 $S$ 维张量,Sinkhorn (10.2) 照样可用但规模随 $S$ 指数增长;以加权方差 (10.5) 为代价时,它的解经重心映射 $A_\lambda$ 推前后就是 Wasserstein 重心,离散时最多 $\sum_sn_s-S+1$ 个原子。
- 非平衡 OT (10.8) 让质量可以销毁/生成:运输量随距离按 $e^{-d^2/(2\tau)}$ 衰减;$\tau\to\infty$ 回到经典 OT,$\tau\to0$(除以 $\tau$)得 Hellinger;插值不再「拆峰」(Fig. 10.1)。
- 额外约束 (10.10):容量约束把耦合摊开,鞅约束要求条件均值不变;二者都能「熵正则 + Dykstra」求解。
- 切片 Wasserstein (10.13):投影、排序、平均;$O(Kn\log n)$、Hilbert 度量、可造核;拉格朗日 SGD 流给出匹配与切片重心,欧拉做法用 Radon 变换。
- 向量与矩阵:一般只有对偶范数能推广;单位迹正定矩阵像「量子直方图」,Bures 推广 Hellinger、矩阵 KL (10.22) 推广 KL;特征向量的旋转是新的难点。
- Gromov–Wasserstein (10.25):Hausdorff → GH → GW;只用 $D,D'$,对等距变换不变,能跨空间匹配;非凸(QAP),用熵正则 + 迭代 Sinkhorn (10.28) 求局部解。
一张表看清:它们都是 Sinkhorn 的亲戚
| 问题 | 迭代算法 | 每一步在做什么 |
|---|---|---|
| 熵正则 OT(第 4 章) | Sinkhorn (4.15) | 交替缩放行、列,使边缘完全匹配 |
| 多边缘 OT | 多边缘 Sinkhorn (10.2) | 依次缩放 $S$ 个边缘;分母要对其余所有下标求和 |
| 非平衡 OT | 广义 Sinkhorn (10.9) | 缩放后再取幂 $\tau/(\tau+\varepsilon)$:只「部分纠正」边缘 |
| 非平衡重心(Fig. 10.1) | 广义 Sinkhorn(重心版) | 输入侧部分纠正;重心侧取各耦合列边缘的几何平均 (9.20) |
| 容量约束 OT | Dykstra | 行缩放、列缩放、截断 $\min(P,\kappa)$,并保存修正量 |
| 熵正则 GW | 迭代 Sinkhorn (10.28) | 把非凸目标在当前 $P$ 处线性化成代价 $-DPD'$,再解一次熵正则 OT |
自测
本章各节末尾已有 6 道题,这里再补充 6 道综合题。
两个输入(S = 2)、代价取加权方差 (10.5) 的多边缘问题,等价于什么?
KL 惩罚的非平衡 OT 中,两堆质量相距 d,且 d² 远大于 τ。最优的做法是什么?
用 Dykstra 算法求容量约束 OT 时,为什么要为容量约束保存一个「修正量」Q,而不能像 Sinkhorn 那样简单地轮流投影?
在二维中,若 β 是把 α 整体平移向量 v 得到的,SW²(α, β) 等于多少?
关于 Hausdorff 距离 H 与 W∞,下面哪一句正确?
熵正则 GW 的迭代 (10.28) 能保证得到什么?
习题
提示
两边都展开成 $\sum_s\lambda_s\|x_s\|^2-\|\bar x\|^2$。对 (a),注意 $\int\sum_s\lambda_s\|x_s\|^2\,\mathrm{d}\pi$ 只依赖边缘。参考解答
左边 $=\sum_s\lambda_s\|x_s\|^2-2\langle\sum_s\lambda_sx_s,\bar x\rangle+\|\bar x\|^2=\sum_s\lambda_s\|x_s\|^2-\|\bar x\|^2$(用到 $\sum_s\lambda_s=1$)。右边 $=\frac12\sum_{r,s}\lambda_r\lambda_s(\|x_r\|^2+\|x_s\|^2-2\langle x_r,x_s\rangle)=\sum_s\lambda_s\|x_s\|^2-\|\bar x\|^2$。两边相等。
(a) 由上式,$c(x_1,\dots,x_S)=\sum_s\lambda_s\|x_s\|^2-\sum_{r,s}\lambda_r\lambda_s\langle x_r,x_s\rangle$。对任意 $\pi\in\mathcal{U}(\alpha_s)_s$,$\int\sum_s\lambda_s\|x_s\|^2\,\mathrm{d}\pi=\sum_s\lambda_s\int\|x\|^2\mathrm{d}\alpha_s$ 是常数,对角项 $\lambda_s^2\|x_s\|^2$ 同理,所以最小化 $\langle c,\pi\rangle$ 等价于最小化 $-\sum_{r\lt s}\lambda_r\lambda_s\langle x_r,x_s\rangle$(再乘以常数 2),这就是原书的写法。
(b) $S=2$:右边 $=\frac12\cdot2\lambda_1\lambda_2\|x_1-x_2\|^2=\lambda_1\lambda_2\|x_1-x_2\|^2$,所以就是代价为 $\lambda_1\lambda_2\|x_1-x_2\|^2$(与 $\|x_1-x_2\|^2$ 只差常数倍)的普通 OT;重心 $A_{\lambda,\sharp}\pi=(\lambda_1x_1+\lambda_2x_2)_\sharp\pi$ 正是 McCann 插值(Rem. 9.8)。
提示
耦合只有一个数 $p\ge0$。目标 $pd^2+\tau[p\log\frac{p}{m_1}-p+m_1]+\tau[p\log\frac{p}{m_2}-p+m_2]$ 对 $p$ 求导。参考解答
求导:$d^2+\tau\log\frac{p^2}{m_1m_2}=0$,得 $p^\star=\sqrt{m_1m_2}\,e^{-d^2/(2\tau)}$。代回(利用 $\tau p^\star\log\frac{p^{\star2}}{m_1m_2}=-p^\star d^2$):
• $d\to0$:$\mathrm{L}^\tau\to\tau(\sqrt{m_1}-\sqrt{m_2})^2$,即 $\tau$ 乘平方 Hellinger 距离。• $d\to\infty$:$p^\star\to0$,$\mathrm{L}^\tau\to\tau(m_1+m_2)$——全部销毁、全部生成。• $m_1=m_2=m$、$\tau\to\infty$:$e^{-d^2/(2\tau)}\approx1-\frac{d^2}{2\tau}$,$\mathrm{L}^\tau\to md^2$,正是经典 OT 的代价。运输比例 $p^\star/\sqrt{m_1m_2}=e^{-d^2/(2\tau)}$ 说明:质量大约只会被运到 $\sqrt{2\tau}$ 这个距离尺度(演示 2 中的紫色标尺)。
提示
(b) 看指数 $\tau/(\tau+\varepsilon)$ 的极限;再想想不带边缘约束时 $\min_P\langle C,P\rangle-\varepsilon H(P)$ 的解是什么。参考解答
(a) 逐点求导 $\varepsilon\log\frac{s}{Kv}+\tau\log\frac{s}{a}=0$,得 $s=(Kv)^{\frac{\varepsilon}{\varepsilon+\tau}}a^{\frac{\tau}{\varepsilon+\tau}}$,于是 $u=s/(Kv)=(a/Kv)^{\frac{\tau}{\tau+\varepsilon}}$;$v$ 同理。
(b) $\tau\to\infty$:指数 $\to1$,就是经典 Sinkhorn (4.15)(需要总质量相等)。$\tau\to0$:指数 $\to0$,$u=v=\mathbb{1}$,$P=K=e^{-C/\varepsilon}$——这正是无约束问题 $\min_P\langle C,P\rangle-\varepsilon H(P)$ 的解(对 $P$ 求导:$C+\varepsilon\log P=0$)。也就是说,当 $\tau\ll\varepsilon$ 时熵项压倒了边缘惩罚,$P$ 几乎不受 $a,b$ 影响。要得到 Hellinger 极限,需要边缘惩罚压倒熵项($\varepsilon\ll\tau$),同时运输代价又压倒边缘惩罚($\tau\ll$ 相邻点的 $C_{ij}$),此时最优耦合只剩对角部分 $p_i=\sqrt{a_ib_i}$。
提示
边缘约束把 $P$ 限制成 $\begin{bmatrix}p & \frac12-p\\ \frac12-p & p\end{bmatrix}$ 的形式。参考解答
代价 $=2(\frac12-p)=1-2p$,要让 $p$ 尽量大。约束:$p\le\kappa$ 且 $\frac12-p\le\kappa$。可行当且仅当存在 $p\in[\frac12-\kappa,\kappa]$,即 $\kappa\ge\frac14$。
• $\kappa\ge\frac12$:$p=\frac12$,$P=\mathrm{diag}(\frac12,\frac12)$(Monge 映射,恒等),代价 0。• $\frac14\le\kappa\lt\frac12$:$p=\kappa$,$P=\begin{bmatrix}\kappa & \frac12-\kappa\\ \frac12-\kappa & \kappa\end{bmatrix}$,代价 $1-2\kappa$。• $\kappa=\frac14$ 时 $P=\frac14\mathbb{1}\mathbb{1}^\top$ 是独立耦合,代价 $\frac12$。容量越紧,质量越被迫分流到「贵的」格子里——与演示 4 的现象一致。
提示
把 $W_2$ 的最优耦合 $\pi$ 投影到方向 $\theta$,它是两个投影之间的一个耦合。再利用 $\mathbb{E}_\theta[\theta\theta^\top]=I/d$。参考解答
(a) 设 $\pi$ 是 $\alpha,\beta$ 之间的最优 $W_2$ 耦合。$(P_\theta\times P_\theta)_\sharp\pi$ 是 $P_{\theta,\sharp}\alpha$ 与 $P_{\theta,\sharp}\beta$ 之间的一个耦合,所以 $W_2(P_{\theta,\sharp}\alpha,P_{\theta,\sharp}\beta)^2\le\int\langle x-y,\theta\rangle^2\mathrm{d}\pi$。对 $\theta$ 取平均:$\mathbb{E}_\theta\langle v,\theta\rangle^2=v^\top\mathbb{E}[\theta\theta^\top]v=\|v\|^2/d$(由对称性 $\mathbb{E}[\theta\theta^\top]$ 是单位阵的倍数,迹为 1)。于是 $\mathrm{SW}^2\le\frac1d\int\|x-y\|^2\mathrm{d}\pi=\frac1dW_2^2$。
(b) 每个方向上 $W_2^2=\langle x-y,\theta\rangle^2$,平均得 $\mathrm{SW}^2=\|x-y\|^2/d=W_2^2/d$,等号成立。二维时就是演示 5 中验证的 $\mathrm{SW}^2\le W_2^2/2$。
提示
一维时单调(排序)匹配对所有 $p$ 都最优,包括 $p=\infty$。参考解答
$A\to B$ 的最近距离:$0\to0$(0),$1\to1$(0),$1.1\to1$(0.1),最大 0.1;$B\to A$:$0\to0$,$0.1\to0$(0.1),$1\to1$,最大 0.1。所以 $\mathcal{H}=0.1$。
$W_\infty$:排序匹配 $(0,0),(1,0.1),(1.1,1)$,最长边 0.9。其他匹配更差:$A$ 中的 1 和 1.1 不可能都配给 $B$ 中唯一靠近它们的点 1,必有一个要配给 0 或 0.1,距离至少 0.9。所以 $W_\infty=0.9\gg\mathcal{H}=0.1$。差别来自质量守恒:Hausdorff 允许一个点被多个点「共享」,$W_\infty$ 不允许。
提示
(a) 展开 $|D_{ii'}-D'_{jj'}|^2$,利用 $\sum_jP_{ij}=a_i$、$\sum_iP_{ij}=b_j$。(b) 等距变换不改变距离矩阵,试试「恒等匹配」。参考解答
(a) $\sum_{i,j,i',j'}D_{ii'}^2P_{ij}P_{i'j'}=\sum_{i,i'}D_{ii'}^2(\sum_jP_{ij})(\sum_{j'}P_{i'j'})=\sum_{i,i'}D^2_{ii'}a_ia_{i'}$,第二项同理;交叉项 $-2\sum D_{ii'}D'_{jj'}P_{ij}P_{i'j'}=-2\sum_{i,j}P_{ij}(DPD')_{ij}$($D,D'$ 对称)。前两项在 $U(a,b)$ 上是常数,所以在可行集上 $\mathcal{E}$ 的梯度等价于 $-4DPD'$(差一个不影响 Sinkhorn 解的 $c_i+c'_j$ 项),常数因子并入 $\varepsilon$ 即得 $C^{(\ell)}=-DP^{(\ell)}D'$。
(b) 等距变换保持所有两两距离,所以按相同编号有 $D'=D$。取 $P=\mathrm{diag}(a)$(每个点配给自己的像),它属于 $U(a,a)$,且只有 $i=j$、$i'=j'$ 的项非零,此时 $|D_{ii'}-D'_{ii'}|=0$,故 $\mathcal{E}(P)=0$,GW $=0$。这也说明 GW 看不见旋转、平移和反射——演示 9 中 $D'$ 根本不变。
提示
精确 OT 大约 $O(n^3\log n)$;Sinkhorn 每轮是两次 $n\times n$ 矩阵–向量乘法;SW 每个方向是两次排序;GW 每轮要算 $DPD'$。参考解答
(a) $n^3\log n\approx10^{12}\times13$,不可行。(b) 每轮约 $2n^2=2\times10^8$,几百轮后是 $10^{10}$ 量级,还要存 $10^8$ 个核元素。(c) $K\cdot n\log n\approx100\times10^4\times13\approx10^7$,一眨眼。(d) $DPD'$ 是两次 $n\times n$ 稠密矩阵乘法,约 $2n^3=2\times10^{12}$ 每轮——所以 GW 通常只用于几千个点以内,或借助低秩、稀疏等结构加速。
x = 初始点云(n 个点)
重复直到收敛:
G = 零矩阵(n × d)
对 k = 1..K: # K 个随机方向
θ = 单位球面上的随机向量
px = x·θ, py = y·θ # 一维投影
σ = argsort(px), κ = argsort(py)
对 r = 1..n:
i = σ[r]; G[i] += (px[i] − py[κ[r]]) · θ
x = x − 步长 · G / K # 式 (10.15) 的随机梯度一步
若目标是多个 $\beta_s$ 的切片重心 (10.17),只需把 $py[\kappa[r]]$ 换成 $\sum_s\lambda_s\,py_s[\kappa_s[r]]$(各目标第 $r$ 小投影的加权平均)。
中英术语表
汇总各章术语卡片(共 180 条),方便对照英文原书。输入中文或英文即可筛选;点击章号跳到对应小节。
| 中文 | English | 释义 | 章 |
|---|---|---|---|
| 最优传输 | optimal transport (OT | 在所有把一个分布“搬成”另一个分布的方案中,找总代价最小的那个;这个最小代价本身可以当作分布之间的距离。 | 1 |
| 地面代价 | ground cost | $c(x,y)$:把单位质量从位置 $x$ 搬到 $y$ 的“局部”代价,由底层(地面)空间的几何决定,例如 $|x-y|^2$。 | 1 |
| 运输方案 / 耦合 | transport plan / coupling | 矩阵 $\mathbf{P}$,$\mathbf{P}_{i,j}$ 是从源 $i$ 搬到目标 $j$ 的质量;行和 = $\mathbf{a}$,列和 = $\mathbf{b}$,允许一处的质量拆分到多处。 | 1 |
| 直方图 / 概率向量 | histogram / probability vector | 非负且总和为 1 的向量 $\mathbf{a}\in\Sigma_n$;本书正文的主角,只有权重、没有位置。 | 1 |
| 全局代价 | global cost | 一个运输方案的总代价 $\langle\mathbf{C},\mathbf{P}\rangle=\sum_{i,j}\mathbf{C}_{i,j}\mathbf{P}_{i,j}$,即所有“局部代价 × 运量”之和。 | 1 |
| Wasserstein 距离 | Wasserstein distance | 代价取距离的 $p$ 次方时,最优传输代价的 $1/p$ 次方,记作 $\mathrm{W}_p$;它是分布之间的一种真正的距离(第 2 章证明)。 | 1 |
| 推土机距离 | earth mover's distance (EMD | 计算机视觉里对最优传输距离的称呼:把两个直方图看成两堆土,比较“把一堆推成另一堆”的最小代价。 | 1 |
| 位移插值 | displacement interpolation | 沿最优方案把质量“搬”到半路得到的中间分布(又称 McCann 插值);与逐格平均的线性混合不同,它会让峰滑动而不是淡入淡出。 | 1 |
| 重心 | barycenter | 若干分布按权重 $\lambda\in\Sigma_S$ 的“加权平均”;用 OT 几何定义的叫 Wasserstein 重心,两个分布的重心就是位移插值。 | 1 |
| 概率单纯形 | probability simplex | $\Sigma_n=\{\mathbf{a}\in\mathbb{R}^n_+:\sum_i\mathbf{a}_i=1\}$,所有 $n$ 格直方图组成的集合;$n=3$ 时是一个三角形。 | 1 |
| 离散测度 | discrete measure | $\alpha=\sum_i\mathbf{a}_i\delta_{x_i}$:权重 $\mathbf{a}_i$ 放在位置 $x_i$ 上;比直方图多了“位置”这个自由度。 | 1 |
| Dirac 质量 | Dirac mass | $\delta_x$:全部质量集中在一点 $x$ 的测度,直观上是“无限集中在 $x$ 处的一单位质量”。 | 1 |
| 耦合测度 | coupling measure | $\pi$:$\mathcal{X}\times\mathcal{Y}$ 上的测度,两个边缘分别是 $\alpha$ 和 $\beta$;离散时就是耦合矩阵 $\mathbf{P}$。 | 1 |
| Monge 映射 | Monge map | $T:\mathcal{X}\to\mathcal{Y}$,把 $x$ 处的全部质量整块送到 $T(x)$(不拆分),并要求 $T_\sharp\alpha=\beta$。 | 1 |
| 推前测度 | push-forward measure | $T_\sharp\alpha$:把 $\alpha$ 的每一份质量从 $x$ 挪到 $T(x)$ 之后得到的新测度。 | 1 |
| 对偶势 | dual potentials | $(\mathbf{f},\mathbf{g})$:对偶问题的变量,满足 $\mathbf{f}_i+\mathbf{g}_j\le\mathbf{C}_{i,j}$;可理解为源处与目标处的“价格”。 | 1 |
| Gibbs 核 | Gibbs kernel | $\mathbf{K}=e^{-\mathbf{C}/\varepsilon}$(逐元素取指数);熵正则化 OT 的解形如 $\operatorname{diag}(\mathbf{u})\mathbf{K}\operatorname{diag}(\mathbf{v})$。 | 1 |
| Frobenius 内积 | Frobenius dot-product | $\langle A,B\rangle=\operatorname{tr}(A^\top B)=\sum_{i,j}A_{i,j}B_{i,j}$:同尺寸矩阵对应元素相乘再求和。 | 1 |
| 概率单纯形 | probability simplex Σₙ | 所有 $n$ 维非负、和为 1 的向量(直方图)组成的集合;$n=3$ 时是一个三角形。 | 2 |
| 离散测度 | discrete measure | $\alpha=\sum_i a_i\delta_{x_i}$:在位置 $x_i$ 放质量 $a_i$,即「带位置的直方图」。 | 2 |
| Dirac 质量 | Dirac mass δₓ | 集中在一点 $x$ 的单位质量;对函数积分就是取值:$\int f\,\mathrm{d}\delta_x=f(x)$。 | 2 |
| 指派问题 | assignment problem | 在 $n!$ 个排列 $\sigma$ 中找平均代价 $\frac1n\sum_i C_{i,\sigma(i)}$ 最小的一个 (2.2)。 | 2 |
| Monge 映射 | Monge map | 满足质量守恒 $T_\sharp\alpha=\beta$ 的映射:每个源点整体送往一个目标点;可能不存在。 | 2 |
| 推前 | push-forward T♯α | 让每个质点跟着 $T$ 搬家、质量不变得到的新测度:$T_\sharp\alpha=\sum_i a_i\delta_{T(x_i)}$。 | 2 |
| 耦合矩阵 | coupling matrix P | $P_{i,j}$ = 从 $i$ 运到 $j$ 的质量;行和为 $a$、列和为 $b$,即一张以 $a,b$ 为边缘的联合概率表。 | 2 |
| 运输多面体 | transportation polytope U(a,b | 全部可行耦合组成的凸多面体 (2.10);有界、非空(含 $ab^\top$)。 | 2 |
| Kantorovich 问题 | Kantorovich problem L_C(a,b | $\min_{P\in U(a,b)}\langle C,P\rangle$:允许质量拆分的线性规划 (2.11)。 | 2 |
| Birkhoff 多面体 | Birkhoff polytope | $U(\mathbb{1}_n/n,\mathbb{1}_n/n)$;它的顶点恰好是全部(缩放的)置换矩阵(Birkhoff 定理)。 | 2 |
| 地面距离 | ground metric | 柱(或点)之间的距离 $D$;OT 把它提升为直方图之间的距离 $\mathrm{W}_p$。 | 2 |
| Wasserstein 距离 | Wasserstein distance W_p | $\mathrm{W}_p(a,b)=\mathrm{L}_{D^p}(a,b)^{1/p}$,当 $D$ 是距离、$p\ge1$ 时为 $\Sigma_n$ 上的距离 (2.17)。 | 2 |
| 粘合 | gluing | 把 $a\to b$ 与 $b\to c$ 的耦合在中转站 $b$ 处接起来:$S=P\,\mathrm{diag}(1/\tilde b)\,Q\in U(a,c)$,用于证明三角不等式。 | 2 |
| 弱收敛 | weak convergence | $\int g\,\mathrm{d}\alpha_k\to\int g\,\mathrm{d}\alpha$ 对所有连续 $g$ 成立;等价于 $\mathcal{W}_p(\alpha_k,\alpha)\to0$。 | 2 |
| Kantorovich 势 | Kantorovich potentials | 对偶变量 $f,g$:可理解为取货价与送货价,须满足 $f_i+g_j\le C_{i,j}$。 | 2 |
| 对偶问题 | dual problem | $\max\{\langle f,a\rangle+\langle g,b\rangle : f_i+g_j\le C_{i,j}\}$,最优值等于 $\mathrm{L}_C(a,b)$ (2.20)。 | 2 |
| 互补松弛 | complementary slackness | 最优方案只使用「紧」路线:$P_{i,j}\gt0\Rightarrow f_i+g_j=C_{i,j}$ (2.23)。 | 2 |
| Brenier 映射 | Brenier map | $\mathcal{W}_2$ 下(源有密度)的最优映射 $T=\nabla\varphi$,$\varphi$ 凸;此时最优耦合不拆分质量。 | 2 |
| 总变差 | total variation | 0-1 代价下的 OT 值;对直方图等于 $\tfrac12\|a-b\|_1$,不含任何「距离远近」的信息。 | 2 |
| 分位数函数 | quantile function | 累积分布函数的伪逆 $\mathcal{C}_\alpha^{-1}(r)$:累积到比例 $r$ 时所在的位置 (2.35)。 | 2 |
| 单调重排 | monotone rearrangement | 一维最优映射 $T=\mathcal{C}_\beta^{-1}\circ\mathcal{C}_\alpha$:同一分位配对,连线不交叉 (2.39)。 | 2 |
| 位移插值 | displacement interpolation | 让每份质量沿最优配对从 $x$ 匀速走到 $T(x)$ 得到的中间分布;与线性混合 $(1-t)\alpha+t\beta$ 不同。 | 2 |
| Bures 距离 | Bures metric | $\mathcal{B}^2=\mathrm{tr}(\Sigma_\alpha+\Sigma_\beta-2(\Sigma_\alpha^{1/2}\Sigma_\beta\Sigma_\alpha^{1/2})^{1/2})$;高斯之间 $\mathcal{W}_2^2=\|\Delta m\|^2+\mathcal{B}^2$。 | 2 |
| 标准形线性规划 | standard form LP | $\min c^\top p$ s.t. $Ap=q$,$p\ge 0$。OT 中 $p$ 是拉直的 $P$,$q=(a,b)$。 | 3 |
| 约束矩阵 | constraint matrix A | $(n+m)\times nm$ 的 0/1 矩阵,每列恰有两个 1;即完全二部图的关联矩阵,秩 $n+m-1$。 | 3 |
| 弱对偶 / 强对偶 | weak / strong duality | 任何可行 $(f,g)$ 的 $\langle f,a\rangle+\langle g,b\rangle$ 都 $\le$ 任何可行 $P$ 的 $\langle C,P\rangle$;两者的最优值相等。 | 3 |
| C-变换 | C-transform | $(f^C)_j=\min_i C_{ij}-f_i$:与 $f$ 搭配的逐分量最大的可行 $g$。 | 3 |
| 互补松弛 | complementary slackness | 最优时 $P_{ij}(C_{ij}-f_i-g_j)=0$:有质量的格子上报价恰好等于运费。 | 3 |
| 运输多面体 | transportation polytope | 可行集 $\mathrm U(a,b)$,有界凸多面体,维数 $(n-1)(m-1)$。 | 3 |
| 顶点(极点 | vertex / extremal point | 不能写成两个不同可行点的中点;对 $\mathrm U(a,b)$ 等价于支撑图无环。 | 3 |
| 支撑图 | support graph G(P | 二部图中只保留 $P_{ij}\gt 0$ 的边;顶点的支撑图是树或森林。 | 3 |
| 西北角法则 | north-west corner rule | 从左上角起能填多少填多少,行用完下移、列填满右移;至多 $n+m$ 步得到一个顶点。 | 3 |
| 约化代价 | reduced cost | $r_{ij}=C_{ij}-f_i-g_j$:新开路线 $i\to j'$ 并沿环调整时,每单位的净成本变化。 | 3 |
| 入基边 / 出基边 | entering / leaving edge | 约化代价为负、被加入 $G$ 的边;沿环推 $\theta$ 后流量降为 0、被删除的 − 边。 | 3 |
| 退化更新 | degenerate update | 图 $G$ 改变而 $P$ 不变:加边不成环(连接两棵树),或 $\theta=0$ 的换基。 | 3 |
| 平衡边 | balanced edge | 对偶可行时满足 $f_i+g_j=C_{ij}$ 的边;对偶上升只允许在平衡边上运输。 | 3 |
| 标号算法 | labeling algorithm | 从源点出发沿残量网络能到达的节点;最大流时给出集合 $S,S'$,且 $a(S)\gt b(S')$。 | 3 |
| 原始—对偶法 | primal-dual method | 对偶上升的经典版本:方向 $(\mathbf 1_S,-\mathbf 1_{S'})$ 来自标号,步长取最大可行值;指派问题上即匈牙利算法。 | 3 |
| ε-互补松弛 | ε-complementary slackness | $C_{i\xi_i}-g_{\xi_i}\le\varepsilon+\min_j (C_{ij}-g_j)$:每个人离最满意至多差 $\varepsilon$。 | 3 |
| 拍卖算法 | auction algorithm | 未分配者对最想要的物品加价「次好 − 最好 + ε」并挤走原主人;结果至多差 $n\varepsilon$。 | 3 |
| ε-scaling | 由大到小逐步缩小 ε 并沿用上一阶段的价格,避免小 ε 下漫长的价格战。 | 3 | |
| 熵正则化 | entropic regularization | 在 OT 目标上减去 $\varepsilon H(P)$,得到严格凸、解唯一且处处为正的问题 (4.2)。 | 4 |
| Gibbs 核 | Gibbs kernel | $K_{ij}=e^{-C_{ij}/\varepsilon}$。熵正则解就是 $K$ 在 $U(a,b)$ 上的 KL 投影 (4.7)。 | 4 |
| 独立耦合 | tensor product coupling | $a\otimes b=ab^\top$:熵最大的耦合,也是 $\varepsilon\to\infty$ 的极限 (4.4)。 | 4 |
| 互信息 | mutual information | $I(X,Y)=\mathrm{KL}(\pi|\alpha\otimes\beta)\ge0$,为 0 当且仅当独立(Rem. 4.3)。 | 4 |
| 矩阵缩放 | matrix scaling | 求正向量 $u,v$ 使 $\operatorname{diag}(u)K\operatorname{diag}(v)$ 有给定的行和 $a$、列和 $b$ (4.14)。 | 4 |
| Sinkhorn 算法 | Sinkhorn's algorithm | 交替 $u\leftarrow a/(Kv)$、$v\leftarrow b/(K^\top u)$ (4.15);又称 IPFP、RAS。 | 4 |
| 迭代比例拟合 | iterative proportional fitting (IPFP | 统计学中 Sinkhorn 迭代的名字(Deming–Stephan 1940):交替按比例调整行与列。 | 4 |
| Hilbert 射影度量 | Hilbert projective metric | $d_{\mathcal H}(u,u')=\|\log u-\log u'\|_{\mathrm{var}}$:比较射线而非向量;正矩阵在它下面是压缩映射 (Thm. 4.1)。 | 4 |
| 重心投影 | barycentric projection | $T(x_i)=\frac1{a_i}\sum_jP_{ij}y_j$:把耦合变成映射 (4.19)。 | 4 |
| 可分离核 | separable kernel | $K_{ij}=\prod_kK^k_{i_kj_k}$ (4.27):网格上沿各轴做一维卷积,复杂度 $O(n^{1+1/d})$。 | 4 |
| 软最小值 | soft-minimum | $\min_\varepsilon z=-\varepsilon\log\sum_ie^{-z_i/\varepsilon}$ (4.37):min 的可微近似,$\varepsilon\to0$ 时趋于 min。 | 4 |
| 对数域计算 | log-domain computation | 改存 $f=\varepsilon\log u$、$g=\varepsilon\log v$,用 log-sum-exp 稳定地更新 (4.43–4.44),对任意 ε 不溢出。 | 4 |
| 块坐标上升 | block coordinate ascent | 交替地在一组变量上精确最大化对偶 (4.30);Sinkhorn 的每半步正是如此 (Rem. 4.21)。 | 4 |
| Sinkhorn 散度 | Sinkhorn divergence | 原始 $\mathfrak P^\varepsilon=\langle C,P^\star\rangle$(上界)与对偶 $\mathfrak D^\varepsilon=\langle f^\star,a\rangle+\langle g^\star,b\rangle$(下界),夹住 $\mathrm L_C$ (Def. 4.1)。 | 4 |
| 熵偏差 | entropic bias | $\mathfrak P^\varepsilon(a,a)\gt0$:正则化代价在 $a=b$ 时不为 0;§8.5 用 $2\mathfrak P(a,b)-\mathfrak P(a,a)-\mathfrak P(b,b)$ 去偏。 | 4 |
| 广义 Sinkhorn | generalized Sinkhorn | 把 $u\leftarrow a/(Kv)$ 换成 $u\leftarrow\operatorname{Prox}^{\mathrm{KL}}_F(Kv)/(Kv)$,求解 (4.49) 这一大类问题 (4.51)。 | 4 |
| 非平衡最优传输 | unbalanced optimal transport | 用 $\lambda\,\mathrm{KL}(P\mathbb 1|a)$ 等软惩罚代替硬边缘约束,质量可以产生或消失;迭代为 $u=(a/Kv)^{\lambda/(\lambda+\varepsilon)}$。 | 4 |
| KL 邻近算子 | KL proximal operator | $\operatorname{Prox}^{\mathrm{KL}}_F(s)=\operatorname*{argmin}_{s'}\mathrm{KL}(s'|s)+F(s')$ (4.52)。 | 4 |
| 半离散最优传输 | semidiscrete optimal transport | 一边连续(有密度)、一边离散的 OT;最优映射把空间切成 m 块,每块整体送到一个点。 | 5 |
| c-变换 | c-transform | $f^c(y)=\inf_x c(x,y)-f(x)$:固定 f 时 g 的最优选择;一排碗的下包络。 | 5 |
| c̄-变换 | c̄-transform | $g^{\bar c}(x)=\inf_y c(x,y)-g(y)$,即把代价的两个参数对调后的 c-变换。 | 5 |
| c-凹函数 | c-concave function | 能写成 $f^c$ 形式的函数;$c=\langle x,y\rangle$ 时就是通常的凹函数。 | 5 |
| 下确界卷积 / Hopf–Lax 公式 | inf-convolution / Hopf–Lax formula | $c=\|x-y\|^p$ 时,$f^c$ 是 $-f$ 与 $\|\cdot\|^p$ 的下确界卷积。 | 5 |
| Laguerre 单元 | Laguerre cell | $\mathbb L_j(\mathbf g)$:使 $c(x,y_j)-\mathbf g_j$ 最小的点 x 的集合;带权重的 Voronoi 单元。 | 5 |
| Voronoi 图 | Voronoi diagram | 每个点归属于最近的站点;权重全相等时的 Laguerre 剖分。 | 5 |
| 幂图 | power diagram | $c=\|x-y\|^2$ 时的 Laguerre 剖分;单元是凸多面体,可由抬升点 $(y_j,\|y_j\|^2-\mathbf g_j)$ 的凸包求出。 | 5 |
| 软最小 | soft-min | $\min_\varepsilon z=-\varepsilon\log\sum_i e^{-z_i/\varepsilon}$;$\varepsilon\to0$ 时趋于 min。 | 5 |
| 单位分解 | partition of unity | 一族非负函数,处处相加等于 1;软分配 $\chi^\varepsilon_j$ 就是一例。 | 5 |
| 多类 logistic 回归 | multiclass logistic regression | 类别概率 = softmax(仿射打分);$c=\|x-y\|^2$ 时软分配恰好是这种形式。 | 5 |
| 阻尼牛顿法 | damped Newton method | 牛顿方向 + 回溯缩短步长(保证单元不消失、误差下降);ε = 0 时线性收敛。 | 5 |
| 随机梯度法 SGD | stochastic gradient descent | 每步用一个样本的梯度更新;步长 $\tau_0/(1+\ell/\ell_0)$ 衰减以压住噪声。 | 5 |
| 带平均的随机梯度 SGA | SGD with averaging | 步长按 $\ell^{-1/2}$ 慢衰减,输出所有迭代的平均;自适应局部强凹性,通常更快。 | 5 |
| W₁ 距离 / 地球移动距离 | Wasserstein-1 distance / earth mover's distance | 以距离本身为代价的最优传输值:$\mathcal{W}_1(\alpha,\beta)=\min_\pi\int d(x,y)\,\mathrm{d}\pi$。 | 6 |
| 地面代价 / 地面距离 | ground cost / ground metric | 两点之间搬运一单位质量的代价 $c(x,y)$;本章取 $c=d$。 | 6 |
| Lipschitz 常数 | Lipschitz constant | $\operatorname{Lip}(f)=\sup|f(x)-f(y)|/d(x,y)$:函数的最大坡度。 | 6 |
| c-变换 | c-transform | $f^c(y)=\inf_x c(x,y)-f(x)$;$c=d$ 时结果恰是 1-Lipschitz 函数,且 $f^c=-f$(命题 6.1)。 | 6 |
| Kantorovich–Rubinstein 对偶 | Kantorovich–Rubinstein duality | $\mathcal{W}_1(\alpha,\beta)=\max\{\int f\,\mathrm{d}(\alpha-\beta):\operatorname{Lip}(f)\le1\}$ (6.1)。 | 6 |
| Kantorovich–Rubinstein 范数 | Kantorovich–Rubinstein norm | $\|\alpha-\beta\|_{\mathcal{W}_1}$:对总质量为 0 的带符号测度定义的范数,等于 $\mathcal{W}_1(\alpha,\beta)$。 | 6 |
| 带符号测度 | signed measure | 质量可正可负的测度,例如差 $\alpha-\beta$;W₁ 范数只要求其总质量为 0。 | 6 |
| Beckmann 形式 | Beckmann formulation | $\mathcal{W}_1=\min\{\int\|s\|:\operatorname{div}(s)=\alpha-\beta\}$ (6.4):用流场描述搬运;图上即 (6.6)。 | 6 |
| 散度 | divergence | 一点的净流出;图上 $\operatorname{div}(\mathbf{s})_i=\sum_j(\mathbf{s}_{i,j}-\mathbf{s}_{j,i})$,是梯度的伴随。 | 6 |
| 测地距离(最短路距离 | geodesic distance / shortest path metric | 图上两点之间最短路径的总长度 $\mathbf{D}_{i,j}$。 | 6 |
| 最小费用流 | min-cost flow | 满足各点供需($\operatorname{div}\mathbf{s}=\mathbf{a}-\mathbf{b}$)且 $\sum\mathbf{w}\mathbf{s}$ 最小的非负网络流 (6.6)。 | 6 |
| 互补松弛 | complementary slackness | 最优时 $\mathbf{s}_{i,j}\gt0\Rightarrow\mathbf{f}_i-\mathbf{f}_j=\mathbf{w}_{i,j}$:流只走绷紧的边。 | 6 |
| p-Hölder 函数 | p-Hölder function | 满足 $|f(x)-f(y)|\le d(x,y)^p$ 的函数;它们给出 $0\lt p\le1$ 时 $\mathcal{W}_p$ 的对偶(注记 6.1)。 | 6 |
| 对偶范数 | dual norm | $\|\alpha\|_B=\max_{f\in B}\int f\,\mathrm{d}\alpha$(§8.2);$B=\{\operatorname{Lip}\le1\}$ 时就是 W₁。 | 6 |
| 动态形式 | dynamic (geodesic) formulation | 把 OT 写成测度空间中连接 $\alpha_0,\alpha_1$ 的一条「最短路径」:质量随时间流动,代价是总动能。 | 7 |
| 连续性方程 | continuity equation | $\partial_t\alpha_t+\operatorname{div}(\alpha_tv_t)=0$:质量守恒,某处质量的变化 = 流入 − 流出。 | 7 |
| 动量 / 通量 | momentum / flux | $J_t=\alpha_tv_t$,单位时间流过的质量。用 $(\alpha,J)$ 作变量后问题变成凸的。 | 7 |
| Benamou–Brenier 公式 | Benamou–Brenier formula | $\mathcal W_2^2=\min\int_0^1\!\int\|v_t\|^2\mathrm d\alpha_t\mathrm dt$,最小取遍所有满足连续性方程的流动 (7.2)。 | 7 |
| 位移插值 | displacement (McCann) interpolation | $\alpha_t=((1-t)\mathrm{Id}+tT)_\sharp\alpha_0$:每个点沿最优映射匀速直线移动;是 (7.2) 的最优路径。 | 7 |
| 交错网格 | staggered grid | 密度放在时间半格点、通量放在格子边上,使 $\partial_t\mathbf a$ 与 $\operatorname{div}\mathbf J$ 落在同一组格点,离散质量守恒精确成立。 | 7 |
| 近端算子 | proximal operator | $\operatorname{Prox}_{\tau F}(x)=\operatorname{argmin}_{x'}\frac12\|x-x'\|^2+\tau F(x')$;$F$ 为指示函数时就是投影。 | 7 |
| Douglas–Rachford 分裂 | Douglas–Rachford splitting | 求解 $\min F+G$:反射 $2x-w$ → 用 $F$ 的 prox → 更新 $w$ → 用 $G$ 的 prox;$0\lt\alpha\lt2$ 时收敛 (7.14)。 | 7 |
| 旋转洛伦兹锥 | rotated Lorentz cone | $\{(z,a,J):\|J\|^2\le za,\ a\ge0\}$;$\theta\le z$ 等价于落在其中,因此 (7.11) 是二阶锥规划。 | 7 |
| 非平衡最优传输 | unbalanced optimal transport | 允许总质量不同、质量可局部增减的 OT;动态形式中在连续性方程里加源项 $s$。 | 7 |
| WFR 距离 | Wasserstein–Fisher–Rao distance | $\min\int\!\!\int\theta(\alpha,J)+\tau\,\theta(\alpha,s)$,约束 $\partial_t\alpha+\operatorname{div}J=s$ (7.15);$\tau$ 权衡搬运与生灭。 | 7 |
| Hellinger 距离 | Hellinger metric | $\int|\sqrt{\rho_0}-\sqrt{\rho_1}|^2$:只允许原地生灭时的距离,对应 $\sqrt{\rho_t}$ 线性插值。 | 7 |
| 迁移率 | mobility functional | $\theta(a,b)=a^{s-p}\|b\|^p$ (7.16):在密度 $a$ 处推动通量 $b$ 的代价;$s=1$ 得 $\mathcal W_p$,$s=p$ 得 $W^{-1,p}$。 | 7 |
| 路径空间 | space of paths | 所有曲线 $\gamma:[0,1]\to\mathcal X$ 的集合 $\bar{\mathcal X}$;其上的概率分布 $\bar\pi$ 描述每个粒子的完整轨迹。 | 7 |
| 薛定谔问题 / 薛定谔桥 | Schrödinger problem / bridge | $\min\mathrm{KL}(\bar\pi|\bar{\mathcal K})$,端点分布为 $\alpha_0,\alpha_1$ (7.19);其解是布朗桥的混合,是熵正则 OT 的动态版本。 | 7 |
| 布朗桥 | Brownian bridge | 两端固定在 $x,y$ 的布朗运动;时刻 $t$ 的分布是均值 $(1-t)x+ty$、方差 $t(1-t)\varepsilon^2$ 的高斯。 | 7 |
| 熵插值 | entropic interpolation | $\alpha_{\varepsilon,t}=P_{t\sharp}\bar\pi^\star_\varepsilon$:移动的 Dirac 各自被 $\mathcal G_{t(1-t)\varepsilon^2}$ 模糊后的叠加;$\varepsilon\to0$ 时趋于位移插值。 | 7 |
| φ-散度 | φ-divergence (f-divergence | $\sum_i\varphi(a_i/b_i)\,b_i+\varphi'_\infty\sum_{b_i=0}a_i$:逐点比较质量比,不用地面距离。 | 8 |
| 熵函数 | entropy function | 下半连续、凸、定义域在 [0, ∞) 内的 φ,用来给比值 dα/dβ 打分。 | 8 |
| 超线性 | superlinear | $\varphi'_\infty=\lim\varphi(x)/x=\infty$(如 KL、χ²):α 在 β 支撑外有质量时散度为 +∞。 | 8 |
| 全变差 | total variation | $\|\alpha-\beta\|_{\mathrm{TV}}=\int\mathrm{d}|\alpha-\beta|$,离散时 $\sum_i|a_i-b_i|$;既是 φ-散度又是对偶范数。 | 8 |
| Hellinger 距离 | Hellinger distance | $\mathfrak{h}(\alpha,\beta)=\|\sqrt{\mathbf{a}}-\sqrt{\mathbf{b}}\|_2$,度量强拓扑。 | 8 |
| Jensen–Shannon 距离 | Jensen–Shannon distance | $\mathrm{JS}^2=\tfrac12\mathrm{KL}(\alpha|\xi)+\tfrac12\mathrm{KL}(\beta|\xi)$,$\xi=\tfrac{\alpha+\beta}{2}$;有界:$\mathrm{JS}^2\le\log 2$。 | 8 |
| Bregman 散度 | Bregman divergence | $\psi(a)-\psi(b)-\langle\nabla\psi(b),a-b\rangle$;KL 是负熵的 Bregman 散度。 | 8 |
| 积分概率度量 | integral probability metric (dual norm | $\|\alpha-\beta\|_B=\max_{f\in B}\int f\,\mathrm{d}(\alpha-\beta)$,B 为测试函数族。 | 8 |
| 平坦范数 | flat norm | B = {Lip(f) ≤ 1 且 |f| ≤ 1};质量相同时等于代价 $\min(d,2)$ 的 OT。 | 8 |
| 最大均值差异 | maximum mean discrepancy (MMD | $\|\alpha-\beta\|_k^2=\mathbb{E}k(X,X')+\mathbb{E}k(Y,Y')-2\mathbb{E}k(X,Y)$,RKHS 单位球的对偶范数。 | 8 |
| 泛核 | universal kernel | 核函数的线性组合在 $\mathcal{C}(\mathcal{X})$ 中稠密;平移不变核等价于 $\hat k_0(\omega)\gt 0$。此时 MMD 度量弱收敛。 | 8 |
| 能量距离 | energy distance | 核 $-\|x-y\|^p$(0 < p < 2)的 MMD;无尺度,放大 s 倍时乘以 $s^{p/2}$。 | 8 |
| Hilbert 距离 | Hilbertian distance | 存在 φ 使 $d(z,z')=\|\phi(z)-\phi(z')\|_{\mathcal{H}}$;等价于 $d^2$ 负定。 | 8 |
| 样本复杂度 | sample complexity | $D(\hat\alpha_n,\hat\beta_n)\to D(\alpha,\beta)$ 的速率:OT 约 $n^{-1/d}$,MMD 约 $n^{-1/2}$。 | 8 |
| 核密度估计 | kernel density estimation | $\hat\alpha_n\star h_\sigma=\frac1n\sum_i h_\sigma(\cdot-x_i)$;估计 φ-散度前的必要平滑。 | 8 |
| 去偏 Sinkhorn 散度 | corrected regularized divergence | $2\mathcal{W}_{p,\varepsilon}(\alpha,\beta)^p-\mathcal{W}_{p,\varepsilon}(\alpha,\alpha)^p-\mathcal{W}_{p,\varepsilon}(\beta,\beta)^p$,介于 OT 与 MMD 之间。 | 8 |
| Wasserstein 损失 | Wasserstein loss | 把 OT 距离 $\mathcal{L}_c(\alpha_\theta,\beta)$ 当作拟合误差来最小化;它懂几何,不重叠的分布之间也有有意义的梯度。 | 9 |
| 欧拉离散 | Eulerian discretization | 位置固定(网格),只优化各位置上的权重 $a(\theta)$;梯度来自对偶势 $f$。 | 9 |
| 拉格朗日离散 | Lagrangian discretization | 权重固定(如 $1/n$),优化粒子的位置 $x(\theta)$;梯度来自最优耦合 $P$。 | 9 |
| 重心投影 | barycentric projection | $T(x_i)=\frac1{a_i}\sum_jP_{ij}y_j$:$x_i$ 送出质量的平均落点;平方代价下负梯度指向它。 | 9 |
| 反向自动微分 | reverse-mode automatic differentiation | 沿计算图倒着应用链式法则;对 $L$ 步 Sinkhorn 求导的代价与前向同阶,但内存随 $L$ 增长。 | 9 |
| Fréchet 均值 | Fréchet mean | 度量空间中使 $\sum_s\lambda_sd(x,x_s)^p$ 最小的点 (9.9);欧氏空间 $p=2$ 时就是加权平均。 | 9 |
| Wasserstein 重心 | Wasserstein barycenter | 使 $\sum_s\lambda_s\mathrm{L}_{C_s}(a,b_s)$ 最小的分布 (9.10):平移、变形到中间,而不是叠加。 | 9 |
| McCann 插值 | McCann interpolant | 两个测度的重心 $(\lambda_1\mathrm{Id}+\lambda_2T)_\sharp\alpha_0$:沿最优传输路线走到 $\lambda$ 处。 | 9 |
| Bures 度量 | Bures metric | 协方差矩阵之间的距离;高斯之间的 $W_2$ = 均值的欧氏距离 ⊕ 协方差的 Bures 距离。 | 9 |
| 迭代 Bregman 投影 | iterative Bregman projections | 重心的熵正则算法 (9.18)–(9.20):交替做 KL 投影,公共边缘取几何平均。 | 9 |
| k-means | k-means clustering | 支撑点至多 $k$ 个的 Wasserstein 重心问题 (9.12):质心 = 支撑,权重 = 簇的比例。 | 9 |
| Wasserstein 传播 | Wasserstein propagation | 图上部分节点分布已知,最小化所有边上的 OT 代价来确定其余节点 (9.23)。 | 9 |
| 近端点算法 | proximal-point algorithm | 隐式梯度步 $\operatorname{argmin}_a\frac12\|a-a^{(\ell)}\|^2+\tau F(a)$ (9.25);对凸 $F$ 任意步长都收敛。 | 9 |
| JKO 格式 | JKO scheme | 把近端项换成 Wasserstein 距离:$\operatorname{argmin}_\alpha W_2^2(\alpha,\alpha^{(\ell)})+\tau F(\alpha)$ (9.27)。 | 9 |
| 一阶变分 | first variation | 函数 $F'(\alpha)$:$F(\alpha+\varepsilon\xi)=F(\alpha)+\varepsilon\int F'(\alpha)\mathrm{d}\xi+o(\varepsilon)$;负熵的一阶变分是 $\log\rho$。 | 9 |
| Wasserstein 梯度流 | Wasserstein gradient flow | $\partial_t\alpha=\mathrm{div}(\alpha\nabla F'(\alpha))$ (9.28):质量守恒,速度 $-\nabla F'(\alpha)$。 | 9 |
| Fokker–Planck 方程 | Fokker–Planck equation | $F=\int V\mathrm{d}\alpha-\kappa H$ 的 Wasserstein 梯度流:漂移 + 扩散,平稳分布 $\propto e^{-V/\kappa}$。 | 9 |
| 测地凸性 | geodesic convexity | 沿位移插值(Wasserstein 测地线)是凸的;保证梯度流存在唯一并收敛。 | 9 |
| 锁定现象 | locking | 网格上 $W_p^p$ 对小的质量移动呈线性增长,步长太小时离散梯度流原地不动。 | 9 |
| 最小 Kantorovich 估计量 | minimum Kantorovich estimator | 用 OT 损失 $\mathcal{L}_c(\alpha_\theta,\beta)$ 代替似然来拟合参数模型 (9.34)。 | 9 |
| 最大似然估计 | maximum likelihood estimator | 最小化 $-\sum_i\log\rho_\theta(x_i)$;是 KL 的经验版本,要求模型有密度。 | 9 |
| 生成模型 | generative model | $\alpha_\theta=h_{\theta\sharp}\zeta$:把低维隐空间的参考分布推前到数据空间;易采样、无密度。 | 9 |
| 推前 | push-forward | $h_\sharp\zeta(A)=\zeta(h^{-1}(A))$:取 $z\sim\zeta$,则 $h(z)\sim h_\sharp\zeta$。 | 9 |
| 地面度量学习 | ground metric learning | 学习 OT 所用的代价 $c(x,y)$,让它刻画数据的几何(Rem. 9.14)。 | 9 |
| 多边缘最优传输 | multimarginal optimal transport | 同时耦合 $S$ 个分布的 OT:耦合是 $S$ 维张量,边缘约束有 $S$ 组 (10.1)。 | 10 |
| 重心映射 | barycentric map | $A_\lambda(x_1,\dots,x_S)=\operatorname{argmin}_x\sum_s\lambda_sc(x,x_s)$;平方欧氏代价时就是加权平均。 | 10 |
| 粘合引理 | gluing lemma | 若干个共享同一个边缘的耦合,总能「粘」成一个高维耦合,使其二维边缘恰好是这些耦合。 | 10 |
| 非平衡最优传输 | unbalanced optimal transport | 用 $\tau\,\mathbf{D}_\varphi$ 惩罚边缘偏差代替硬约束,质量可以被销毁或生成 (10.8)。 | 10 |
| 部分传输 | partial transport | $\mathbf{D}_\varphi$ 取 $\ell^1$ 范数的非平衡 OT:只运输一部分质量,其余按单价付罚款。 | 10 |
| Wasserstein–Fisher–Rao 距离 | Wasserstein–Fisher–Rao / Hellinger–Kantorovich distance | 代价 $-\log\cos(\min(d/\kappa,\pi/2))$ 加 KL 惩罚的非平衡 OT 再开方;质量最远只运 $\pi\kappa/2$。 | 10 |
| 容量约束 | capacity constraint | 要求耦合密度不超过 $\kappa$(离散时 $P_{ij}\le\kappa$),排除集中在 Monge 映射上的耦合 (10.11)。 | 10 |
| 鞅传输 | martingale transport | 耦合的条件均值等于出发点(重心投影是恒等映射),只在凸序下可行 (10.12)。 | 10 |
| Dykstra 算法 | Dykstra's algorithm | 带修正量的交替(KL)投影,可处理非仿射约束;只有仿射约束时退化为 Sinkhorn。 | 10 |
| 切片 Wasserstein 距离 | sliced Wasserstein distance | 所有方向上一维投影之间 $W_2^2$ 的平均再开方 (10.13);每个方向只需排序。 | 10 |
| Radon 变换 | Radon transform | 测度的全部一维投影组成的族 $\mathcal{R}(\alpha)=(P_{\theta,\sharp}\alpha)_\theta$;可用滤波反投影 (10.18) 求逆。 | 10 |
| Hilbert 度量 | Hilbertian metric | 能等距嵌入 Hilbert 空间的度量,可由它造高斯型正定核;SW 是,$d\ge2$ 的 $W_2$ 不是。 | 10 |
| 向量值测度 | vector-valued measure | 每个点带一个向量的测度 $\sum_i\mathbf{a}_i\delta_{x_i}$,积分为 $\sum_i\langle\mathbf{a}_i,g(x_i)\rangle$ (10.21)。 | 10 |
| 量子相对熵 | quantum relative entropy (matrix KL | $\mathbf{KL}(A|B)=\mathrm{tr}(A\log A-A\log B-A+B)$ (10.22),对两个变元都凸。 | 10 |
| Hausdorff 距离 | Hausdorff distance | 两个集合互相「到对方最近点的距离」中最坏的那个(双向取大)。 | 10 |
| Gromov–Hausdorff 距离 | Gromov–Hausdorff distance | 两个度量空间等距嵌入同一空间后能达到的最小 Hausdorff 距离;为 0 当且仅当两者等距。 | 10 |
| Gromov–Wasserstein 距离 | Gromov–Wasserstein distance | $\min_P\sum|D_{ii'}-D'_{jj'}|^2P_{ij}P_{i'j'}$ (10.25):只比较内部距离,对等距变换不变。 | 10 |
| 度量测度空间 | metric measure space | 三元组 $(\mathcal{X},d_{\mathcal{X}},\alpha_{\mathcal{X}})$:度量空间加上其上的概率测度,是 GW 比较的对象。 | 10 |