Advertisement

香农熵、交叉熵和相对熵

阅读量:

1、自信息、香农熵

信息论的核心观点指出,在某个时刻当一个不太可能发生的事情发生了时(即当某个罕见情况出现时),它所携带的信息量超过了任何一个很可能发生的事情。

我们称事件x的自信息量I(x)定义为:
I(x) = -\log P(x)
其中P(x)表示事件x发生的概率。通常情况下,在自然对数e作为底时,单位被称为奈特;而当选择2作为对数底时,则采用比特作为单位。

自信息仅适用于单独事件;而香农熵则可系统地衡量整个概率空间中的不确定度总量。
H(x) = E_{x-p}[I(x)] = -E_{x-p}[\log P(x)]
(补充说明:期望值可视为加权平均值的一种计算方式,请参阅《机器学习中的概率知识》)

对于离散分布而言:

H(x) = E_{x-p}[I(x)] = -E_{x-p}[\log P(x)] = H§=-\sum_xp(x)* \log p(x)

2、交叉熵、相对熵(KL散度)

针对样本分布p的信息熵H§,我们估计的分布q对应的熵值为H(p,q),两者的差值即为交叉熵。在机器学习中通常被用作损失函数,在两个分布完全一致时该值达到最小值零。对于固定的数据集而言,H§保持不变,因此我们只需要优化H(p,q)=-\sum_ip(i)\cdot\log q(i)这一表达式即可。这正是逻辑回归方法中的损失函数形式。

链接:https://www.zhihu.com/question/41252833/answer/108777563

基于样本集的两个概率模型p与q中存在差异性特征,在统计学领域我们通常将这种差异性特征量化的指标即信息论中的交叉熵(cross-entropy measure)。其中称其为真实分布在数据科学应用中具有核心地位。计算基于真实分布在信息编码方面的理论基础即信息熵(entropy)概念。具体而言对于一个给定的概率空间X其概率质量函数P(x)对应的熵定义如下:H(P)=−∑_xP(x)\log P(x)这一指标衡量的是从数据集中提取信息所需的平均码长或者说是对随机变量取值预测所需的最小二进制位数等价地说它反映了数据集内部的信息不确定性程度。

在机器学习领域中,在机器学习中... p(i) 通常表示真实数据分布;而 q(i) 则代表由模型推导出的概率分布。交叉熵被普遍采用作损失函数来衡量这两个概率分布之间的差异。

考虑一个包含四个符号A、B、C、D的数据集,在其中符号A与B的概率各为二分之一(即p(A)=p(B)=1/2),而符号C与D的概率均为零(p(C)=p(D)=0)。该数据集的熵值H(P)等于1比特(bit),因此仅需一位二进制编码即可区分符号A与B。若采用均匀分布Q进行编码,则计算得其熵值H(P,Q)=2比特(此处假设虽然真实分布P中C与D出现概率为零(p(C)=p(D)=0),但为了完整性起见我们仍需考虑这些符号的情况)。

可以看出上例中基于非真实概率分布q所得出的平均编码长度H(p,q)高于基于真实概率分布p计算得出的平均编码长度H§. 实际上根据吉布斯不等式Gibbs’ inequality可知
H(p,q)>=H(p)
这一结论始终成立当且仅当q等于真实概率分布p时等号成立我们将基于q计算所得的平均编码长度与基于p计算所得的结果之间的差额所包含的信息量定义为相对熵 亦即著名的KL散度 (Kullback–Leibler divergence, KLD). 其具体表达式为
D(p||q)=H(p,q)-H(p)=E_{i-p}[\log p(i) - \log q(i)] = \sum_i p(i)*\log p(i) - \sum_i p(i)* \log q(i)
它量化了两个概率分布之间的差异程度: 越大差异则对应的KL散度值越高反之则反之特别地当两者完全一致时其KL散度将等于零值得注意的是,KL散度具有不对称性.

例如,在信息检索领域中

交叉熵可被广泛应用于神经网络(机器学习)领域作为损失函数。其中,p代表真实标记的概率分布,q则代表训练后模型预测出来的标记概率分布。通过计算交叉熵损失函数能够量化评估p和q之间的相似程度。此外,交叉熵作为一种损失函数还有另一个优势在于应用sigmoid激活函数时,其在梯度下降过程中的优化效果能够有效缓解均方误差损失函数在梯度下降过程中导致的学习速率过低的问题,这是因为该方法能将学习速率与输出误差直接关联起来。

一般情况下,“相对熵”也可被称为“交叉熵”。由于真实分布p被固定下来了,则D(p||q)的值由H(p,q)来确定。不过在某些情况下,则两者则需分别处理。

该博文转贴了一篇讨论信息熵的文章,在其内容中举例说明了信息熵的具体计算方法时提到,在计算过程中所采用的是以2为底的对数符号log2。

全部评论 (0)

还没有任何评论哟~