信息论-基础知识

对于一个离散的随机变量x,当我们观察到它的一个值,能给我们带来多少信息呢?这个信息量可以看做是我们观察到x的这个值带来的惊讶程度。我们被告知一个不太可能发生的事发生了要比告知一个非常可能发生的事发生,我们获得信息要多。 所以信息量的多少依赖于概率分布p(x),所以我们可以用关于p(x)的一个函数来建模信息量h(x).那什么函数模型适合表达呢? 
我们观察两个相互独立的事件x,y,我们观察它得到的信息量,要和单独观察他们得到的信息量之和相等。即 
                                         
h(x,y) = h(x) + h(y) 
    
而两个独立的时间x,y的概率关系: 
                                          p(x,y) = p(x) p(y) 
    
基于上面的观察,信息量必须和p(x)的log函数相关。 
    
所以我们得到: 
                                           
    
加上负号,可以保证信息量大于等于0。注意一个小概率事件,具有更高的信息量。 log的底数选择并没有限制。信息论中大多都采用2,传输这些信息量需要的2进制位数。
     如果我们想传输这个随机变量的值,我们传输的平均信息量,可以表示为关于分布 p(x)的期望: 
                                        
    这个表达式被称为信息熵。

在机器学习中,采用比较多的是自然对数形式, 这样 
                                       

对x=0的情况,由于 
                                           所以我们让p(x)ln(x) = 0

如果对这些信息进行编码传输,我们希望概率大的使用较长的编码,概率小的我们采用较长的编码。最大熵能够达到最小长度的编码,关于熵和最短编码长度的关系,可以参考shannon的Noiseless coding theorem。

熵用来描述指定随机变量的状态,所需要的平均信息。 如果我们想最大化熵,我们利用拉格朗日乘子: 
                                      
 
     我们可以得 取得最大值,其中M是x状态数。

如果我们有一个联合分布p(x,y),如果x已经知道,那么指定y的值还需要的信息量, 可以通过-ln p(y|x)来描述,所以平均还需要的信息量,可以表示为: 
                                      
 
被称为条件熵。我们利用乘法规则,可以得到: 
                                      

相对熵和互信息: 考虑一个未知的分布p(x),假设我们使用了一个近似的分布q(x)来建模它, 如果我们使用q(x)来构建一个编码模式,用来传输x的值。那么额外需要多指定的信息: 
                                     
 
    
这个式子被称为相对熵或者Kullback-Leibler divergence 相对熵描述了p(x)和q(x)两个分布的差异程度。注意: 
                                     

我们考虑联合分布p(x,y),如果x,y相互独立,那么p(x,y)=p(x)p(y) 如果他们不相互独立,那么我们想知道他们的相关程度,我们可以使用KL divergence来度量: 
                                     
 
      这个表达式被称为变量x,y的互信息。从KL divergence的属性我们知道I(x,y)>= 0 当且仅当x和y相互独立时,等号成立。 我们使用加法和乘法规则得到互信息是相对于条件熵的: 
                                     

时间: 2024-12-20 01:30:00

信息论-基础知识的相关文章

学习算法你必须知道的一些基础知识(文末福利)

点击标题下「异步社区」可快速关注 机器学习是解决很多文本任务的基本工具,本文自然会花不少篇幅来介绍机器学习.要想搞明白什么是机器学习,一定要知道一些概率论和信息论的基本知识,本文就简单回顾一下这些知识. 1.1 概率论 概率就是描述一个事件发生的可能性.我们生活中绝大多数事件都是不确定的,每一件事情的发生都有一定的概率(确定的事件就是其概率为100%而已).天气预报说明天有雨,那么它也只是说明天下雨的概率很大.再比如掷骰子,我把一个骰子掷出去,问某一个面朝上的概率是多少?在骰子没有做任何手脚的情

信息论基础 原书第2版.pdf

下载地址:网盘下载 编辑推荐 <信息论基础>(原书第2版)适合作为电子工程.统计学以及电信方面的高年级本科生和研究生的信息论基础教程教材,也可供研究人员和专业人士参考. 内容简介 <信息论基础>(原书第2版)是信息论领域中一本简明易懂的教材.主要内容包括:熵.信源.信道容量.率失真.数据压缩与编码理论和复杂度理论等方面的介绍.<信息论基础>(原书第2版)还对网络信息论和假设检验等进行了介绍,并且以赛马模型为出发点,将对证券市场的研究纳入了信息论的框架,从新的视角给投资组

数据通信的基础知识

数据通信的基础知识 典型的数据通信模型: 相关术语 通信的目的是传送消息. 数据(data)--运送消息的实体: 信号(signal)--数据的电气或电磁的表现: "数字信号"--代表消息的参数的取值是离散的: "模拟信号"--代表消息的参数的取值是连续的: 码元(code)--在使用时间域的波形标识数字信号时,则代表不同离散数值的基本波形就形成了码元: 在数字通信中常常使用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号称为二进制码元.而这个间隔被称

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024

BroadcastReceive基础知识总结

BroadcastReceive基础知识总结 1.BroadcastReceive简介 BroadcastReceive也就是"广播接收者"的意思,顾名思义,就是用来接收来自系统和应用中的广播 在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能,当网络状态改变时,系统会产生一条广播,接收到这条广播,就能及时的做出提示和保存数据等操作,当电池的电量改变的时候,系统会产生一条广播,接收到这条广播就能在电量低的时候告知用户

基础知识--:before伪元素和:after伪元素

http://book.51cto.com/art/201108/285688.htm 3.7  替换指定位置 大家都知道before和after是前.后的意思.但是奇怪的是,CSS中的:before伪元素和:after伪元素是为源文档中不存在的内容设置样式的. 没有内容怎么设置样式呢?别急!它们有一个content属性,一起使用就可以为某个选择器前.后的内容设置样式了. 下面就来了解一下:before伪元素和:after伪元素的用法. 视频教学:光盘/视频/3/3.7  替换指定位置.avi 

20_Shell语言———VIM编辑器基础知识三之窗口属性定制、配置文件及查找替换功能

Vim编辑器可以让用户按照需求来定制一些使用属性. 一.窗口属性定义 1)显示行号 行号不是内容,只是用来帮助用户确认文本所在的行.在vim编辑器中,如果要显示行号,可以在末行模式下输入: set number 如果想关闭,则可以在功能名称前面加上no,即: set nonumber 命令可以被简写,如set number 可以简写为 set nu:set nonumber 可以简写为 set nonu. 注意,上述设定仅对当前vim的进程有效,一旦当前进程关闭,这些设定就会失效,如果要使设定永

web基础知识(一)关于ajax传值最基础东西

HTTP方法之 GET对比POST GET:从指定的资源请求数据, POST:向指定的资源提交要被处理的数据 GET方法: 请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的: /test/demo_form.asp?name1=value1&name2=value2 有关 GET 请求的其他一些注释: GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处理敏感数据时使用 GET 请求有长度限制 GET 请求只应当用于取回