条件熵,相对熵,交叉熵,联合熵,信息增益

1 条件熵

1.1 条件熵的定义

X给定的条件下,Y的条件概率分布的熵对X的期望;
条件熵H(Y\mid X)表示在已知随机变量X的条件下随机变量Y的不确定性。

\begin{align*} H(Y\mid X)&=\sum_{x\in X}p(x)H(Y\mid X) \\ &=-\sum_{x\in X}p(x)\sum_{y\in Y}p(y\mid x)\log{p(y\mid x)} \\ &= -\sum_{x\in X}\sum_{y\in Y}p(x,y)\log{p(y\mid x)} \end{align*}

因为条件熵中X也是一个变量,意思是在一个变量X的条件下(变量X的所有值都会取),另一个变量Y熵对X的期望;

1.2 举例说明条件熵

帅? 性格好? 身高? 上进? 嫁?
不好 不上进 不嫁
不帅 上进 不嫁
上进
不帅 爆好 上进
不好 上进 不嫁
不好 上进 不嫁
不上进
不帅 上进
爆好 上进
不帅 不好 上进
不上进 不嫁
不上进 不嫁

Y={嫁,不嫁},统计“嫁”的概率6/12,“不嫁”的概率6/12;
计算Y的熵H(Y)=-1/2\log(1/2)-1/2\log(1/2)=\log(2)

为了引入条件熵,我们现在还有一个变量X,代表长相是“帅”还是“不帅”。
不帅的情况有4个,有1个不愿嫁,3个愿意;
H(Y\mid X=不帅)=-1/4\log(1/4)-3/4\log(3/4)
p(X=不帅)=4/12=1/3

帅的情况有8个,不愿意嫁5个,愿意嫁的为3个;
H(Y\mid X=帅)=-5/8\log(5/8)-3/8\log(3/8)
p(X=帅)=8/12=2/3

H(Y\mid X=长相)=p(X=帅)*H(Y\mid X=帅)+p(X=不帅)*H(Y\mid X=不帅)

>>> -5/8*(np.log2(5)-np.log2(8))-3/8*(np.log2(3)-np.log2(8))
0.6780719051126378

1.3 条件熵的另一种解释

条件熵H(Y\mid X)相当于联合熵H(X,Y),减去单独的熵 H(X),即:
H(Y\mid X)=H(X,Y)-H(X)
证明过程参考[1]

从以上的推导可以看出:H(X,Y)\geq H(X)\geq H(X|Y)

2 相对熵(Relative entropy),也称为KL散度(Kullback-Leibler diver)

如何衡量两个概率分布之间的差异?(相对熵)

定义:
p(x)q(x)是离散随机变量X中取值的两个概率分布,则pq的相对熵是:
D_{KL}(p\|q)=\sum_x{p(x)\log{\frac{p(x)}{q(x)}}}=E_{p(x)}\log{\frac{p(x)}{q(x)}}

  • 如果p(x)q(x)两个分布相同,那么相对熵等于0;
  • D_{KL}(p\|q)\neq D_{KL}(q\|p),相对熵具有不对称性;
  • D_{KL}(p\|q)\geq 0

相对熵可以从来衡量两个概率分布之间的差异,上面公式的意义就是求pq之差在p上的期望;

3 交叉熵(Cross entropy)

用以衡量在给定的真实分布下,使用非真实分布所给定的策略消除系统的不稳定性所付出的努力的大小;

有两个概率分布p(x)q(x),其中p(x)是真实分布,q(x)是非真实分布,如果用真实分布p(x)来衡量一个样本所需要编码长度的期望(平均编码长度)为:
H(P)=\sum_x{p(x)\log{\frac{1}{p(x)}}}
如果使用非真实分布q(x)来表示来自真实分布p(x)的平均编码长度,则是:
H(p,q)=\sum_x{p(x)\log{\frac{1}{q(x)}}}
这就是交叉熵

3.1 H(P)的含义[2]

对于变长编码(如哈夫曼码),必须保证任何编码不是其他编码的前缀,符合这一特性的编码叫做前缀码(prefix codes)
前缀码的意义在于解码简单,但是会带来个问题,就是编码损失(不是所有的组合都可以)。如当前编码为"01",长度L=2,那01开始的其他编码如("010","011")(总长度为3举例)就不能再使用。
损失的长度为1/2^L
所以为了对信息进行最优编码的目的,往往需要对短编码和短编码损失进行权衡;

将短编码带来的损失称为编码代价,通常根据X出现的概率P(X)来分配编码代价,假设X的编码长度为L(X)
\frac{1}{2^{L(x)}}=P(X)\Rightarrow L(X)=\log_2(1/P(X))
平均编码长度则为:
H(p)=\sum_x{p(x)\log_2{\left(\frac{1}{p(x)}\right)}}

3.2 如何理解交叉熵

如现在有另一个序列服从p分布,但是它仍然使用q分布的最优编码方式,那它的平均编码长度即为:
H(p,q)=\sum_x{p(x)\log{\frac{1}{q(x)}}}
上式称为p分布相对q分布的交叉熵,衡量了p分布使用q分布的最优编码方式时的平均编码长度。
交叉熵根据相对熵的公式可以得出:
D_{KL}(p\|q)=H(p,q)-H(p)
D_{KL}(p\|q)\geq 0可以理解为用其他方式的最优编码(q)和自己方式的最优编码(p)之差。

4 联合熵和互信息

定义联合熵如下:
H(X,Y)=\sum_{x,y}{p(x,y)\log_2{\left(\frac{1}{p(x,y)}\right)}}
根据条件熵定义:
H(X,Y)=H(X)+H(Y\mid X)=H(Y)+H(X\mid Y)

定义互信息(Mutual Entropy)如下:
I(X,Y)=H(X)+H(Y)-H(X,Y)
定义差异信息(Variation of Information):
V(X,Y)=H(X,Y)-I(X,Y)

对应关系

信息增益
MI(Y,X)=H(Y)-H(Y\mid X)
MI(X,Y)=H(X)-H(X\mid Y)

信息增益

决策书中信息增益等于互信息。

参考1:通俗理解条件熵
参考2:信息论与机器学习


  1. 证明过程参考《详解机器学习中的熵、条件熵、相对熵和交叉熵》

  2. 参考《信息论与机器学习》

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容