[机器学习]KL散度——两个概率分布的相似度量

Kullback-Leibler Divergence

Kullback-Leibler散度(通常缩短为KL散度)是一种比较两种概率分布的方法。在概率论和统计学中,我们经常用更简单的近似分布来代替观察到的数据或复杂的分布。KL散度帮助我们衡量在选择近似值时损失了多少信息。

假设发现一种蠕虫,牙齿一原本共十颗,但有些有缺失,牙齿分布如下:

The empirical probability distribution of the data collected

我们想做的是将这些数据简化为一个只有一两个参数的简单模型。一种选择是将蠕虫牙齿的分布表示为均匀分布,明显这种表示有一点问题.

Our uniform approximation wipes out any nuance in our data

如果使用二项分布,需要n和p两个参数.

image-20230903144610094

原始数据平均值若为5.7,则p=0.57最好,此时E[x]=n*p=5.7

Our binomial approximation has more subtlety, but doesn't perfectly model our data either

然后需要比较这两种模型代替原始数据谁更好.

Compared with the original data, it's clear that both approximations are limited. How can we choose which one to use?

现有的度量方式有很多,但我们主要关心的是尽量减少必须发送的信息量。这两个模型都将我们的问题简化为两个参数,牙齿数和概率(尽管我们实际上只需要均匀分布的齿数)。

最好的测试是哪个分布保存了来自原始数据源的最多信息。这就是Kullback Leibler Divergence的用武之地。

这时候需要引入熵的概念,

KL起源于信息论。信息论的主要目标是量化数据中的信息量。

熵没有告诉我们的是帮助我们实现这种压缩的最佳编码方案。信息的最佳编码是一个非常有趣的话题,但对于理解KL分歧来说并不是必要的。

熵的关键在于,只要知道我们需要的比特数的理论下限,我们就可以准确地量化数据中的信息量。

Kullback-Leibler散度只是对我们的熵公式的一个轻微修改。

本质上,我们所看到的KL散度是原始分布中数据的概率与近似分布之间的对数差的期望。

利用KL散度,我们可以准确地计算出当我们用另一个分布近似一个分布时损失了多少信息

将KL散度视为距离度量可能很诱人,但我们不能使用KL散度来测量两个分布之间的距离。这是因为KL散度不是对称的。

我们可以尝试依旧使用二项分布,但改变参数p对KL进行优化

It turns out we did choose the correct approach for finding the best Binomial distribution to model our data

结果发现p正是在n*p=E(original_data)时,KL最优.

如果自己定义一个模型,假设0-5的牙齿数概率相等且和为p,则6-10概率为1-p

By finding the minimum for KL Divergence as we change our parameter we can find the optimal value for p.

最优值p=0.47,发现此时KL与之前均值分布时相等.

KL与信息熵和交叉熵的关系如下

img

参考资料

  1. Kullback-Leibler Divergence Explained — Count Bayesie

本文由 mdnice 多平台发布

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

procoder338

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值