zoukankan      html  css  js  c++  java
  • 今天开始学Pattern Recognition and Machine Learning (PRML),章节1.6,Information Theory信息论简介

    原创书写,转载请注明此文出自:http://blog.csdn.net/xbinworld,Bin的专栏


    今天开始学Pattern Recognition and Machine Learning (PRML),章节1.6,Information Theory信息论简介

    前面有朋友说写的东西太理论了,我想说我并不是在和很多其他博客一样做topic的入门介绍,配合很多示意图之类;而是在记录PRML这本经典教科书的内容。如果想好好学Pattern Recognition and Machine Learning,建议花半年时间看一本国外经典。(前面忙实验室的任务写的太慢了,这本书要吃透是要花点时间。)章节1.3-1.5都是介绍性质的,我先不写了后面有时间再补。

    信息论,不用多说,在很多领域都得到了应用,应该算是一个相对成熟的主题。PRML这一节里将介绍信息论的一些基本概念,主要是为了明白这些概念是怎么来的(如gain,entropy),代表什么含义。在书里没有具体的应用结合,后面可以单独简介一节关于决策树的方法,需要的信息论知识基本在这一节里面可以覆盖到。

     

     

    章节1.6 Information Theory

    直观的一种理解,当我们听到一个不太可能发生的事件时我们所接收的信息量要比听到一件习以为常的事件所接收的信息量大,如果我们听到了一件必然发生的事情那么我们接收到的信息就是0。让我们考察对于一个离散随机变量x,类似的出现那些概率很低的x取值时我们得到的信息量要大。

    通过上面的解释,首先,我们有理由认为信息量的大小和随机变量x的概率有关,我们用h(x)表示获得的信息量的大小,p(x)表示离散随机变量x取值的概率。我们相信h(x)和p(x)是单调负相关的(一个大另一个就小)。

    再来考察这样一个情况,如果观察两个相互无关(独立)的事件x,y,我们得到的信息量可以写成:

    h(x,y) = h(x)+h(y);

    而两个相互独立事件的概率符合:

    P(x,y) = p(x)*p(y);

    由此可见啊,h应当和p成对数(log)关系,于是,我们结合上述两点观察,得出

    clip_image002

    可见,信息量是大于等于0的。这里我们先用2为对数的底,此时,h的单位是bits。(信息量大小由比特长度来衡量。)

    好了,让我们考虑这样一个情况,一个信息发送者要发送一个随机变量的值给一个接收者,那么在传输过程中的平均信息量是(1.92)的h(x)的期望:

    clip_image004

    该值就称为一个随机变量的熵(Entropy),特别的,当p等于0的时候,p(x)logp(x)=0。接下来让我们看一个实际的例子,来体会一下熵这个概念:

    ========================================================================

    例子:假如一个随机变量x有8种可能的状态,每一种都有相同的概率。传输该变量我们至少需要3个bits(2^3=8),或者我们可以用熵来刻画:

    clip_image006

    同样是3个bits,即平均信息量为3 bits,或者说我们平均需要3bits来传输。

    考虑另外一种情况,如果x的8个状态(a-h)的概率分别为clip_image008,那么,熵为:

    clip_image010

    也就是说,不均匀分布的变量拥有较小的熵。在这个情况下,我们怎么才能做到平均2bits来传输呢?因为不均匀分布,我们可以用短bit来代表大概率的状态,长bit来代表小概率的状态,把上述8个状态编码成0, 10, 110, 1110, 111100, 111101, 111110, 111111,这个时候,平均的编码长度就是:

    clip_image012

    可见,我们可以用平均2bits长来传输变量x,和熵是等价的。

    ========================================================================

    香农提出了noiseless coding theorem熵是传输一个随机变量(所有状态or取值)所需编码长度的下限。(似乎很牛逼的样子- -)

    上面我们是用2为log的底来考量的,接下来为了一些计算的方便,我们使用自然对数e为底来考虑熵。当用ln的时候,熵的单位是nats,很容易证明nats和bits相差一个常数倍数ln2。 Nat = ln2 Bit

    随机变量X的熵可以定义为:

    clip_image014

    其中xi是X的一种取值(状态)。对于那些更sharp分布的变量,有较小的熵;而那些均匀分布的变量有较大的熵,图1.30说明了这个情况:

    clip_image016

    上面都考虑了离散变量的情况,接下来我们考虑连续变量的情况:

    变量X取值落在一个小区段内的概率是:

    clip_image018

    上面用到了均值定理,在一个很小的区段(bin)里面(长度为clip_image020),总能找到一个xi使得上述等式成立。因此概率就用(1.101)的右边来表示了,这样就离散化了。类似前面熵的定义:

    clip_image022

    可见,离散变量的熵和连续变量的熵在定义上相差一个clip_image024,当clip_image020[1]很小的时候,该项很大,因此得到符合常识的结论是:当我们需要很精细地刻画一个连续变量时,我们需要很长的bits。

    根据

    clip_image026

    我们定义

    clip_image028

    微分熵。相应的结论是,使得微分熵最大化的分布是高斯分布。微分熵是可以小于0的。

    根据定义可以计算高斯分布的微分熵可以写成

    clip_image030

    当方差越大的时候,微分熵越大。

    1.6.1 相对熵和互信息

    相对熵也就是KL-divergence, 很多地方都有看到KL。它的含义是什么呢?下面来解释一下:对于一个未知的分布p(x),我们用q(x)来model它,那么我们需要的平均额外的信息量

    clip_image032

    上述式子很容易理解,就是两者平均需要信息量的差,定义为KL-divergence。KL-divergence是不对称的。

    上述式子中的两个期望的表达也可用离散的形式去估计,就是用一个集合的平均值。另外,我们可以假设我们估计的分布q是受一些参数影响的,那么KL-D可以近似写成

    clip_image034

    其中求平均的常熟系数被略去了。因此可以看到,(1.119)的第二项是和theta无关的,不变的。那么最小化KL其实就等价于最大化似然方程了。

    我们知道如果两个变量x,y独立,那么p(x,y) = p(x)p(y)。我们希望衡量两个变量相互独立的程度,就用到互信息了。互信息的定义是这样的:

    clip_image036

    从定义就很容易想到,互信息是在衡量联合p(x,y) 和p(x)p(y)相关性。可以知道,I是大于等于0的,且当x,y独立时取0.

    自由是什么:想做什么就做什么,不想做什么就不做什么?还是不想做什么可以不做什么?
    ********:该做什么就做什么,不该做什么就不做什么?还是不该做什么可以不做什么?
  • 相关阅读:
    固定长度下随文字数量增加自动适配字体大小
    vue v-for 和 v-if 、v-else一起使用造成的bug
    火狐使用Ctrl新开窗口不生效
    js如何模拟multipart/form-data类型的请求
    centos安装nodejs
    cursor图标自定义
    解决 vs code 打开文件总是只有一个tab标签页,新打开的tab标签页会替换掉旧的tab标签页
    Devexpress Tab Control 文档
    Devexpress WPF教程
    Linq把一个DataTable根据一列去除重复数据
  • 原文地址:https://www.cnblogs.com/yihaha/p/7265345.html
Copyright © 2011-2022 走看看