熵是信息论非常重要的概念。本文简要介绍一下几个概念:
- 熵
- 联合熵
- 条件熵
- 相对熵
- 交叉熵
熵
随机变量(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是模型的预测的概率分布
结论:当熵不变的时候,最小化相对熵等价于最小化交叉熵。