什么构成了大的KL散度?

机器算法验证 r 分布 伽马分布 kullback-leibler
2022-04-13 22:47:50

我有 2 个伽马分布

X1Ga(13,1)X2Ga(3,1)

我们将随机变量的伽马分布概率密度函数定义为XGa(a,b)

f(X)=baΓ(a)xa1ebx

是利率。b

计算这两个分布的 KL 散度给我一个大约 10 的值。我只是想知道这会被认为是一个大的 KL 散度吗?是否有一些经验法则,您会认为这很大,因此 2 个分布不同。

1个回答

正如 W. Huber 评论的那样,这是一个相当有趣的问题,尽管我怀疑是否有明确的绝对答案。引用一些通用参考,

“...... KL 散度表示对符号来自分布 P 的源进行编码所需的额外比特数,假设编码器是为符号来自 Q 的源而设计的。” 知乎

“......它是当 Q 用于近似 P 时丢失的信息量。” 维基百科

“Kullback–Leibler 散度也可以解释为相对于的预期区分信息:当假设为真 时,每个样本的平均信息 和假设维基百科H1H0H1H0H1

但是编码是一个相当专业的概念(在我看来),而信息非常模糊(有人可能会说它实际上是由 Kulback-Leibler 距离定义的)。并且没有绝对比例,因为距离通常从 0 到(与维基百科页面在第一段中可能建议的相反)。因此,Kullback-Leibler 距离的校准比例将取决于手头的问题以及测量这种距离的原因。

下图中提供了此校准问题的说明

在此处输入图像描述

比较两个 Gamma 分布之间的 log-Kullback-Leibler 距离的直方图,当

  1. 从 Gamma生成两个大小为的数据集xynG(a,1)
  2. Gamma 分布的两个参数都是通过矩方法从样本中估计的
  3. 推导出估计 Gamma 之间的 Kullback-Leibler 距离

如果不清楚,这是R 代码的核心(使用W. Huber 的 KL.gamma):

n=15
T=1e3
a=.3
diz=rep(0,T)
for (t in 1:T){
  x=rgamma(n,17,1)
  a=mean(x);b=var(x);a=a^2/b;b=sqrt(a/b)
  y=rgamma(n,17,1)
  c=mean(y);d=var(y);c=c^2/d;d=sqrt(c/d)
  diz[t]=KL.gamma(a,b,c,d)}

这个小实验的解释是,当考虑一个大小为附近的 Kullback-Leibler 散度并不显着,因为相同的“真实”参数产生的样本会导致在距离上的估计分布左右当移动到大小为的样本时,这将成为一个非常重要的距离。(请注意,这个实验只是试图指出缺乏绝对的“大”或“小”Kullback-Leibler 散度,而不是将这种规模评估变成测试或类似的东西!)n=1511n=150