信息熵的定义、交叉熵和交叉熵损失、KL散度的说明

熵的定义

  熵的本质是一个系统“内在的混乱程度”。
  从这个概念上来说,一个系统越混乱,不确定度,熵值越大。
  假设随机变量 X X X n n n个取值 x 1 , x 2 , . . . , x n x_1, x_2,..., x_n x1,x2,...,xn,概率分别为 P 1 , P 2 , . . . , P n P_1,P_2,...,P_n P1,P2,...,Pn
  衡量不确定性的函数需要具有可加性以及随概率 P P P增加而减小(概率越小,不确定性越大),故使用 − l o g P -logP logP
  对于随机变量的不确定度,就是各个取值的不确定性按照概率加权求和。
   H ( X ) = − ∑ i = 1 n P i l o g 2 ( P i ) H(X)=-\sum_{i=1}^{n}P_{i}log_2(P_i) H(X)=i=1nPilog2(Pi)
  函数的具体解释也可以通过平均最小编码长度来解释。
   − l o g 2 P -log_2P log2P为编码长度,熵为平均最小编码长度。

交叉熵和交叉熵损失

交叉熵

   H ( p , q ) = − ∑ i = 1 n P i l o g Q i H(p,q)=-\sum_{i=1}^{n}P_ilogQ_i H(p,q)=i=1nPilogQi
  把 p p p q q q看成关于 x x x的函数。
   H ( p , q ) = − ∑ p ( x ) l o g q ( x ) H(p,q)=-\sum p(x)logq(x) H(p,q)=p(x)logq(x)
  将Q理解为预测的概率分布,P理解为真实的概率分布。
  那么交叉熵就是用预测的概率分布进行最小长度编码,所得到的真实分布下的编码长度。
  这个用预测的概率分布进行的编码一定不如真实的最小长度编码,所以 H ( p , q ) ≥ H ( p ) H(p,q)\geq H(p) H(p,q)H(p)
  只有当 p = q p=q p=q时熵与交叉熵相等。
  一般来说, p p p q q q差距越大,交叉熵越大。所以可以降低交叉熵,使预测概率分布接近真实分布。

交叉熵损失

  交叉熵损失为nll取下标的结果先softmax后取对数,并加负号。 − l o g ( s o f t m a x ( n l l ( X ) ) ) -log(softmax(nll(X))) log(softmax(nll(X)))
  softmax首先得到一个类似概率的结果,取值 ( 0 , 1 ) (0,1) (0,1),然后取对数为一个负值结果,在加上符号得到一个正的损失值。
  可以看做是针对于特定样本的交叉熵,即样本为 X X X,只有此项 p ( x ) p(x) p(x)为1,其余为0,取的也是对应 q ( x ) q(x) q(x)的结果 s o f t m a x ( n l l ( X ) ) softmax(nll(X)) softmax(nll(X))
  同时,有多个样本时,会进行一个取平均操作,就可以看做是针对这一批样本分布的交叉熵。
  具体训练时Batch Size的选择可以看看这篇文章Batch Size对神经网络训练的影响

KL散度

   D K L ( p ∣ ∣ q ) = ∑ i = 1 n P i l o g P i Q i D_{KL}(p||q)=\sum_{i=1}^{n}P_ilog\frac{P_i}{Q_i} DKL(p∣∣q)=i=1nPilogQiPi
  把 p p p q q q看成关于 x x x的函数。
   D K L ( p ∣ ∣ q ) = ∑ p ( x ) l o g p ( x ) q ( x ) D_{KL}(p||q)=\sum p(x)log\frac{p(x)}{q(x)} DKL(p∣∣q)=p(x)logq(x)p(x)
  往下推导:
   D K L ( p ∣ ∣ q ) = ∑ p ( x ) l o g p ( x ) q ( x ) = H ( p , q ) − H ( p ) D_{KL}(p||q)=\sum p(x)log\frac{p(x)}{q(x)}=H(p,q)-H(p) DKL(p∣∣q)=p(x)logq(x)p(x)=H(p,q)H(p)
  将Q理解为预测的概率分布,P理解为真实的概率分布。
  那么KL散度就是用预测的概率分布进行最小长度编码所得到的真实分布下的编码长度与实际的最小编码长度之差。
  即KL散度为交叉熵和熵的差,KL散度与交叉熵只相隔一个常量H§。
  所以,p与q差距越大,KL散度越大。当 p = q p=q p=q时,KL散度为0。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bit_lin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值