编程数学之信息论
摘要:信息论(英语: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,但未经作者同意禁止转载,转载后需在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
Exercises 5.1-1 应聘者是随机出现的,如果总是可以决定哪一个应聘者最佳,那么就意味着对任何一种应 […]...
银行家算法(The banker\’s algorithm) 该文简述了银行家算法的主要内容 银行 […]...
描述 Follow up for “Remove Duplicates”: What […]...
最近正在学习UC Berkeley的CS61B这门课,主要是采用Java语言去实现一些数据结构以及运用数据结构 […]...
论文笔记(2):A fast learning algorithm for deep belie […]...
二叉树按层打印 算法 准备一个队列 准备一个二叉树,不一定是完全二叉树 准备一个变量last,表示当前层的最后 […]...
一、问题描述 给定一个vector<string>,求出vector中所有字符串的最大公共前缀 例 […]...
背景 [作者:DeepLearningStack,阿里巴巴算法工程师] 在前一篇文章中,我们梳理了Tensor […]...
0x01 简介 FourAndSix2是易受攻击的一个靶机,主要任务是通过入侵进入到目标靶机系统然后提权,并在 […]...
经过对单位领导软磨硬泡,我和我的小伙伴们终于有幸参加2018.09在杭州举办的云栖大会。对程序员来说这本来是一 […]...
1、第一课 register_chrdev和register_chrdev_region 创建知识 1. re […]...
Admin Panel Template 这个后台管理模板的导航设计非常漂亮,头部还有未读的短消息和提醒的 […]...
科学界最伟大公式 科学界最伟大公式 英国科学期刊《物理世界》,要读者选出科学界历来“最伟大的公式”,结果就在该 […]...
selenium webdriver使用click一直失效问题的几种解决方法 想要爬取动态网页,很莫名的cli […]...
前面知道了struts2的架构图和struts2的自动封装表单参数和数据类型自动转换,今天来学struts2的 […]...
在BNN中,往往训练阶段较为复杂,而inference phase is simple. So how can […]...
Powered By WordPress