机器学习中的数学——距离定义(二十四):F-散度(F-Divergence)

本文详细介绍了F-散度的概念及其在不同情况下的特例,包括KL散度、Reverse KL散度、海林格距离等,并提供了海林格距离的Python实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分类目录:《机器学习中的数学》总目录
相关文章:
· 距离定义:基础知识
· 距离定义(一):欧几里得距离(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)


F-散度(F-Divergence)是KL散度的一个推广:
D F ( p ∣ ∣ q ) = ∫ q ( x ) f ( p ( x ) q ( x ) ) D_F(p||q)=\int q(x)f(\frac{p(x)}{q(x)}) DF(pq)=q(x)f(q(x)p(x))

其中,函数 f ( x ) f(x) f(x)需要满足下列2个性质:

  • f ( x ) f(x) f(x)是一个凸函数
  • f ( 1 ) f(1) f(1)=0

f ( x ) = x log ⁡ x f(x)=x\log{x} f(x)=xlogx,则F-散度退化为KL散度;若 f ( x ) = − log ⁡ x f(x)=-\log{x} f(x)=logx,则F-散度退化为reverse KL散度。甚至,当 f ( x ) f(x) f(x)取某些值时,还可以表达 α \alpha α-散度。下面的表格给出了F-散度的一些特例:

散度(Divergence)对应的 f ( x ) f(x) f(x)
KL散度 x log ⁡ x x\log{x} xlogx
reverse KL散度 − log ⁡ x -\log{x} logx
海林格距离 ( x − 1 ) 2 (\sqrt{x}-1)^2 (x 1)2
卡方距离 ( t − 1 ) 2 (t-1)^2 (t1)2
α \alpha α-散度 4 1 − α 2 ( 1 − x 1 + α 2 ) ( α ≠ ± 1 ) \frac{4}{1-\alpha^2}(1-x^{\frac{1+\alpha}{2}})\quad(\alpha\neq\pm1) 1α24(1x21+α)(α=±1)
KL散度 x log ⁡ x x\log{x} xlogx
KL散度 x log ⁡ x x\log{x} xlogx

下面我们来看一下海林格距离的Python实现:

def f(t):
    return t*np.log(t)

def F_Divergence(p, q):
    import numpy as np
    p = np.array(p)
    q = np.array(q)
    M = (p + q)/2
    return np.sum(q*f(p/q))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

von Neumann

您的赞赏是我创作最大的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值