概率距离度量方式

Posted zhouyc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了概率距离度量方式相关的知识,希望对你有一定的参考价值。

  1. 信息熵
    信息熵是信息论中用于度量信息量的一个概念。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以,信息熵也可以说是系统有序化程度的一个度量。信息量是对信息的度量,就跟时间的度量是秒一样,当我们考虑一个离散的随机变量 x 的时候,当我们观察到的这个变量的一个具体值的时候,我们接收到了多少信息呢?多少信息用信息量来衡量,我们接受到的信息量跟具体发生的事件有关。信息的大小跟随机事件的概率有关。越小概率的事情发生了产生的信息量越大,如湖南产生 的地震了;越大概率的事情发生了产生的信息量越小,如太阳从东边升起来了(肯定发生嘛, 没什么信息量)。这很好理解!因此一个具体事件的信息量应该是随着其发生概率而递减的,且不能为负
    [H(x)=-sum p(x)log p(x)]
    1.KL散度(相对熵)

    KL散度又称为相对熵,信息散度,信息增益。KL散度是是两个概率分布P和Q 差别的非对称性的度量。常用于衡量两个概率分布之间的差异或相似度,或衡量利用Q拟合P时的能量消耗 KL散度是用来 度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数。 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。其定义如下:
    [D_{KL}(P|Q)=sum_{xin i}P(x_i) log frac{P(x_i)}{Q(x_i)}]
    [D_{KL}(P|Q)=sum_{xin i}P(x_i)*log P(x_i)-P(x_i)log Q(x_i)]
    此处我们可以看到, 等号左边是熵, 右边就是交叉熵
    有时会将KL散度称为KL距离,但它并不满足距离的性质:
    • KL散度不是对称的: (D(P|Q)!=D(Q|P))
    • KL散度不满足三角不等式。

2.JS散度

JS散度度量了两个概率分布的相似度,基于KL散度的变体,解决了KL散度非对称的问题。一般地,JS散度是对称的,其取值是0到1之间,一般地,JS散度是对称的,其取值是0到1之间。若两个分布完全没有交集,那么JS散度取最大值1;若两个分布完全一样,那么 JS 散度取最小值 0。
定义如下:
[JS(P_1|P_2)=frac{1}{2}KL(P_1||frac{P_1+P_2}{2})+frac{1}{2}KL(P_2||frac{P_1+P_2}{2})]
KL散度和JS散度度量的时候有一个问题:
如果两个分配P,Q离得很远,完全没有重叠的时候,那么KL散度值是没有意义的,而JS散度值是一个常数。这在学习算法中是比较致命的,这就意味这这一点的梯度为0。梯度消失了。

  1. Wasserstein距离(EM距离):解决JS和KL距离的缺点
    Wessertein距离相比KL散度和JS散度的优势在于:即使两个分布的支撑集没有重叠或者重叠非常少,仍然能反映两个分布的远近。而JS散度在此情况下是常量,KL散度可能无意义。
    wasserstein距离就是衡量把概率分布q“搬到” p的最小代价。

    Wasserstein距离度量两个概率分布之间的距离,定义如下:
    [W(P_1,P_2)=inflimits_{gamma-prod(P_1,P_2)}E_{(x,y)-gamma}[||x-y||]]
    其中, (prod(P_1,P_2))(P_1,P_2)组合起来的,所有可能的联合分布, 对于每一个可能的分布(gamma)而言, 我们都可以采样到(x,y), 并计算他们的距离的期望值, 一般, 在代码实现的时候, 会直接取平均值

以上是关于概率距离度量方式的主要内容,如果未能解决你的问题,请参考以下文章

概率分布之间的距离度量以及python实现

基于结构的距离度量

浅谈分布式鲁棒随机优化之Wasserstein度量

paper 112:hellinger distance

什么是EMD(Earth Movers Distance)

信息量和信息熵