0%

概率分布的距离

AcadiaBlueberries_ZH-CN6014510748_1920x1080.jpg

机器学习中度量两个概率分布距离的方法总结:卡方检验 / 交叉熵 / F散度 / W距离 / MMD距离

卡方检验

$$
\chi^{2}=\sum\frac{\left ( A-E \right )^{2}}{E}=\sum_{i=1}^{k}\frac{\left ( A_{i}-E_{i} \right )^{2}}{E_{i}}=\sum_{i=1}^{k}\frac{\left ( A_{i}-np_{i} \right )^{2}}{np_{i}}
$$

其中,$A_i$为观察频数,$E_i$为期望频数,期望频数$E_i$ = 总频数$n$ * 期望频率$p_i$。卡方检验经常用来检验某一种观测分布是不是符合某一类典型的理论分布(如二项分布,正态分布等) 。$\chi ^{2}$越小,两个分布越接近。

交叉熵

$$
H(P,Q)=-\sum_{x}^{ }P(x)log Q(x)
$$

其中,$P$为真实分布,$Q$为非真实分布,$H(P,Q)$越小,两个分布越接近。

KL散度

$$
D_{KL}(P||Q)=\sum_{x}^{ }P(x)log \frac{P(x)}{Q(x)}
$$

其中,$P$为真实分布,$Q$为非真实分布,$D_{KL}(P||Q)$越小,两个分布越接近。KL散度具有非负性和不对称性。

JS散度

$$
D_{JS}(P||Q)=\frac{1}{2}D_{KL}(P||\frac{P+Q}{2})+\frac{1}{2}D_{KL}(Q||\frac{P+Q}{2})
$$

其中,$P$为真实分布,$Q$为非真实分布,$D_{JS}(P||Q)$越小,两个分布越接近。JS散度具有非负性和对称性。

Hellinger距离

$$
H(P,Q)=\frac{1}{\sqrt{2}}\left | \sqrt{P}-\sqrt{Q} \right |_2
$$

其中,$P$为真实分布,$Q$为非真实分布,$H(P,Q)$越小,两个分布越接近。

F散度

$$
D_{f}(P||Q)=\sum_{x}^{ }Q(x)f(\frac{P(x)}{Q(x)})
$$

其中,$P$为真实分布,$Q$为非真实分布,$D_{f}(P||Q)$越小,两个分布越接近。F散度具有非负性。

Divergence f(t)
KL-divergence $tlogt$
reverse KL-divergence $-logt$
Hellinger distance $(\sqrt t -1)^2, 2(1-\sqrt t)$
Total variation distance $\frac{1}{2}(t-1)$
$\chi ^{2}$-divergence $(t-1)^2, t^2-1$

巴氏距离

$$
D_B(P,Q)=-ln(BC(P,Q))
$$

其中$BC(P,Q)$是Bhattacharyya系数:$BC(P,Q)=\sum_{x}^{ } \sqrt{P(x)Q(x)}$

MMD距离(最大均值差异)

$$
MMD(F,X,Y)=[\frac{1}{m^2}\sum_{i,j=1}^{m}k(x_i,x_j)-\frac{2}{mn}\sum_{i,j=1}^{m,n}k(x_i,y_j)+\frac{1}{n^2}\sum_{i,j=1}^{n}k(y_i,y_j)]^\frac{1}{2}
$$

其中,$k(·)$是核函数,用于把原变量映射到高维空间中。$X,Y$表示两种分布的样本,$F$表示函数集。基于两个分布的样本,通过寻找在样本空间上的映射函数$k$,求不同分布的样本在$k$上的函数值的均值,通过把两个均值作差可以得到两个分布对应于$k$的均值差异。寻找一个$k$使得这个均值差异有最大值,就得到了MMD。最后取MMD作为检验统计量(test statistic),从而判断两个分布是否相同。如果这个值足够小,就认为两个分布相同,否则就认为它们不相同。更加简单的理解就是:求两堆数据在高维空间中的均值的距离。

Wasserstein距离(EM距离)

$$
W(P,Q)=\inf_{\gamma \sim \prod (P,Q)} E_{(x,y)\sim \gamma }[\left | x-y \right |]
$$

其中,$\prod (P,Q)$是$P$和$Q$是组合起来的所有可能的联合分布的集合,反过来说$\prod (P,Q)$中每一个分布的边缘分布都是$P$和$Q$。对于每一个可能的联合分布$\gamma$而言,可以从中采样$(x,y)\sim \gamma$得到一个真实样本$x$和一个生成样本$y$,并算出这对样本的距离$\left | x-y \right |$,所以可以计算该联合分布$\gamma$下样本对距离的期望值$E_{(x,y)\sim \gamma }[\left | x-y \right |]$。 在所有可能的联合分布中能够对这个期望值取到的下界$\inf_{\gamma \sim \prod (P,Q)}E_{(x,y)\sim \gamma }[\left | x-y \right |]$,就定义为Wasserstein距离。

Wasserstein距离相比KL散度、JS散度的优越性在于,即便两个分布没有重叠,Wasserstein距离仍然能够反映它们的远近。

根据Kantorovich-Rubinstein对偶原理,可以得到Wasserstein距离的等价形式:

$$
W(P, Q)=\frac{1}{K} \sup_{||f||L\leq K} \mathbb E{x \sim P}[f(x)]- \mathbb E_{x \sim Q}[f(x)]
$$

参考资料

  1. 概率分布之间的距离度量以及python实现(三)
  2. 概率分布之间的距离度量以及python实现(四)
  3. 卡方检验和卡方分布
  4. 令人拍案叫绝的Wasserstein GAN