最优传输系列是基于Computational Optimal Transport开源书的读书笔记
第一章-Introduction
最优传输(Optimal Transport)关键的一点是,要考虑怎样把多个数据点同时从一个空间映射到另一个空间上去,而不是只考虑一个数据点。
这里借用书中一个形象例子:把一堆沙子里的每一铲都对应到一个沙雕上的一铲沙子,怎么搬沙子最省力气,这就是个最优传输问题(注:这里“省力气”等于是cost function,现实中当然有很多不同的cost function来得到不同特点的传输)。
很明显能够看出最优传输和机器学习之间千丝万缕的关系,比如GAN本质上就是从输入的空间映射到生成样本的空间。
这是很短的一章,剩下的主要都是further reading,感兴趣可以去看这些有关文献,在这里就不多解释了。
第二章
2.1
这一节用来介绍之后经常用到的几个数学概念
Histogram: 这里的histogram本质上就是n个和为1的概率,代表一个概率分布
Measure (测度) 这个概念在之后经常用到。所谓测度就是一个函数,把一个集合中的一些子集对应给一个数。这张图把概念说明的很清楚。(注意非连续分布里,weight在一维里是点的高度,二维里是点的大小)
Notation:
α
\alpha
α/
β
\beta
β:measure
a/b:measure中每个元素的weight/probability
x/y:measure中的元素(具体值)
2.2
这里给出了蒙日(Monge)问题的定义:找出从一个 measure到另一个measure的映射,使得所有
c
(
x
i
,
y
j
)
c(x_{i},y_{j})
c(xi,yj)的和最小。当然c是个cost function,根据具体应用定义。
这里的映射一定需要surjective(onto),也就是说
β
\beta
β上每个元素
y
j
y_{j}
yj都至少又一个
x
i
,
T
(
x
i
)
=
y
j
x_{i},T(x_{i})=y_{j}
xi,T(xi)=yj。
接近结尾时,书中介绍了 push-forward operator T # T_{\#} T#,作为一个Radon measure到另一个Radon measure的传输。Radon measure也就是一个空间上所有measure的集合。 T # T_{\#} T#也可以看为是普通map T的延伸:T把一个measure里的一个点映射到另一个measure上,那么 T # T_{\#} T#就把一个空间中的所有measure都映射到另外一个空间里去
2.3 Kantorovich relaxation
Kantorovich relaxation可以说是原本蒙日问题的一个松弛版本
蒙日问题的原本定义中,一个measure中的每个元素都要对应到另一个measure的一个元素上,导致这个定义只能用来分析同等大小的measure (也就是说只能比较和最优化permutation)
同时,蒙日问题的约束条件,
T
#
α
=
β
T_{\#} \alpha = \beta
T#α=β,要求对于measure
α
\alpha
α里的每一个元素,都对应到measure
β
\beta
β里一个质量完全相等的元素上。
这个约束条件并不是线性的,于是蒙日问题很难求解。
于是就有了kantorovich relaxation,将原来的要求松弛,允许每个元素的质量分给目的分布里的多个元素,而不是蒙日问题里的一对一传输
这样我们的约束就变为以下公式:
这个约束不要求measure
α
,
β
\alpha, \beta
α,β里的元素一一对应,只需保证
α
\alpha
α里每个元素的质量完全传走,
β
\beta
β里每个元素也都收到正确的总质量就足够了。
这个简化的约束条件变为线性,相比原本蒙日问题求解难度大幅降低,这也是之后主要都用Kantorovich的重要原因
kantorovich 的传输可以用一个矩阵来表示,
P
i
,
j
P_{i,j}
Pi,j代表
a
i
a_{i}
ai到
b
j
b_{j}
bj的质量传输大小
每个传输仍然需要保证质量守恒(eq. 2.10)
于是eq. 2.11给出了最优传输问题用kantorovich的定义:
这里U是从a到b的所有可能传输P的集合,而P就是当前的传输
C仍然是cost matrix
Remark 2.10是个现实例子,有助于理解
当然原本的蒙日问题是kantorovich的一个特例,也就是说kantorovich是包含原本问题的
结尾时书中提起了Discrete,Semi-discrete,和Continuous三种映射
第五章全部都在讲Semi-discrete,也就是从一个continuous measure映射到discrete measure。(注:现实中很多算法都是用continuous方程来模拟现实中的discrete example)