一文搞懂各种“熵”

熵是信息论非常重要的概念。本文简要介绍一下几个概念:

  • 联合熵
  • 条件熵
  • 相对熵
  • 交叉熵

随机变量(X)的分布的熵为:

[H(X) = - sum_x p(x)log p(x) ]

性质:

  • 熵是随机变量不确定性的度量,随机变量的取值个数越多,不确定性越大,混乱程度就越大,信息熵越大。
  • 熵的取值范围为(0 leq H(X) leq log (n))(n)表示取值的个数,当随机分布为均匀分布时,熵取到最大值
  • 在信息传输方面,熵是传输一个随机变量状态值所需的比特位下界(最短平均编码长度)

联合熵

[H(X, Y) = - sum_x sum_y p(x, y)log p(x, y) ]

条件熵

[H(Y|X) = - sum_{x, y}p(x, y)log p(y|x) ]

推导过程:

[egin{aligned} H(Y|X) & = - sum_x p(x)H(Y|X=x)\ & = - sum_x p(x) sum_y p(y|x) log p(y|x)\ & = - sum_x sum_y p(x, y) log p(y|x)\ & = - sum_{x, y}p(x, y)log p(y|x) end{aligned} ]

性质:(H(X, Y) = H(Y|X) + H(X))

推导过程:

[egin{aligned} H(X, Y) & = - sum_x sum_y p(x, y)log p(x, y)\ & = - sum_x sum_y p(x, y) [log p(y|x) + log p(x)]\ & = - sum_x sum_y p(x, y) log p(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 [log p(x)] p(x)\ & = H(Y|X) + H(X) end{aligned} ]

其中(sum_y p(x, y))就是边缘概率。

相对熵(relative entropy)

相对熵也称KL散度(KL divergence),衡量的是两个概率分布之间的差异。

[D_{KL}(p, q) = sum_x p(x) log frac{p(x)}{q(x)} ]

性质:

  • 相对熵不具有对称性
  • 相对熵的取值是大于等于0
  • 如果p和q两个概率分布相同,相对熵为0
  • 可以把相对熵看成一个加权平均,其中概率(p(x))为权重,对每个(p(x))计算一个值(p(x)/q(x))

交叉熵(cross entropy)

[H(p, q) = - sum_x p(x) log q(x) ]

性质:(D_{KL}(p, q) = H(p, q) - H(p))

推导:

[egin{aligned} H(p, q) - H(p) & = - sum_x p(x) log q(x) + sum_x p(x) log p(x)\ & = sum_x p(x) log frac{p(x)}{q(x)}\ & = D_{KL}(p, q) end{aligned} ]

重头戏来了:

为什么使用交叉熵而不是相对熵来作为损失函数?

交叉熵和相对熵都是非负的,都不是对称的。

  • 从信息学角度,熵是对随机变量进行编码所需的最小字节数
  • KL散度表示如果用B表示A所需要的额外编码长度
  • 交叉熵表示用B表示A所需要的平均编码长度。

相对熵 = 交叉熵 - 熵

(D_{KL}(p||q) = H(p, q) - H(p))

真实数据分布p是保持不变的

q是模型的预测的概率分布

结论:当熵不变的时候,最小化相对熵等价于最小化交叉熵。

原文地址:https://www.cnblogs.com/YoungF/p/12794667.html