NO.37.tip: 熵
背景
我们将讨论分布 的熵(entropy),这个熵的概念只是概率分布和均匀分布之间 KL 散度的移位和缩放版本。
定义
个状态上分布为 的离散随机变量 ,其熵的定义为:
我们可以使用任何底数的对数,但通常使用以 2 为底的对数,在这种情况下,单位称为比特;或者使用以 为底的对数,在这种情形下,单位称为奈特。
熵等于一个常数减去均匀分布的 KL 散度:
如果 是均匀分布,则 KL 为零,并且我们看到熵达到其 的最大值。
对于二元随机变量的特殊情况,,我们可以记作 和 。因此熵变为:
这被称为二元熵函数(binary entropy function),也被记作 。
源与流
连续随机变量的微分熵
如果 是一个具有概率密度函数 的连续随机变量,我们将微分熵(differential entropy)定义为:
假设这个积分存在。
例如,可以证明 维高斯分布的熵是:
在一维高斯分布的情况下,该式变为:
请注意,与离散情况不同,微分熵可以是负值。这是因为概率密度函数可能大于 1。例如,假设 ,于是有:
如果设置 ,那么我们有 比特。
理解微分熵的一种方法是认识到所有实数只能表示为有限精度。可以证明,连续随机变量 的 比特量化的熵大约为 。例如,假设 。于是,在 的二进制表示中,二进制点右侧的前 3 比特必须为 0(因为数字 )。描述 到 个比特的精度只需要 比特,这与上面计算的 完全一致。
连续熵也缺乏 KL 散度的重新参数化独立性。特别地,如果我们变换随机变量 ,那么熵就会随之变换。为了理解这一点,请注意变量的变化实际上表明:
因此,连续熵变换如下:
对于变换的雅可比行列式,我们在其对数的连续熵中选取一个因子。即使是简单地重新缩放随机变量,也会改变连续熵的值,例如当我们仅仅改变单位时。
典型集
对于概率分布的典型集(typical set),该集合中的元素具有这样的信息内容:信息内容接近于来自分布的随机样本的期望信息内容。更准确地说,对于支撑集 的分布 , 的 -典型集合 是所有长度为 的序列的集合,并满足:
如果我们假设 ,那么可以将中间的项解释为熵的 -样本经验估计。渐近均分性质(Asymptotic Equipartition Property, AEP)表明,当 时,这将在(概率上)收敛到真正的熵。因此,典型集的概率接近 1,同时也是对 所生成内容的简明总结。
交叉熵与困惑度
衡量模型 与真实分布 接近程度的标准方法是使用 KL 散度,由下式给出:
其中, 是交叉熵:
并且, 是熵,是独立于模型的常数。
在语言建模中,通常会报告一种称为困惑度(perplexity)的替代性能度量。困惑度被定义为:
我们可以按照如下方法计算交叉熵的经验近似值。基于从 采样的数据,假设我们使用该数据的经验分布来近似真实分布:
在这种情况下,交叉熵由下式计算而得:
相对应的困惑度的计算公式为:
在语言模型的情况下,我们在预测下一个单词时通常以前一个单词为条件。例如,在二元模型中,我们使用形式为 的二阶马尔可夫模型。我们将语言模型的分支因子(branching factor)定义为任何给定单词后可能出现的单词的数量。例如,假设模型预测每个单词具有相等的可能性,且与上下文无关,因此 ,其中 是词汇表中的单词数量。那么困惑度就是 。如果某些符号比其他符号更有可能,并且模型正确地反映了这一可能性,那么所得到的困惑度将低于 。然而,我们有 ,所以我们永远无法将困惑度降低到 以下。