原文:https://www.zybuluo.com/frank-shaw/note/108124

信息熵

信息是个很抽象的概念。人们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少。比如一本五十万字的中文书到底有多少信息量。直到1948年,香农提出了“信息熵”的概念,才解决了对信息的量化度量问题。(百度百科)

香农定义的信息熵的计算公式如下:

H(X)=−∑p(xi)log(p(xi))    (i=1,2,…,n)

其中X 表示的是随机变量,随机变量的取值为(x1,x2,…,xn) ,p({x_i}) 表示事件xi发生的概率,且有∑p(xi)=1 。信息熵的单位为bit。 
说实在的,在听课的时候对这个概念一直是懵懵懂懂的,一直跨不过去。现在查找一些资料,希望能够通过笔记让自己清楚该概念。首先的疑问就是:为什么这样表达? 
首先定义事件xi的信息量为其发生概率对数的负数,记为I(x_i),有:

I(xi)=−logp(xi)

有了该定义,可以发现信息熵H(X)即为随机变量X的平均信息量(期望)。那么疑问就变成:为什么−logp(xi)可以表示为事件xi的信息量?

其实这挺好理解:事件xi的信息量大小和它发生的概率(不确定性)有直接的关系。比如说,要搞清楚一件非常不确定的事,或是一无所知的事情,就需要了解大量的信息。相反,如果对某件事已经有较多了解,我们不需要太多的信息就能把它搞清楚。即信息量函数应该与事件概率成单调递减关系。同时,两个独立事件xi,xj(满足p(xi,xj)=p(xi)∗p(xj))的信息量大小应等于各自信息量之和。那么同时符合以上要求的是I(xi)=−logp(xi)。 
在香农1948年的论文《A Mathematical Theory of Communication》中,他通过论证信息熵函数需要满足的多条性质,推导出信息熵公式的唯一性。有兴趣的可以看看。

为了更好的理解,我们举例说明:

随机变量为均匀分布

在《数学之美》中的例子:假如我错过了看世界杯,赛后我问一个知道决赛结果的观众“哪支球队是冠军?”他不愿意直接告诉我,而是让我猜,每猜一次需要1bit,他的回答是以下2个中的一个:是,否。假设我对这32支球队一无所知,即我认为每支球队获得冠军的概率是相等的,那么我至少需要付多少bit给他才能知道谁是冠军? 
我把球队编号为1到32,然后使用折半查找法的原理(如:”冠军队在1-16吗?”)每一次就可以减少一半的队伍,这样只需要5次,就能够知道冠军球队。也就是说,谁是世界杯冠军这条信息的信息量只值5bit。代入计算公式,在这种情况下(等概率假设)得到的信息熵即为5bit。

课堂上,邹博老师给出的一个例子:

有五个硬币,四个等重,另外一个是假币所以质量相比其他4个要轻。我事先不知道关于任何硬币的信息(即认为每一个硬币是假币的概率都是1/5)。这个例子和之前的猜球队冠军有一些相似,我也是需要经过询问才能得到答案,且每问一次需要付1bit。但不同之处在于,现在我可以询问的对象变成了天平,天平每一次能够比较两堆硬币,且能够给出3个结果中的一个:左边比右边重,右边比左边重,两边同样重。问我至少需要付多少bit就能够确保知道哪个是假币?

我们通过自己的计算可知道,如果幸运的话我只需要1bit就能够把假币测出来(天平左右各两个硬币,结果等重,那么假币即为天平外的一个),但是通常情况下需要2bit才能知道假币。这个时候,会发现不能够按照之前的预测世界杯冠军的方式来计算信息熵了(按照之前的方法直接计算得到log25>2),毕竟之前问观众只能给出2种结果,现在问天平能够给出3种结果啊,需要的bit应该更少。 
实际上不仅仅需要关心随机变量的信息熵,还应该关心被询问对象(例子中观众、天平)的表达能力(即被询问对象的信息熵)。正确的表达式应该是:

H(X)H(Y)

其中X为随机变量,Y为被询问对象。该问题最终得到的结果是H(X)H(Y)=log25log23=1.46。世界杯冠军问题中之所以只计算随机变量的信息熵是因为被询问对象的信息熵刚好是1(H(Y)=log22),所以忽略了。在计算机领域和通信领域,被询问对象一般都只能给出{0,1}两种结果,其信息熵为1,由此直接忽略。特殊情况下的忽略不代表不存在。

随机变量不再是均匀分布

有五个硬币,四个等重,另外一个是假币所以质量相比其他4个要轻。已知第一个硬币和第二个硬币是假硬币的概率为1/3,其他硬币为假硬币的概率为1/9。天平每一次能够比较两堆硬币,且能够给出3个结果中的一个:左边比右边重,右边比左边重,两边同样重。问我至少需要付多少bit就能够确保知道哪个是假币? 
由于之前已经分析过,直接带入上面的计算公式即可得:

H(X)H(Y)=−(13log213)∗2−(19log219)∗3log23=1.333

也就是说,实际编码过程中需要2个bit来存储每一次。

在经典熵的定义式中,对数的底是2,单位为bit。在我们之后的例子中,为了方便分析使用底数e。如果底数为e,那么单位是nat(奈特)。重新写一遍信息熵的公式:

H(X)=−∑p(xi)ln(p(xi))  (i=1,2,…,n)

为此,我们来研究研究函数f(x)=xln(x),看看图像长啥样。由信息熵的公式及定义,可以发现此时的x 表示的是事件发生的概率,有x∈[0,1]。求导分析:f′(x)=lnx+1,f′′(x)=1x>0;由此发现f(x)是凸函数。令f′(x)=0可得x=1e。由于limx→0f(x)=0,我们定义f(0)=0 。最后经过采样可得图像如下: 

信息熵的总体理解

从之前的分析可以看出,熵其实定义了一个函数(概率分布函数p(x))到一个值(信息熵H(X))的映射。而且从表达式中可以知道:随机变量不确定性越大,p(x)越小,熵值越大。由此,熵是随机变量不确定性的度量。一种极限情况是:当随机变量退化为定值时(概率为1),那么此时的熵值为0。另一个极限就是:当随机变量服从均匀分布的时候,此时的熵值最大。

让我们以较为熟悉的随机变量分布来举例说明信息熵:

两点分布的熵

假设两点分布中p(X=1)=q,直接将概率分布函数代入信息熵公式可得:

H(X)=−∑x∈Xp(x)ln(p(x))=−qlnq−(1−q)ln(1−q)

通过随机采样可以得到图像: 
 
通过对图像的分析可以印证我们之前的结论:当p(X=1)=0.5,二点分布即为均匀分布,此时对应于图像中熵的最大值;当p(X=1)=1或p(X=1)=0时,二点分布退化为确定性分布,那么此时的熵为0.

联合熵、条件熵和相对熵

之前定义了单个随机变量的熵,现在将定义推广到两个随机变量的情形。对于服从联合分布为p(x,y)的一对离散随机变量(X,Y) ,其联合熵定义为:

H(X,Y)=−∑x∈X,y∈Yp(x,y)ln(p(x,y))

上式也可以表示为:

H(X,Y)=−E(logp(x,y)).

我们也可以定义一个随机变量在给定另一个随机变量下的条件熵,它是条件分布上关于起条件作用的那个随机变量取平均之后的期望值。

定义:若 (X,Y)∼p(x,y),条件熵定义为:

H(Y|X)=∑x∈Xp(x)H(Y|X=x)=−∑x∈Xp(x)∑y∈Yp(y|x)logp(y|x)=−∑x∈X∑y∈Yp(x,y)logp(y|x)

联合熵和条件熵的定义的这个自然性可由一个事实得到体现:一对随机变量的熵等于其中一个随机变量的熵加上另一个随机变量的条件熵,即: H(X,Y)=H(X)+H(Y|X)(链式法则)。其证明见如下:

H(X,Y)=−∑x∈X∑y∈Yp(x,y)logp(x,y)=−∑x∈X∑y∈Yp(x,y)logp(x)p(y|x)=−∑x∈X∑y∈Yp(x,y)logp(x)−∑x∈X∑y∈Yp(x,y)logp(y|x)=−∑x∈Xp(x)logp(x)−∑x∈X∑y∈Yp(x,y)logp(y|x)=H(X)+H(Y|X)

相对熵是两个随机分布之间距离的度量。假设p(x),q(x) 是随机变量X中取不同值时的两个概率分布,那么 p对q的相对熵是:

D(p||q)=∑xp(x)logp(x)q(x)=Ep(x)logp(x)q(x)

在上述定义中,我们约定:0log00=0,0log0q=0,0logp0=∞(基于连续性)。因此,如果存在x∈X使得p(x)>0,q(x)=0,则有D(p||q)=∞。 
可以通过证明知道相对熵总是非负的,而且,当且仅当 p=q时为零。但是由于相对熵并不对称(一般D(p||q)≠D(q||p) ),而且也不满足三角不等式,因此它实际上并不是两个分布之间的真正距离。然而,将相对熵视作分布之间的“距离”往往会很有用。

互信息

互信息是一个随机变量包含另一个随机变量信息量的度量。互信息也是在给定另一个随机变量知识的条件下,原随机变量不确定度的缩减量。(为什么这么说,接下来会有解释。) 
定义:考虑两个随机变量X和Y,它们的联合概率密度函数为p(x,y),其边缘概率密度函数分别为p(x),p(y)。互信息I(x,y)为联合分布p(x,y)和乘积分布 p(x)p(y)之间的相对熵,即:

I(X;Y)=∑x∈X∑y∈Yp(x,y)logp(x,y)p(x)p(y)=D(p(x,y)||(p(x)p(y)))=Ep(x,y)logp(X,Y)p(X)p(Y)

通过查看表达式,即可知道互信息具有对称性,即 。同样可以简单证明得互信息的非负性,这里省略。

熵与互信息的关系

可将互信息I(x,y)重新写为:

I(X;Y)=∑x∈X,y∈Yp(x,y)logp(x,y)p(x)p(y)=∑x∈X,y∈Yp(x,y)logp(x|y)p(x)=−∑x∈X∑y∈Yp(x,y)logp(x)+∑x∈X∑y∈Yp(x,y)logp(x|y)=−∑x∈Xp(x)logp(x)−(−∑x∈X∑y∈Yp(x,y)logp(x|y))=H(X)−H(X

转载于:https://www.cnblogs.com/zhizhan/p/4658885.html

3月机器学习在线班第六课笔记--信息熵与最大熵模型相关推荐

  1. 七月算法--12月机器学习在线班-第七次课笔记—最大熵

    七月算法--12月机器学习在线班-第七次课笔记-最大熵 七月算法(julyedu.com)12月机器学习在线班学习笔记 http://www.julyedu.com 转载于:https://www.c ...

  2. 七月算法--12月机器学习在线班-第五次课笔记—回归

    七月算法--12月机器学习在线班-第五次课笔记-回归 七月算法(julyedu.com)12月机器学习在线班学习笔记 http://www.julyedu.com 转载于:https://www.cn ...

  3. 机器学习理论《统计学习方法》学习笔记:第六章 逻辑斯谛回归与最大熵模型

    机器学习理论<统计学习方法>学习笔记:第六章 逻辑斯谛回归与最大熵模型 6 逻辑斯谛回归与最大熵模型 6.1 逻辑斯谛回归模型 6.1.1 逻辑斯谛分布 6.1.2 二项逻辑斯蒂回归模型 ...

  4. 最大熵阈值python_李航统计学习方法(六)----逻辑斯谛回归与最大熵模型

    本文希望通过<统计学习方法>第六章的学习,由表及里地系统学习最大熵模型.文中使用Python实现了逻辑斯谛回归模型的3种梯度下降最优化算法,并制作了可视化动画.针对最大熵,提供一份简明的G ...

  5. 零基础班第六课 - MySQL实操(一)

    创建新DB和新用户&Dbeaver链接 字段类型 SQL语句分类 创建删除表&增删改查 SQL一 一.创建新的DB和新用户&Dbeaver链接 楼主Linux上使用的MySQL ...

  6. azure机器学习_Microsoft Azure机器学习x Udacity —第4课笔记

    azure机器学习 Detailed Notes for Machine Learning Foundation Course by Microsoft Azure & Udacity, 20 ...

  7. 第六课 多算法组合与模型调优

    本系列是七月算法机器学习课程笔记 文章目录 1 前序工作流程 1.1 数据处理 1.2 特征工程 1.3 模型选择 1.4 交叉验证 1.5 寻找最佳超参数 2 模型优化 2.1 模型状态 2.2 模 ...

  8. 孙鑫vc++ 第六课 笔记 菜单的工作原理及编写应用

    菜单的工作原理及编写应用 今天赶了2场酒,累死了,但还是坚持看完了第6课,写了点笔记,大家鼓励鼓励嘛,不要看看就走了 1.菜单如果选择了pop-up属性,是不能响应命令的    菜单idm_test- ...

  9. 《机器学习技法》第5课笔记 核函数逻辑回归

    课程来源:林轩田<机器学习技法> 课程地址:https://www.bilibili.com/video/av12469267/?p=1 1. wrap-up 2. 可以将条件转化写入方程 ...

最新文章

  1. 安卓中运行报错Error:Execution failed for task ':app:transformClassesWithDexForDebug'解决
  2. 4444端口 linux,Docker Container无法访问本地主机端口4444。为什么?
  3. 2016 VR年终大趴行业大佬齐聚,共同探讨AR、VR的商业化道路之变
  4. opencv学习笔记19:图像金字塔和图像拉普拉斯金字塔 (用于图像放大和缩小)
  5. centos eclipse 安装
  6. python去重且顺序不变_Python实现嵌套列表去重方法示例
  7. strip(),replace()和re.sub()用法
  8. HTML和小程序的 12 种 flex 布局
  9. 英特尔® 处理器显卡
  10. 通达OA CRM扫描枪条码录入
  11. 【PS】免费 使用PS批量将pdf转换成图片 pdf转图片 pdf转jpg pdf转png
  12. idea 格式化代码怎么才能不格式化代码注释?
  13. codeblock的下载
  14. 恩尼格码机的原理以及破解方法
  15. windows搭建ftp服务器,及200 227 451错误解决
  16. Liunx 用户及组,文件相关命令
  17. 数据库的原理【经典】
  18. 投影向量计算公式的推导
  19. Android客户端之“微服私访”App的系统学习(一) 本地服务端环境的搭建和部署
  20. display:inline-bock的注意

热门文章

  1. Ghost后不能启动解决小工具
  2. exchange之2003迁移至2007
  3. OMS SDK中OPhone应用与BAE JIL中Widget应用的区别
  4. 使用Vue.js进行数据绑定以及父子组件传值
  5. 监听发现局域网dropbox客户端broadcast-dropbox-listener
  6. hdu3635 Dragon Balls(带权并查集)
  7. 使用VS2010调用matlab的mat格式文件
  8. 22.调用delay()方法延时执行动画效果
  9. mysql 游标 ,嵌套游标
  10. 计算路由汇总的方法(CIDR)