编程数学之信息论

摘要:信息论(英语:information theory)是应用数学、电机工程学和计算机科学的一个分支,涉及信息的量化、存储和通信等。信息论是由香农发展,用来找出信号处理与通信操作的基本限制,如数据压缩、可靠的存储和数据传输等。自创立以来,它已拓展应用到许多其他领域,包括统计推断、自然语言处理、密码学、神经生物学、进化论和分子编码的功能、生态学的模式选择、热物理、量子计算、语言学、剽窃检测、模式识别、异常检测和其他形式的数据分析。(本文原创,转载必须注明出处.)


信息熵

熵是信息的一个关键度量,通常用一条消息中需要存储或传输一个符号的平均比特数来表示。熵衡量了预测随机变量的值时涉及到的不确定度的量。例如,指定掷硬币的结果(两个等可能的结果)比指定掷骰子的结果(六个等可能的结果)所提供的信息量更少(熵更少)。

1948年,香农引入信息熵,将其定义为离散随机事件的出现概率。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以说,信息熵可以被认为是系统有序化程度的一个度量。


信息度量

信息熵

如果一个随机变量X的可能取值为\( X={ x_1,x_2 ,…..,x_n }\) ,其概率分布为\( P\left( X=x_i \right) =p_i ,i=1,2,…..,n\) ,则随机变量X的熵定义为H(X):

其中 x是定义在 X上的随机变量。信息熵是随机事件不确定性的度量。

例子:若S为一个三个面的骰子,

  • P(面一)=1/5
  • P(面二)=2/5
  • P(面三)=2/5
    计算其信息熵为:

联合熵

两个随机变量X和Y的联合分布可以形成联合熵,定义为联合自信息的数学期望,它是二维随机变量XY的不确定性的度量,用H(X,Y)表示:

条件熵

在随机变量X发生的前提下,随机变量Y发生新带来的熵,定义为Y的条件熵,用H(Y|X)表示:

条件熵用来衡量在已知随机变量X的条件下,随机变量Y的不确定性。

由贝氏定理,我们有\( p(x,y)=p(y|x)p(x)\) ,代入联合熵的定义,可以分离出条件熵,于是得到联合熵与条件熵的关系式:\(
H\left( Y|X \right) =H\left( X,Y\right) -H\left( X \right)\)

推导过程如下:

上式中:

  • 第二行推到第三行的依据是边缘分布P(x)等于联合分布P(x,y)的和;
  • 第三行推到第四行的依据是把公因子logP(x)乘进去,然后把x,y写在一起;
  • 第四行推到第五行的依据是:因为两个sigma都有P(x,y),故提取公因子P(x,y)放到外边,然后把里边的-(log P(x,y) log P(x))写成log (P(x,y) / P(x) ) ;
  • 第五行推到第六行的依据是:P(x,y) = P(x) * P(y|x),故P(x,y) / P(x) = P(y|x)。

相对熵:信息增益

相对熵又称互熵、交叉熵、KL散度、信息增益,是描述两个概率分布P和Q差异的一种方法,记为D(P||Q)。在信息论中,D(P||Q)表示当用概率分布Q来拟合真实分布P时,产生的信息损耗,其中P表示真实分布,Q表示P的拟合分布。

对于一个离散随机变量的两个概率分布P和Q来说,它们的相对熵定义为:

注意:D(P||Q) ≠ D(Q||P)

互信息

两个随机变量X,Y的互信息定义为X,Y的联合分布和各自独立分布乘积的相对熵称为互信息,用I(X,Y)表示。互信息是信息论里一种有用的信息度量方式,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性。互信息是两个事件集合之间的相关性。

互信息、熵和条件熵之间存在以下关系:\( H\left( Y|X \right) =H\left( Y \right) -I\left( X,Y \right)\)

推导过程如下:

通过上面的计算过程发现有:H(Y|X) = H(Y) – I(X,Y),又由前面条件熵的定义有:H(Y|X) = H(X,Y) – H(X),于是有I(X,Y)= H(X) + H(Y) – H(X,Y),此结论被多数文献作为互信息的定义。

最大熵

最大熵原理是概率模型学习的一个准则,它认为:学习概率模型时,在所有可能的概率分布中,熵最大的模型是最好的模型。通常用约束条件来确定模型的集合,所以,最大熵模型原理也可以表述为:在满足约束条件的模型集合中选取熵最大的模型。

前面我们知道,若随机变量X的概率分布是\( P\left( x_i \right)\) ,则其熵定义如下:

熵满足下列不等式:

式中,|X|是X的取值个数,当且仅当X的分布是均匀分布时右边的等号成立。也就是说,当X服从均匀分布时,熵最大。

直观地看,最大熵原理认为:要选择概率模型,首先必须满足已有的事实,即约束条件;在没有更多信息的情况下,那些不确定的部分都是“等可能的”。最大熵原理通过熵的最大化来表示等可能性;“等可能”不易操作,而熵则是一个可优化的指标。


参考文献

  1. Python官网
  2. 中文维基百科
  3. GitHub
  4. 图书:《机器学习实战》
  5. 图书:《自然语言处理理论与实战》

完整代码下载

源码请进【机器学习和自然语言QQ群:436303759】文件下载:自然语言处理和机器学习技术QQ交流

作者声明

本文版权归作者【白宁超】所有,转载请联系作者:1938036263@qq.com,但未经作者同意禁止转载,转载后需在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

 

版权声明:本文为baiboy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/baiboy/p/bcsx.html