神经网络数学基础-K L散度、JS 散度、Wasserstein 距离
目录
KL 散度
KL散度又称为相对熵,信息散度,信息增益。KL 散度是是两个概率分布 和
差别的非对称性的度量。 KL 散度是用来度量使用基于
的编码来编码来自
的样本平均所需的额外的位元数。 典型情况下,
表示数据的真实分布,
表示数据的理论分布、模型分布,或
的近似分布。
定义如下:
因为对数函数是凸函数,所以KL散度的值为非负数。
KL 散度并不满足距离的性质:
- KL 散度不是对称的
即 。具体详细解释,可参考博客:https://www.jiqizhixin.com/articles/0224。
- KL 散度不满足三角不等式。
关于这点,我暂时没有搜到相关博客。希望知道的大牛可以指点一下。
JS 散度 (Jensen-Shannon)
为了解决了 KL 散度非对称的问题,基于 KL 散度的变体,JS 散度度量了两个概率分布的相似度。一般地,JS 散度是对称的,其取值是 0 到 1 之间。定义如下:
虽然 JS 散度可以对称,但有一个致命问题:
如果两个分配 离得很远,完全没有重叠的时候,那么 KL 散度值是没有意义的,而 JS 散度值是一个常数。这就意味这这一点的梯度为 0。梯度消失了。下图是证明过程。
为什么会出现两个分布没有重叠的现象?
上面几张图来自:https://blog.****.net/weixin_44441131/article/details/105878383
Wasserstein 距离
Wasserstein 距离度量两个概率分布之间的距离,定义如下:
是
和
分布组合起来的所有可能的联合分布的集合。对于每一个可能的联合分布
,可以从中采样
得到一个样本
和
,并计算出这对样本的距离
,所以可以计算该联合分布
下,样本对距离的期望值
。在所有可能的联合分布中能够对这个期望值取到的下界
就是 Wasserstein 距离。
直观上可以把 理解为在
这个路径规划下把土堆
挪到土堆
所需要的消耗。而 Wasserstein 距离就是在最优路径规划下的最小消耗。所以 Wesserstein 距离又叫 Earth-Mover(推土机)距离。
Wessertein 距离相比 KL 散度和 JS 散度的优势在于:
即使两个分布的支撑集没有重叠或者重叠非常少,仍然能反映两个分布的远近。而 JS 散度在此情况下是常量,KL 散度可能无意义。这也是 Wessertein GAN 的核心思想。
关于Wasserstein 距离更具体细节,可以参考博客: