SuooL's Blog

蛰伏于盛夏 藏华于当春

“熵”不起:从熵、最大熵原理到最大熵模型

引言

“熵”最初是热力学中的一个概念,之前关于决策树算法的部分涉及到一部分熵的知识,上世纪40年代,香农首先在信息论中引入了信息熵的概念。信息熵用来表示不确定度的度量,不确定度越大,熵值越大。极限情况,当一个随机变量均匀分布时,熵值最大;完全确定时,熵值为0。

什么是最大熵原理呢?我们常常讲不要把所有鸡蛋放在一个篮子里,这样可以降低风险,这其实就是最大熵原理的一个朴素说法,因为当我们遇到不确定性时,就要保留各种可能性。在信息处理中,这个原理同样适用。在数学上,这个原理被称为最大熵原理the maximum entropy principle)。同样的,当我们在回答,扔一个色子的时候,每个面朝上的概率分别是多少?所有人都会回答说是$\frac{1}{6}$。这个回答是正确的,但是为什么是$\frac{1}{6}$而不是其他呢?这里就应用到最大熵原理。对这个“一无所知”的色子,假定每一面朝上的概率相同是最保险的做法。从信息论的角度来解释,就是保留了最大的不确定性,也就是让熵达到最大。

最大熵原理指出,当我们需要对一个随机事件的概率分布进行预测的时候,我们的预测应当满足已知的条件,而对未知的情况不做任何主观的假设。在这种情况下,概率分布最均匀,预测的风险最小。因为这时候概率分布的信息熵最大,所以人们称这种模型为“最大熵模型”。

最大熵模型是由最大熵原理推导实现。在这篇文章中的提纲如下:

  1. 预备知识
    • 什么是熵 ( Entropy )
    • 常见的「熵」
    • 贝叶斯定理
    • 拉格朗日乘数
    • 最大似然估计
  2. 最大熵原理
  3. 最大熵模型
  4. 最大熵模型求解
  5. 最大熵模型算法实战
  6. 最大熵模型小结

预备知识

什么是熵

熵的概念最早起源于物理学,用于度量一个热力学系统的无序程度。后由香农引入到信息论中,在信息论和概率统计中,熵用来表示随机变量不确定性的度量。

熵是根据已知的知识进行建模,而对未知的的不作任何假设。熵是对「不确定性」的量度,比较不可能发生的事情,当它发生了,会提供更多的信息。也就是说,当信息源越随机,它的「熵」越大。

这部分其实在前面的文章中有过形象化的说明,这里不再细说。

具体的,随机变量X的熵的表达式如下:

其中$n$代表$X$的$n$种不同的离散取值。而$p_i$代表了$X$取值为$i$的概率,$log$为以2或者$e$为底的对数。当$p_i=0$时,定义$0log0=0$。

连续变量的表达式如下:

或:

常见的熵

联合熵
熟悉了一个变量X的熵,很容易推广到多个变量的联合熵,这里给出两个变量X和Y的联合熵表达式:

条件熵
有了联合熵,又可以得到条件熵的表达式$H(Y|X)$,条件熵类似于条件概率,描述了在已知第二个随机变量 $X$的值的前提下,随机变量 $Y$的信息熵还有多少。。表达式如下:

交叉熵

相对熵与互信息

泡面一杯