熵,相对熵

1 信息熵的抽象定义

熵的概念最早由统计热力学引入。

信息熵是由信息论之父香农提出来的,它用于随机变量的不确定性度量,先上信息熵的公式。

信息是用来减少随机不确定性的东西(即不确定性的减少)。

我们可以用log ( 1/P )来衡量不确定性。P是一件事情发生的概率,概率越大,不确定性越小。

可以看到信息熵的公式,其实就是log ( 1/P )的期望,就是不确定性的期望,它代表了一个系统的不确定性,信息熵越大,不确定性越大

注意这个公式有个默认前提,就是X分布下的随机变量x彼此之间相互独立。还有log的底默认为2,实际上底是多少都可以,但是在信息论中我们经常讨论的是二进制和比特,所以用2。

信息熵在联合概率分布的自然推广,就得到了联合熵


当X, Y相互独立时,H(X, Y) = H(X) + H(Y)

当X和Y不独立时,可以用 I(X, Y) = H(X) + H(Y) - H(X, Y) 衡量两个分布的相关性,这个定义比较少用到。

2 信息熵的实例解释

举个例子说明信息熵的作用。

例子是知乎上看来的,我觉得讲的挺好的。

比如赌马比赛,有4匹马{ A, B, C, D},获胜概率分别为{ 1/2, 1/4, 1/8, 1/8 },将哪一匹马获胜视为随机变量X属于 { A, B, C, D } 。

假定我们需要用尽可能少的二元问题来确定随机变量 X 的取值。

例如,问题1:A获胜了吗? 问题2:B获胜了吗? 问题3:C获胜了吗?

最后我们可以通过最多3个二元问题,来确定取值。

如果X = A,那么需要问1次(问题1:是不是A?),概率为1/2 

如果X = B,那么需要问2次(问题1:是不是A?问题2:是不是B?),概率为1/4 

如果X = C,那么需要问3次(问题1,问题2,问题3),概率为1/8 

如果X = D,那么需要问3次(问题1,问题2,问题3),概率为1/8 

 

那么为确定X取值的二元问题的数量为

 

回到信息熵的定义,会发现通过之前的信息熵公式,神奇地得到了:

 

在二进制计算机中,一个比特为0或1,其实就代表了一个二元问题的回答。也就是说,在计算机中,我们给哪一匹马夺冠这个事件进行编码,所需要的平均码长为1.75个比特。

很显然,为了尽可能减少码长,我们要给发生概率 p(x) 较大的事件,分配较短的码长 l(x)。这个问题深入讨论,可以得出霍夫曼编码的概念。

 

霍夫曼编码就是利用了这种大概率事件分配短码的思想,而且可以证明这种编码方式是最优的。我们可以证明上述现象:

  • 为了获得信息熵为 H(X) 的随机变量 X 的一个样本,平均需要抛掷均匀硬币(或二元问题) H(X) 次(参考猜赛马问题的案例)
  • 信息熵是数据压缩的一个临界值(参考码长部分的案例)

所以,信息熵H(X)可以看做,对X中的样本进行编码所需要的编码长度的期望值。

3 交叉熵和KL散度

上一节说了信息熵H(X)可以看做,对X中的样本进行编码所需要的编码长度的期望值。

这里可以引申出交叉熵的理解,现在有两个分布,真实分布p和非真实分布q,我们的样本来自真实分布p。

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

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

这里引申出KL散度D(p||q) = H(p,q) - H(p),也叫做相对熵,它表示两个分布的差异,差异越大,相对熵越大

 

机器学习中,我们用非真实分布q去预测真实分布p,因为真实分布p是固定的,D(p||q) = H(p,q) - H(p) 中 H(p) 固定,也就是说交叉熵H(p,q)越大,相对熵D(p||q)越大,两个分布的差异越大。

所以交叉熵用来做损失函数就是这个道理,它衡量了真实分布和预测分布的差异性。 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值