信息熵,条件熵,相对熵,交叉熵

转自详解机器学习中的熵、条件熵、相对熵和交叉熵

信息是一个很抽象的概念,百度百科中的定义:

信息是指音讯、消息、通讯系统传输和处理的对象,泛指人类社会传播的一切内容

那信息可以被量化么?可以的!香农提出的信息熵解决了这一问题。

当我们需要搞清楚一件非常不确定的事,或者一无所知的事,就需要了解大量的信息。相反,如果我们对某件事已经有了较多的了解,我们就不需要太多的信息就能把它搞清楚。

信息量的度量等于不确定性的多少,不确定性越大,信息量越大。而不确定性的多少与概率有关

自信息

考虑一个离散的随机变量,随机变量的某个取值为, 被称为 的自信息 (selfinformation), 描述的是随机变量的某个事件发生所带来的信息量

其中,负号是用来保证信息量是正数或者零。 函数基的选择是任意的,信息论中基常常选择为 2,因此信息的单位为比特bits; 而机器学习中基常常选择为自然常数, 因此单位常常被称为奈特nats。

图像如图:

在这里插入图片描述

信息熵

定义

现在假设想传送一个随机变量的值给接收者,传输的平均信息量可以通过求 关于概率分布 的期望得到,即:

就被称为随机变量的信息熵,它是表示随机变量不确定的度量,是对所有可能发生的事件产生的信息量的期望。

注意:熵只依赖于随机变量的分布,与随机变量取值无关,所以也可以将的熵记作

性质

(1)非均匀分布比均匀分布的熵要小

考虑一个随机变量,这个随机变量有4种可能的状态,每个状态都是等可能的。为了把传给接收者,需要传输2比特的消息。

若四种状态的概率为

对比可以看出,非均匀分布比均匀分布的熵要小。

(2)随机变量的熵和最短编码长度相等

若四种状态的概率为 。

为了用更短的编码来传递信息,可以使用下面的编码串 (哈夫曼编码) : 0、10、110、111来表示状态 。传输的编码的平均长度就是:

这个值与上方的随机变量的熵相等。熵和最短编码长度相等是一种普遍的情形。

条件熵

条件熵表示在已知随机变量的条件下随机变量 的不确定性。

\begin{aligned}H(Y|X) &=\sum_{x} p(x) H(Y|X=x) \\ &=-\sum_{x} p(x) \sum_{y} p(y|x) \operatorname{logp}(y|x) \\ &=-\sum_{x} \sum_{y} p(x, y) \log p(y|x) \\ &=-\sum_{x, y} p(x, y) \log p(y \mid x)\end{aligned}

当已知这个信息量的时候, 剩下的信息量就是条件熵:。证明如下:

\begin{aligned} H(X, Y) &=-\sum_{x, y} p(x, y) \log p(x, y) \\ &=-\sum_{x, y} p(x, y) \log (p(y | x) p(x)) \\ &=-\sum_{x, y} p(x, y) \log p(y|x)-\sum_{x, y} p(x, y) \log p(x) \\ &=H(Y|X)-\sum_{x, y} p(x, y) \log p(x) \\ &=H(Y|X)-\sum_{x} \sum_{y} p(x, y) \log p(x) \\ &=H(Y|X)-\sum_{x} \log p(x) \sum_{y} p(x, y) \\ &=H(Y|X)-\sum_{x} p(x) \log p(x) \\ &=H(Y|X)+H(X) \end{aligned}

相对熵

又称KL散度,可以用来衡量两个概率分布之间的差异, 下面公式的意义就是求与之间的对数差在上的期望值。

设 是离散随机变量中取值的两个概率分布, 则 对 的相对熵是:

性质:
1、如果 和 两个分布相同, 那么相对熵等于0

  1. ,相对熵不具有对称性。

证明如下 (利用Jensen不等式) :

\begin{aligned}D_{K L}(p \| q) &=\sum_{x} p(x) \log \frac{p(x)}{q(x)} \\ &=-\sum_{x} p(x) \log \frac{q(x)}{p(x)} \\ &=-E_{p(x)}\left(\log \frac{q(x)}{p(x)}\right) \\ & \geq-\log E_{p(x)}\left(\frac{q(x)}{p(x)}\right) \\ &=-\log \sum_{x} p(x) \frac{q(x)}{p(x)} \\ &=-\log \sum_{x} q(x) \end{aligned}

因为,,所以,

交叉熵

随机变量的两个概率分布,为真实分布, 非真实分布。

真实分布的信息熵(平均编码长度):

若用非真实分布来表示真实分布 的信息熵(平均编码长度),则是:

因为编码的样本来自于分布, 所以中的概率是。 称为交叉熵.

简化一下相对熵的公式:

即是:

用非真实分布得到的平均码长比真实分布得到的平均码长多出的比特数就是相对熵

(1)因为,所以,当 时取等号, 此时交叉熵等于信息熵
(2)当 为常量时 (机器学习中训练数据分布是固定的,为常量),最小化相对熵 等价于最小化交叉熵 ,也等价于最大化似然估计。

总结

(1)信息熵是传输一个随机变量状态值所需的比特位下界(最短平均编码长度)
(2)相对熵是指用分布来表示分布额外需要的编码长度
(3)交叉熵是指用分布 来表示分布 的平均编码长度

你可能感兴趣的:(信息熵,条件熵,相对熵,交叉熵)