由于网上各位大佬都做了足够多的介绍,我这里当个缝合怪,顺便说说自己的理解。若有疏漏,请斧正!
什么是Sinkhorn Distance?它是一种optimal transport distance。
什么是optimal transport distances呢?我们不妨说说其中很常见的推土机距离。
什么又是推土机距离呢?那下面就做个简单的介绍。
Wikipedia的对推土机距离的解释是:
In computer science, the earth mover's distance (EMD) is a distance-like measure of dissimilarity between two frequency distributions, densities, or measures over a region D.
简单来说,推土机距离是衡量两个分布之间的距离的一种方法。它的基本思想是将一种分布通过一定的代价转换为另一种分布,计算这个代价就是推土机距离。
对于两个分布$P_r$和$P_\theta$,可以将它们想象成仅堆叠不同的两堆土,怎么样花最低代价将左边的土推成右边的土呢?
你可能了解过度量两个分布的其他距离,如欧氏距离、KL散度、JS散度以及其他更复杂的距离,但是这类距离方式并未考虑两个分布之间的联合分布。而推土机考虑了:
$$ {\operatorname{EMD}(P_r, P_\theta)=\inf {\gamma \in \Pi(P_r, P\theta)} \mathbb{E}_{(x, y) \sim \gamma}[d(x, y)]}\tag{1} $$
其中,$\Pi(P_r, P_\theta)$是所有联合分布的集合,其边缘分布分别为$P_r, P_\theta$。
求解这样的式子,得到联合分布$\gamma^*$,也就是最终的推土方案:
推土方案示例:左边某些区域的土可能还需要推到右边对应区域的附近区域上。
介绍完推土机距离后,回到optimal transport distances上。
假设有这样的交通运输场景⁵:有$N$个仓库,$M$个工厂,我们需要将某种物品从各个仓库运送到各个工厂(允许一个仓库的物品运往多个工厂,且允许一个工厂接受多个仓库的运货),希望找到最优运输方案来最大限度地降低运输成本,这便是最优传输问题。