相对熵VS交叉熵

随机变量\(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) \]

推导过程:

\[\begin{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)\)

推导过程:

\[\begin{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)\)

推导:

\[\begin{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是模型的预测的概率分布

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

猜你喜欢

转载自www.cnblogs.com/flyangovoyang/p/12794667.html