Wasserstein距离

Wasserstein距离

1.Wasserstein距离

Wasserstein距离度量两个概率分布之间的距离,定义如下:

\prod({P_{1},P_{2}})P_{1}P_{2}分布组合起来的所有可能的联合分布的集合。对于每一个可能的联合分布\gamma,可以从中采样(x,y)∼\gamma得到一个样本x和y,并计算出这对样本的距离||x−y||,所以可以计算该联合分布\gamma下,样本对距离的期望值E(x,y)∼\gamma[||x−y||]。 在所有可能的联合分布中能够对这个期望值取到的下界 \inf_{}^{\gamma \sim \Pi (P_{1},P_{2})}\AE _{(x,y)\sim \gamma }[||x-y||] 就是Wasserstein距离。

直观上可以把E(x,y)∼\gamma[||x−y||]理解为在\gamma这个路径规划下把土堆P_{1}挪到土堆P_{2}所需要的消耗。而Wasserstein距离就是在最优路径规划下的最小消耗。所以Wesserstein距离又叫Earth-Mover距离。

Wessertein距离相比KL散度和JS散度的优势在于:即使两个分布的支撑集没有重叠或者重叠非常少,仍然能反映两个分布的远近。而JS散度在此情况下是常量,KL散度可能无意义。

2.最优传输距离:

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

【总结】

  • wasserstein距离就是衡量把概率分布q“搬到p的最小代价
  • wasserstein距离的计算是平滑的,而JS散度是突变的,在两个分布没有重叠的时候,即便两个分布在优化过程中是靠近的,但是这点在loss上体现不出来,而wassertein距离可以做到。

3.Wasserstein GAN

要知道自从2014年Ian Goodfellow提出以来,GAN就存在着训练困难、生成器和判别器的loss无法指示训练进程、生成样本缺乏多样性等问题。从那时起,很多论文都在尝试解决,但是效果不尽人意,比如最有名的一个改进DCGAN依靠的是对判别器和生成器的架构进行实验枚举,最终找到一组比较好的网络架构设置,但是实际上是治标不治本,没有彻底解决问题。而今天的主角Wasserstein GAN(下面简称WGAN)成功地做到了以下爆炸性的几点:

  • 彻底解决GAN训练不稳定的问题,不再需要小心平衡生成器和判别器的训练程度
  • 基本解决了collapse mode的问题,确保了生成样本的多样性 
  • 训练过程中终于有一个像交叉熵、准确率这样的数值来指示训练的进程,这个数值越小代表GAN训练得越好,生成器产生的图像质量越高
  • 以上一切好处不需要精心设计的网络架构,最简单的多层全连接网络就可以做到

那以上好处来自哪里?这就是令人拍案叫绝的部分了——实际上作者整整花了两篇论文,在第一篇《Towards Principled Methods for Training Generative Adversarial Networks》里面推了一堆公式定理,从理论上分析了原始GAN的问题所在,从而针对性地给出了改进要点;在这第二篇《Wasserstein GAN》里面,又再从这个改进点出发推了一堆公式定理,最终给出了改进的算法实现流程,而改进后相比原始GAN的算法实现流程却只改了四点

  • 判别器最后一层去掉sigmoid
  • 生成器和判别器的loss不取log
  • 每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定常数c
  • 不要用基于动量的优化算法(包括momentum和Adam),推荐RMSProp,SGD也行

算法截图如下:

Wasserstein距离_第1张图片

 

 

参考资料1: https://zhuanlan.zhihu.com/p/57062205

参考资料2: https://zhuanlan.zhihu.com/p/25071913

你可能感兴趣的:(机器学习)