为什么 Kullback Leibler Divergence 总是积极的?
机器算法验证
直觉
熵
信息论
kullback-leibler
2022-04-09 00:27:34
1个回答
直观的理解有些主观,但我至少可以提供我的观点:
Kullback-Leibler 散度是信息论中的一个概念。它告诉您如果您使用次优编码方案,您的消息平均会有多长时间——多少位。
对于每个概率分布,平均消息长度都有一个下限,这就是分布的熵。对于分布从您的维基百科示例中,它是
也就是说,如果您要从该概率分布中记录随机变量的实现,例如在计算机文件中,或者通过有限带宽的通道传输它们,那么平均而言,您至少需要 无论您的编码多么复杂,每个实现的位数。因为在那个分布中是三倍的概率, 使用更短的代码来编码事件是有意义的比编码. 例如,您可以使用以下编码:
×:1 2 3 代码:01 1 001
此代码的平均消息长度为位,(当然!)超过理论下限,但仍优于等长代码,例如:
×:1 2 3 代码:01 10 11
这需要每个事件的位数。您可以构建更复杂的代码来编码事件序列,但无论您做什么,都无法超越信息论的下限。
现在,对于不同的分布,说,还有其他近似于最佳编码的编码。的熵从你的例子是位。作为近似值,上述两个代码都同样好,平均需要每个事件的位数,但更复杂的代码可能会更好。
但是,什么是更好的编码不一定更适合编码. Kullback-Leibler 散度告诉您使用为传输/存储信息而优化的编码需要花费多少位如果你的真实概率分布是. 这个度量不能是负数。如果是这样,则意味着您可以击败最佳编码通过使用优化的编码反而。
事实上,KL 散度(很容易展示,因为) 告诉你编码概率分布使用针对该分发优化的代码会产生零成本。
其它你可能感兴趣的问题