kl散度的理解_PR Ⅴ: 熵、KL散度、交叉熵、JS散度及python实现

9825034ccea94539644e0444b6d083d2.png

PR Ⅴ & 信息论 Ⅰ:熵、KL散度、交叉熵、JS散度及python实现

首先以离散分布为主开启这个系列的文章,因此文中的概率符号是离散分布所使用的大写的概率质量函数

1 信息量

我们吃瓜的时候经常会感叹信息量很大,这说明肯定是越不寻常的事情信息量越大,如果只是“太阳东起西落”肯定不会引起吃瓜群众的关注。

花书中给出了信息量化的准则如下:

528ac20c067b306f5d4207bc410b1d9f.png

那么,一个事件

(注意区分这两个x)的
自信息为:

log 一般指自然对数,底数为e。很明显,事件发生的概率越大,越习以为常,负对数的自信息越小。这复合我们吃瓜时的心态。

2 熵 Entropy

熵在信息论里是对信息量的度量,在物理学与热力学中是对混乱度的度量,二者并不矛盾。

香农熵给出了事件所属的整个分布的不确定性总量量化:

意味着遵循这个分布的事件,所产生的期望信息总量。通常这也意味着对此概率分布进行编码所需的最小比特(bit, 使用2为底的对数)或奈特数(nats, 使用e为底的对数)。

特性:

  • 接近均匀分布的概率分布具有较高的熵
  • 接近确定性的分布 (输出几 乎可以确定) 具有较低的熵

3 相对熵 (KL散度)

对于同一个随机变量 x,我们有两个分布 p(x), q(x),可以使用KL散度来度量两个分布之间的差异(注意:这里是Q相对于P的分布):

特性:

  • 非负性:
    ,当且仅当两个分布相同
  • 不对称性:

5e0bef9635e429e69c75a34970394864.png

3.1 离散分布的KL散度python实现

import 

4 交叉熵

由于

与 Q 无关,所以最小化Q与P之间的交叉熵,就等价于最小化KL散度。

4.1 离散分布的交叉熵python实现

import 

5 JS散度

与KL类似,JS散度也是度量两个分布的相似性,越相似,JS散度越小。

特性:

  • JS散度的取值在0-1之间,完全相同为0
  • JS散度是对称的

5.1 离散分布的JS散度python实现

import 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值