熵
随机变量\(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是模型的预测的概率分布
结论:当熵不变的时候,最小化相对熵等价于最小化交叉熵。