信息熵、相对熵和交叉熵

信息熵、相对熵和交叉熵,第1张

此文章为了解交叉熵的小记,具体详细讲解可移至文末处参考文章

信息熵

信息的本质:信息是用来消除随机不确定性的东西;

信息量的大小与信息发生的概率成反比。


概率越大,信息量越小。


概率越小,信息量越大。


某一事件发生的概率为P(x),其信息量I(x)为:
I ( x ) = − l o g ( P ( x ) ) I(x) = -log(P(x)) I(x)=log(P(x))
信息熵用来表示所有信息量的期望,其公式表示为
H ( x ) = − ∑ i = 1 n P ( x i ) l o g ( P ( x i ) ) ) ( X = x 1 , x 2 , x 3 . . . , x n ) H(x) = -\sum_{i=1}^nP(x_i)log(P(x_i)))\quad (X = x_1,x_2,x_3...,x_n) H(x)=i=1nP(xi)log(P(xi)))(X=x1,x2,x3...,xn)
其中X为离散型随机变量。


相对熵

针对一个随机变量拥有两个单独的概率分布P(x)和Q(x),利用KL散度(相对熵)来衡量两个概率分布的差异。


相对熵的计算公式为:
D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) D_{KL}(p||q) = \sum_{i=1}^np(x_i)log\left (\frac{p(x_i)}{q(x_i)}\right) DKL(pq)=i=1np(xi)log(q(xi)p(xi))
P(x)为真实分布,Q(x)为模型所预测的分布

KL散度越小,表示P(x)与Q(x)的分布更加接近,通过反复训练Q(x)使得Q(x)的分布逼近P(x)

交叉熵

KL散度的公式可做下列分解

D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) = − H ( p ( x ) ) + [ − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) ] D_{KL}(p||q) = \sum_{i=1}^np(x_i)log\left(\frac{p(x_i)}{q(x_i)}\right) \=\sum_{i=1}^np(x_i)log(p(x_i))-\sum_{i=1}^np(x_i)log(q(x_i)) \=-H(p(x))+\left[-\sum_{i=1}^np(x_i)log(q(x_i))\right] DKL(pq)=i=1np(xi)log(q(xi)p(xi))=i=1np(xi)log(p(xi))i=1np(xi)log(q(xi))=H(p(x))+[i=1np(xi)log(q(xi))]

中括号中的式子为交叉熵,KL散度 = 交叉熵-信息熵

交叉熵公式为:
H ( p , q ) = − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) H(p,q) = -\sum_{i=1}^np(x_i)log(q(x_i)) H(p,q)=i=1np(xi)log(q(xi))
在机器学习训练网络时,输入数据与标签常常已经确定,那么真实概率分布P ( x )也就确定下来了,所以信息熵在这里就是一个常量。


由于KL散度的值表示真实概率分布P ( x ) 与预测概率分布Q ( x ) 之间的差异,值越小表示预测的结果越好,所以需要最小化KL散度,而交叉熵等于KL散度加上一个常量(信息熵),且公式相比KL散度更加容易计算,所以在机器学习中常常使用交叉熵损失函数来计算loss就行了。


总结:

  • 交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异。


    交叉熵的值越小,模型预测效果就越好。


  • 交叉熵在分类问题中常常与softmax是标配,softmax将输出的结果进行处理,使其多个分类的预测值和为1,再通过交叉熵来计算损失。


参考文章

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/580198.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存