编程数学之信息论
摘要:信息论(英语: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为一个三个面的骰子,
两个随机变量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)\)
推导过程如下:
上式中:
相对熵又称互熵、交叉熵、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服从均匀分布时,熵最大。
直观地看,最大熵原理认为:要选择概率模型,首先必须满足已有的事实,即约束条件;在没有更多信息的情况下,那些不确定的部分都是“等可能的”。最大熵原理通过熵的最大化来表示等可能性;“等可能”不易操作,而熵则是一个可优化的指标。
本文版权归作者【白宁超】所有,转载请联系作者:1938036263@qq.com,但未经作者同意禁止转载,转载后需在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
前面一章介绍了BST的结构和一些简单的基本功能,例如:insert,findMin,nextLarger等 […]...
常见数据结构的 JavaScript 实现系列 栈 队列 链表 集合 字典 哈希表 二叉树 图 前端与数据结构 […]...
一、问题描述 某个汽车工厂共有两条装配线,每条有 n 个装配站。装配线 i 的第 j个装配站表示为 Si, […]...
数据结构与算法—查找算法(Search Algorithm) 查找算法介绍 在java中,我们常用 […]...
Exercises 6.1-1 最多为2h+1-1个,因为堆是只有最低层未满的二叉树,所以最少也会有2h个元素 […]...
题目描述 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为 […]...
BST 解析 (一) 这篇博文主要初步介绍Binary Search Tree(BST)的一些基本功能以及应用 […]...
描述 Implement next permutation, which rearranges numbers […]...
IF函数对条件进行判断并返回指定内容。用法:=IF(判断条件,符合条件时返回的值,不符合条件时返回的值)如下图 […]...
tomcat启动maven工程的时候提示如下错误信息: An internal error occurred […]...
今天心血来潮,想搞一下zookeeper集群。具体步骤记录下吧~嘻嘻...
百度链接提交入口全攻略 很多网站没有被收录,也没有排名,经常有SEO站长向我抱怨。其实提升网站收录有方法和诀窍 […]...
一、基本信息 系统(L):CentOS 6.9 #下载地址:http://mirrors.sohu.com W […]...
导读 前二天写了一篇《Java 多线程并发编程》点我直达,放国庆,在家闲着没事,继续写剩下的东西,开干! […]...
最近在学习3D模型方面的知识,先是大致调研了一些流行的3D格式,调研结果见这里。无意间发现了本专门讲这个主题的 […]...
最近因为工作需要 一直在研究淘宝的api。 之前虽然也做过新浪的开放平台 但是一直只是百度封装 […]...
Powered By WordPress