信息熵与相对熵(KL距离)

25 sec read

信息熵

在信息论中,熵是接收的每条消息中包含的信息的平均量,又被称为信息熵、信源熵、平均自信息量。这里, 消息代表来自分布或数据流中的事件、样本或特征。在信息世界,熵越高,则能传输越多的信息,熵越低,则意味着传输的信息越少。

熵的概念首先在热力学中引入,用于表述热力学第二定律。波尔兹曼研究得到,热力学熵与微观状态数目的对数之间存在联系,并给出了公式:

S={k}\ln{W}

在1948年,克劳德·艾尔伍德·香农将热力学的熵,引入到信息论,因此它又被称为香农熵。一个离散型随机变量 X 的熵 H(X) 定义为:

    \[H(X)=-\sum p(x)\log {p(x)}\]

信息论之父克劳德·香农,总结出了信息熵的三条性质:

  • 单调性,即发生概率越高的事件,其所携带的信息熵越低。极端案例就是“太阳从东方升起”,因为为确定事件,所以不携带任何信息量。从信息论的角度,认为这句话没有消除任何不确定性。
  • 非负性,即信息熵不能为负。这个很好理解,因为负的信息,即你得知了某个信息后,却增加了不确定性是不合逻辑的。
  • 累加性,即多随机事件同时发生存在的总不确定性的量度是可以表示为各事件不确定性的量度的和。

香农从数学上,严格证明了满足上述三个条件的随机变量不确定性度量函数具有唯一形式:

    \[H(X)=-C\sum p(x)\log {p(x)}\]

其中的C为常数,我们将其归一化为 C=1 即得到了信息熵公式。

熵的单位取决于定义用到对数的底。当b = 2,熵的单位是bit;当b = e,熵的单位是nat;而当b = 10,熵的单位是 Hart。

使用信息熵解决数学问题:1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪?

  • 在1000桶水中找一桶水,需要的信息量是-log_2(1/1000)
  • 一头猪所能提供的信息是它在什么时间死,因此能提供的信息量是-log_2(1/5)
    • [不死,15分钟死,30分钟死,45分钟死,60分钟死]共5中情况
  • -log_2(1/1000) <= -log_2(1/5)*x 求x>=4.292即可

相对熵(KL距离)

在概率论或信息论中,KL散度( Kullback–Leibler divergence),又称相对熵(relative entropy),是描述两个概率分布P和Q差异的一种方法。

它是非对称的,这意味着D(P||Q) ≠ D(Q||P)。特别的,在信息论中,D(P||Q)表示当用概率分布Q来拟合真实分布P时,产生的信息损耗,其中P表示真实分布,Q表示P的拟合分布。

有人将KL散度称为KL距离,但事实上,KL散度并不满足距离的概念,因为:

  • KL散度不是对称的;
  • KL散度不满足三角不等式。

设随机变量X有两个概率分布——P(x)和Q(x),K-L散度定义如下:

    \[D(P||Q)=\sum P(x)\log\frac{P(x)}{Q(x)}\]

在一定程度上,熵可以度量两个随机变量的距离。KL散度是两个概率分布P和Q差别的非对称性的度量。 比如,KL散度可以用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数。 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。那么D(P||Q)表示P对Q的相对上,即Q来拟合P时产生的信息损耗。

相对熵(KL散度)有两个主要的性质。如下

  • 尽管KL散度从直观上是个度量或距离函数,但它并不是一个真正的度量或者距离,因为它不具有对称性,即D(P||Q) ≠ D(Q||P)
  • 相对熵的值为非负值,即D(P||Q)≥0

相对熵的应用:相对熵可以衡量两个随机分布之间的距离,当两个随机分布相同时,它们的相对熵为零,当两个随机分布的差别增大时,它们的相对熵也会增大。所以相对熵(KL散度)可以用于比较文本的相似度,先统计出词的频率,然后计算KL散度就行了。

打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

Pandas学习笔记:Excel、CSV文件的读取与导出

在使用Pandas处理数据时,常见的读取数据的方式时从Excel或CSV文件中获取,另外有时也会需要将处理完的数据输出为Excel或CSV文件。今天就一起来学习下Pandas常见的文件读取与导出的方法。
2 min read

Pandas学习笔记之数据类型

Pandas是建立在Numpy上,并与其他第三方库在科学运算环境中有较好兼容性的包。其最大的特色在于提供灵活直观的数据结构来处理关联和有标签的数据。如果从底层视角观察Pandas,可以把它看成增强版的NumPy结构化数据,行列都不再只是简单的整数索引,还可以 ...
1 min read

Excel比较多列并取获最小值或最大值取列名

最近在Excel中分析数据的时候需要要比较多列数据,并返回列中最小值所在列的列名,具体场景如下:
2 sec read

Leave a Reply

Your email address will not be published. Required fields are marked *