白话Wassertein距离

WGAN可以说是很经典的一篇paper了,相信了解过WGAN的同学也基本都看过大佬郑华滨的解读:

郑华滨:令人拍案叫绝的Wasserstein GANzhuanlan.zhihu.com图标

看完上面这个解读,对于里面说到的Wassertein距离虽然知道其相比于JS散度,可以避免梯度突变问题,但为什么是这样,以及如何计算Wassertein距离,还是缺乏直观的理解。本文将简单,直观的介绍下Wassertein距离的含义,以及为什么Wassertein距离相比于JS散度有优势。

本文重点参考了这篇博客[1],并做了一些自己的总结,不对之处欢迎指正。

最优传输距离:从搬方块说起

考虑下面的搬方块问题,如何把下面左图中的(实线)方块搬到右图中的(虚线)方块,并且使得移动距离最短?这里移动距离(或者传输距离)定义为:位置之间的距离差。比如左边的方块1在位置#1,如果搬到右边的位置#7,那么距离就是6。

对于上图的问题,首先,我们可以把位置#1的三个方块,其中1个放到位置#7,剩下两个放到位置#10,那么运输距离(即位置之间的距离差)为6+2x9;然后把位置#2的方块放到位置#8,运输距离为6;最后把位置#3的方块放到位置#9,运输距离为6。这个运输方案我们记为 \gamma_1 。显然,运输方案有很多种,下面就展示了两种运输方案。

上面两种运输方案的运输距离是一样的,有时候,运输方案不一样,距离也会不一样。比如下面这个:

对于上述搬箱子的方案,如果遍历所有搬运方法,肯定有一个最优运输距离。这里如果我们把左边的箱子和右边的箱子分别看成GAN中的真实数据分布 p_{data} 和生成的数据分布 p_g ,那么,我们就也可以遍历所有传输方案,得到把概率分布 p_{data} 搬到 p_g 的最优传输距离。

总结一下,给出最优传输距离的定义:

最优传输距离,指的是把概率分布q 转换为 p 的最小传输质量(概率密度在离散情况下,叫做概率质量)。 最优传输距离也叫做地球移动距离,wassertein距离,推土机距离。

这个定义结合上述例子,我们可以总结一下:

  • wassertein距离就是衡量把概率分布q 搬到p 的最小代价
  • 从上面的例子可以看出,wassertein距离的计算是平滑的,没有像JS散度或KL散度那样突变的特性。这使得非常适合用于作为GAN的loss函数。因为JS散度是突变的,在两个分布没有重叠的时候,即便两个分布在优化过程中是靠近的,但是这点在loss上体现不出来,而wassertein距离可以做到。



参考资料:

[1]:medium.com/@jonathan_hu

编辑于 2019-04-03