信息熵,交叉熵和相对熵

目录

0.总述

1.信息熵

2.交叉熵

3.相对熵/KL散度(Kullback-Leibler divergence), 亦可称为KL距离

4.举例

5.参考资料


0.总述

现在有两个分布,真实分布p和非真实分布q,我们的样本来自真实分布p。

按照真实分布p来编码样本所需的编码长度的期望为,这就是信息熵H( p )

按照不真实分布q来编码样本所需的编码长度的期望为,这就是所谓的交叉熵H( p,q )

这里引申出KL散度D(p||q) = H(p,q) - H(p) = ,也叫做相对熵

1.信息熵

熵的定义如下:熵是接收的每条消息中包含的信息的平均量,又被称为信息熵、信源熵、平均自信息量。直白地解释就是信息中含的信息量的大小,其定义如下:

其曲线如下所示:

可以看出,一个事件的发生的概率离0.5越近,其熵就越大,概率为0或1就是确定性事件,不能为我们带信息量。也可以看作是一件事我们越难猜测是否会发生,它的信息熵就越大

2.交叉熵

交叉熵的公式定义如下:

其中p(x)在机器学习中为样本label,q(x)为模型的预估,分别代表训练样本和模型的分布

3.相对熵/KL散度(Kullback-Leibler divergence), 亦可称为KL距离

KL散度,也叫做相对熵,它表示两个分布的差异,差异越大,相对熵越大。

D(p||q) = H(p,q) - H(p) 

             

等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵

机器学习中,我们用非真实分布q去预测真实分布p。

因为真实分布p是固定的,H(p), 训练样本的熵,训练样本定,该值即为固定值。D(p||q) = H(p,q) - H(p) 中 H(p) 固定。

也就是说交叉熵H(p,q)越大,相对熵D(p||q)越大,两个分布的差异越大。

由于KL散度中的前一部分−H(y)不变,故在优化过程中,只需要关注交叉熵就可以了。所以一般在机器学习中直接用用交叉熵做loss,评估模型。

4.举例

比如有如下样本, 对应的标签和预测值

* 青蛙 老鼠
Label 0 1 0
Pred 0.3 0.6 0.1

那么 

对应一个batch的loss就是 

m为当前batch的样本数

5.参考资料

https://blog.csdn.net/tsyccnh/article/details/79163834

https://blog.csdn.net/wenzishou/article/details/77618992

https://www.cnblogs.com/liaohuiqiang/p/7673681.html

猜你喜欢

转载自blog.csdn.net/sunflower_sara/article/details/81162964