信息熵的计算与理解
郝伟 2022/02/015

简介

在系统中,所有的情况可以表示成 X={x1,x2,...}\mathbf{X}=\{x_1, x_2, ...\}。比如,

在这些示例中,每种情况都可以对应公式中的一个 xx

概率

每种情况发生的几率是不一样的使用 pi=p(xi)p_i=p(x_i) 表示,比如

  1. 抛硬币, p(正面)=P(反面)=50%p(正面)=P(反面)=50\%
  2. 扔色子, p(点数为1)=p(点数为2)=...=p(点数为6)=16p(点数为1)=p(点数为2)=...=p(点数为6)=\frac{1}{6}
  3. 抽扑克牌,p(红心A)=p(红心2)=...p(小王)=p(大王)=154p(红心A)=p(红心2)=...p(小王) = p(大王)=\frac{1}{54}
  4. 天气情况, 以上三种是等概率,这里就可能不是等概率,比如 p(晴天)=80%,p(阴天)=10%,p()=5%,p()=4%,p(其他)=1%p(晴天)=80\%, p(阴天)=10\%,p(雨)=5\%, p(雪)=4\%, p(其他)=1\%

熵的本质就是描述一个封闭系统的混乱程度,越混乱熵越高,反之熵越低。具体可以看下面这样一个示例:

整个系统初始状态是是相对有序的,熵最低。随着时间的发展,最后变成为无序,此时熵最高。
根据实际情况得到的经验:整个宇宙都是在向着更混乱的方向发展的,即整个宇宙的熵是在不断增加的,这也就是热力学第二定律所表达的熵增定律。 使用香农的信息熵定律,可以表示为以下公式:

H(X)=i=1np(xi)log2p(xi)\mathrm{H}(\mathbf{X}) = - \sum_{i=1}^n p(x_i)·\mathrm{log}_2 p(x_i)

也就是说,整个系统的熵,可以是所有事件出现几率和此几率的对数的负数的总和。让我们再进一步分析一下,某事件的的发生的几率越小,即p(xi)p(x_i)的值越小,那么其信息量越大,即 log2p(xi)-\mathrm{log}_2p(x_i) 的值越大,此事件的熵为 p(xi)log2p(xi)p(x_i) * -\mathrm{log}_2p(x_i),由于几率是下降的,而信息量又是上升的,所以我们无法直接看出其变化情况。于是笔者以0.01为间隔,统计了 [0, 0.01, 0.02, …, 0.99, 1]这101个几率的信息熵,如下图所示 :

如上图所示,可见在几率0.35左右熵达到最大值。

引用

最大熵模型
是在熵的概念上建立起来的,熵的定义最早来源于物理学科的热力学,用来表述物质在分子状态下的不确定程度。熵有好几种分类,最常用的是香农提出的信息熵,人工智能算法中提到熵也都是“香农信息熵”,如式(2)所示。 H (X ) = -åx p(x)log p(x) = -åi = 1 n p(xi)log p( xi) (2)其中,x 表示随机变量,p(x)表示 x 的概率分布,概率分布的不确定性越大,熵的值就越大。最大熵模型就是要取这个最大的熵值,做法就是假定概率分布都是均值。比如一个骰子有六面,每次抛投 1-6 朝上的概率都是六分之一;但如果对骰子做了手脚比如往里面加了铅,就会改变均值概率。在实际生活中,很多随机变量都和“做了手脚的骰子”一样并不是均值分布,会受到各种因素的影响。最大熵模型就是忽略掉这些未知的影响因素,假定均值分布,然后就能得出最大熵值。投资中的“不把鸡蛋放在一个篮子里面”也是运用了最大熵原理。最大熵模型已经成功运用于自然语言处理领域,如机器翻译、词性标注、分词、文本分类等。

参考资料

[1] 能否尽量通俗地解释什么叫做熵? https://www.zhihu.com/question/24053383