信息论学习总结(一)基础知识 博客分类: Machine Learning information theory信息论机器学习 我们考虑一下一个离散的随机变量x,当我们观察到它的一个值,能给我们带来
2013-10-03 16:12
387 查看
信息论学习总结(一)基础知识
博客分类:Machine Learning
information
theory信息论机器学习
我们考虑一下一个离散的随机变量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相互独立时,等号成立。
我们使用加法和乘法规则得到互信息是相对于条件熵的:
相关文章推荐
- 【Java学习笔记】基础知识学习19【一个大文件的复制方法】
- OC基础知识总结 分类: ios学习 OC 2015-06-26 17:58 58人阅读 评论(0) 收藏
- 【迁移学习】domain adaptation and metric learning基础知识及博客整理
- Android 2D Graphics学习(二)、Canvas篇2、Canvas裁剪和Region、RegionIterator 分类: Android基础知识学习
- python apply的一点知识 分类: python基础学习 2013-12-11 13:58 875人阅读 评论(0) 收藏
- 函数名function是一个数据类型,可以赋值 分类: python基础学习 2013-09-12 11:01 366人阅读 评论(0) 收藏
- 学习Java基础的一些知识(2)实现一个Java程序的过程
- SVM实现多分类的程序基础工作(二)——通过一个简单libsvm例子迈入libsvm学习的大门
- Linux-C基础知识学习:C语言作业-将5个学生成绩保存在一个数组中,单独实现一个计算平均成绩的average函数, 在main函数中获取该函数返回的平均值,并打印。
- 韩天峰博客 php基础知识学习记录
- 依次读取文件中的一个字符 分类: python基础学习 python 小练习 2013-08-22 11:14 289人阅读 评论(0) 收藏
- 深度学习FPGA实现基础知识6(Deep Learning(深度学习)学习资料大全及CSDN大牛博客推荐)
- 转载 前端基础知识体系 一个新手的学习之路
- 去学习基础知识的博客空间
- 在Maven中怎么配置外部Jar 博客分类: Maven 假设我们有一个Maven的project,其中有些Jar包不是来自Maven库的,是存在本地的某些Jar文件,比如说在project下有
- 【Java学习笔记】基础知识学习18【一个小文件的复制方法】
- 一个很不错的博客,说了很多图形学的基础知识
- 推荐大家去博客园看我的博客:http://www.cnblogs.com/bj-xy/点击随笔分类,Python基础学习
- 一个学习Web基础知识比较好的网站