#熵/KL散度 #熵/交叉熵 #熵/信息熵
香农熵,交叉熵和KL散度 视频
熵(Entropy)
熵这个概念在信息表示中就是“信息含量”,有时候我们常会说“这句话信息含量好多啊”,这也是一种熵的体现。对于一个事件来说,熵越大,也就是信息含量越大,其能实现的可能性越小,反之则亦然。
信息量
假设 X 是一个离散随机变量,则概率分布可表示为 $P(X=x)$ ,其中所含的信息量可表示为
$$I(x)=-logP(x)tag{1}$$
信息熵
当一个事件发生的概率为 P(x) ,那么根据公式(1)可以得知其信息量为 -logP(x) ,那么如果我们把这个事件的所有可能性罗列出来,就可以求得该事件信息量的期望。
假设事件 X 有 n 种可能性,其中 $x{i}$ 的发生概率为 $P(x{i})$,那么该事件的熵 H(X) 为:
$$H(X)=-sum{i=1}^{n}P(x{i})logP(x_{i})tag{2}$$
KL散度(相对熵)
KL散度是衡量两个事件/分布之间的不同。假设一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x) ,那么如何计算这两个分布的区别,我们一般使用KL散度用于计算两个分布之间的不同。看名字似乎跟计算两个点之间的距离也很像,但实则不然,因为KL散度不具备有对称性。在距离上的不对称性就是 $distance(Prightarrow Q) neq distance(Q rightarrow P)$ 。
在我们的实际模型应用中,经常就是一个表示样本的真实分布,另一个表示模型的预测分布。我们常采用的就是这两个东西计算$loss$值,也就是衡量预测的分布与真实分布之间的差异性,然后利用梯度下降的思想来最小化二者间的差异。
对于一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x) ,其 KL散度 为
$$D{KL}(P||Q)=sum{i=1}^{n}P(x{i})log(frac {P(x{i})}{Q(x_{i})})tag{3}$$
观察公式可以看出, $Q(x{i})$ 越接近 $P(x{i})$ ,KL散度就越小,即loss越小。由于对数函数是凸函数,所以KL散度的值为非负数。 ^17f179
交叉熵(Cross Entropy)
对于KL散度的公式,我们可以进行以下的变形:
$$D{KL}(P||Q)=sum{i=1}^{n}P(x{i})log(frac {P(x{i})}{Q(x{i})})= sum{i=1}^{n}P(x{i})logP(x{i})-sum{i=1}^{n}P(x{i})logQ(x_{i})tag{4}$$
观察上式,可以看出,前半式表示的是 $P(x_{i})$ 的熵,那么可得
$$D{KL}(P||Q)=-H(P(x{i})) -sum{i=1}^{n}P(x{i})logQ(x_{i})tag{5}$$
熟悉交叉熵的小伙伴就可以看出,等式的后半部分表示的就是交叉熵
$$H(P,Q)=-sum{i=1}^{n}P(x{i})logQ(x_{i})tag{6}$$
由式(5)可以看出,如果 $P(x{i})$ 的熵 -$H(P(x{i}))$ 为常数,则KL散度与交叉熵是等价的。
! 最终可以得到
KL散度=交叉熵-信息熵