分类目录:《机器学习中的数学》总目录
相关文章:
· 距离定义:基础知识
· 距离定义(一):欧几里得距离(Euclidean Distance)
· 距离定义(二):曼哈顿距离(Manhattan Distance)
· 距离定义(三):闵可夫斯基距离(Minkowski Distance)
· 距离定义(四):切比雪夫距离(Chebyshev Distance)
· 距离定义(五):标准化的欧几里得距离(Standardized Euclidean Distance)
· 距离定义(六):马氏距离(Mahalanobis Distance)
· 距离定义(七):兰氏距离(Lance and Williams Distance)/堪培拉距离(Canberra Distance)
· 距离定义(八):余弦距离(Cosine Distance)
· 距离定义(九):测地距离(Geodesic Distance)
· 距离定义(十): 布雷柯蒂斯距离(Bray Curtis Distance)
· 距离定义(十一):汉明距离(Hamming Distance)
· 距离定义(十二):编辑距离(Edit Distance,Levenshtein Distance)
· 距离定义(十三):杰卡德距离(Jaccard Distance)和杰卡德相似系数(Jaccard Similarity Coefficient)
· 距离定义(十四):Ochiia系数(Ochiia Coefficient)
· 距离定义(十五):Dice系数(Dice Coefficient)
· 距离定义(十六):豪斯多夫距离(Hausdorff Distance)
· 距离定义(十七):皮尔逊相关系数(Pearson Correlation)
· 距离定义(十八):卡方距离(Chi-square Measure)
· 距离定义(十九):交叉熵(Cross Entropy)
· 距离定义(二十):相对熵(Relative Entropy)/KL散度(Kullback-Leibler Divergence)
· 距离定义(二十一):JS散度(Jensen–Shannon Divergence)
· 距离定义(二十二):海林格距离(Hellinger Distance)
· 距离定义(二十三):α-散度(α-Divergence)
· 距离定义(二十四):F-散度(F-Divergence)
· 距离定义(二十五):布雷格曼散度(Bregman Divergence)
· 距离定义(二十六):Wasserstein距离(Wasserstei Distance)/EM距离(Earth-Mover Distance)
· 距离定义(二十七):巴氏距离(Bhattacharyya Distance)
· 距离定义(二十八):最大均值差异(Maximum Mean Discrepancy, MMD)
· 距离定义(二十九):点间互信息(Pointwise Mutual Information, PMI)
我们假设
p
p
p和
q
q
q是两个概率测度,并且它们对于第三个概率测度
λ
\lambda
λ来说是绝对连续的,则
p
p
p和
q
q
q的海林格距离(Hellinger Distance)的平方被定义如下:
H
2
(
p
,
q
)
=
1
2
∫
(
d
p
d
λ
−
d
q
d
λ
)
2
d
λ
H^2(p,q)=\frac{1}{2}\int(\sqrt{\frac{\text{d}p}{\text{d}\lambda}}-\sqrt{\frac{\text{d}q}{\text{d}\lambda}})^2\text{d}\lambda
H2(p,q)=21∫(dλdp−dλdq)2dλ
这里的
d
p
d
λ
\frac{\text{d}p}{\text{d}\lambda}
dλdp和
d
q
d
λ
\frac{\text{d}q}{\text{d}\lambda}
dλdq分别是
p
p
p和
q
q
q的Radon–Nikodym微分。这里的定义是与
λ
\lambda
λ无关的,因此当我们用另外一个概率测度替换
λ
\lambda
λ时,只要
p
p
p和
q
q
q关于它绝对连续,那么上式就不变。为了简单起见,我们通常把上式改写为:
H
2
(
p
,
q
)
=
1
2
∫
(
d
p
−
d
q
)
2
d
λ
H^2(p,q)=\frac{1}{2}\int(\sqrt{\text{d}p}-\sqrt{\text{d}q})^2\text{d}\lambda
H2(p,q)=21∫(dp−dq)2dλ
为了在经典的概率论框架下定义Hellinger距离,我们通常将
λ
\lambda
λ定义为Lebesgue度量,此时
d
p
d
λ
\frac{\text{d}p}{\text{d}\lambda}
dλdp和
d
q
d
λ
\frac{\text{d}q}{\text{d}\lambda}
dλdq就变为了我们通常所说的概率密度函数,那么可以用以下的积分形式表示Hellinger距离:
H
2
(
p
,
q
)
=
1
2
∫
(
d
p
d
λ
−
d
q
d
λ
)
2
d
λ
=
1
−
∫
d
p
d
λ
d
q
d
λ
d
λ
H^2(p,q)=\frac{1}{2}\int(\sqrt{\frac{\text{d}p}{\text{d}\lambda}}-\sqrt{\frac{\text{d}q}{\text{d}\lambda}})^2\text{d}\lambda=1-\int\sqrt{\frac{\text{d}p}{\text{d}\lambda} \frac{\text{d}q}{\text{d}\lambda}}\text{d}\lambda
H2(p,q)=21∫(dλdp−dλdq)2dλ=1−∫dλdpdλdqdλ
上述等式可以通过展开平方项得到,注意到任何概率密度函数在其定义域上的积分为1,根据柯西-施瓦茨不等式(Cauchy-Schwarz Inequality),Hellinger距离满足如下性质:
0
≤
H
(
p
,
q
)
≤
1
0\leq H(p,q)\leq 1
0≤H(p,q)≤1
对于两个离散概率分布
p
=
(
p
1
,
p
2
,
⋯
,
p
n
)
p=(p_1, p_2, \cdots, p_n)
p=(p1,p2,⋯,pn)和
q
=
(
q
1
,
q
2
,
⋯
,
q
n
)
q=(q_1, q_2, \cdots, q_n)
q=(q1,q2,⋯,qn),它们的Hellinger距离可以定义如下:
H
(
p
,
q
)
=
1
2
∑
i
=
1
n
(
p
i
−
q
i
)
2
H(p, q)=\frac{1}{\sqrt{2}}\sqrt{\sum_{i=1}^n(\sqrt{p_i}-\sqrt{q_i})^2}
H(p,q)=21i=1∑n(pi−qi)2
上式也可以被看作两个离散概率分布平方根向量的欧几里得距离:
H
(
p
,
q
)
=
1
2
∣
∣
p
−
q
∣
∣
2
H(p, q)=\frac{1}{\sqrt{2}}||\sqrt{p}-\sqrt{q}||_2
H(p,q)=21∣∣p−q∣∣2
也可以写成:
1
−
H
2
(
p
,
q
)
=
∑
i
=
1
n
p
i
q
i
1 - H^2(p, q)=\sum_{i=1}^n\sqrt{p_iq_i}
1−H2(p,q)=i=1∑npiqi
下面我们来看一下海林格距离的Python实现:
def HellingerDistance(p, q):
import numpy as np
p = np.array(p)
q = np.array(q)
M = (p + q)/2
return 1/np.sqrt(2)*np.linalg.norm(np.sqrt(p)-np.sqrt(q))