很多初学者在阅读论文的时候,特别是图方向,社交网络,NLP等等玩embedding方向的 都会遇见类似与JS,KL散度等东西来衡量两个分布之间的距离, 很多论文中现在都出现了Wasserstein距离这个东西,今天我就来给大家分享一下,Wasserstein距离到底是一个什么东西。
首先我们来看一下公式的定义:
糟了,很多人看不懂,那岂不是凉了? 我觉得这样写出来的东西并不是很具有小白的观赏性发,我们试着用其他方式来简单阐述这个问题。
Wasserstein距离我们可以简单的理解为‘代价距离’,那如何理解‘代价距离’呢?
我们现在存在两个离散分布
P1=0 P2=5 P3=10
Q1=5 Q2=9 Q3=4
我们如何衡量两者分布差异? 我们可以理解为 P分布要花多大代价才能和Q保持一致?
对于P1而言,P1需要+5才能和Q1保持一致,那这个5哪儿来呢? 我们可以从P2处偷5个代价过来,那么P1就是5,P2就是0了,以此类推 我们给出代价距离每一步的公式
代价距离求和就是 代价距离:
为什么Wasserstein距离优于KL和JS散度
【1】P,Q两个分布完全重合,此时这三种距离度量方式均为0。可以看出KL散度在两个分布完全没有任何交集的时候会得出无穷的结果,而JS散度则会有突然的阶跃,并且在0点出不可微,只有Wasserstein距离能够提供更为平滑的结果用于梯度下降法的参数更新。不过值得一提的是,目前主流的分布距离度量依然是KL散度,这是由于KL散度的计算方式简单,计算成本较Wasserstein低,但今年来Wasserstein距离的近似Sinkhorn distance以及其他加快距离计算方法的论文也在不断涌现
参考文献:
【1】https://zhuanlan.zhihu.com/p/84617531
’