zoukankan      html  css  js  c++  java
  • 编程数学之信息论

    编程数学之信息论

    摘要:信息论(英语:information theory)是应用数学、电机工程学和计算机科学的一个分支,涉及信息的量化、存储和通信等。信息论是由香农发展,用来找出信号处理与通信操作的基本限制,如数据压缩、可靠的存储和数据传输等。自创立以来,它已拓展应用到许多其他领域,包括统计推断、自然语言处理、密码学、神经生物学、进化论和分子编码的功能、生态学的模式选择、热物理、量子计算、语言学、剽窃检测、模式识别、异常检测和其他形式的数据分析。(本文原创,转载必须注明出处.)


    信息熵

    熵是信息的一个关键度量,通常用一条消息中需要存储或传输一个符号的平均比特数来表示。熵衡量了预测随机变量的值时涉及到的不确定度的量。例如,指定掷硬币的结果(两个等可能的结果)比指定掷骰子的结果(六个等可能的结果)所提供的信息量更少(熵更少)。

    1948年,香农引入信息熵,将其定义为离散随机事件的出现概率。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以说,信息熵可以被认为是系统有序化程度的一个度量。


    信息度量

    信息熵

    如果一个随机变量X的可能取值为( X={ x_1,x_2 ,…..,x_n }) ,其概率分布为( Pleft( X=x_i ight) =p_i ,i=1,2,…..,n) ,则随机变量X的熵定义为H(X):

    其中 x是定义在 X上的随机变量。信息熵是随机事件不确定性的度量。

    例子:若S为一个三个面的骰子,

    • P(面一)=1/5
    • P(面二)=2/5
    • P(面三)=2/5
      计算其信息熵为:

    联合熵

    两个随机变量X和Y的联合分布可以形成联合熵,定义为联合自信息的数学期望,它是二维随机变量XY的不确定性的度量,用H(X,Y)表示:

    条件熵

    在随机变量X发生的前提下,随机变量Y发生新带来的熵,定义为Y的条件熵,用H(Y|X)表示:

    条件熵用来衡量在已知随机变量X的条件下,随机变量Y的不确定性。

    由贝氏定理,我们有( p(x,y)=p(y|x)p(x)) ,代入联合熵的定义,可以分离出条件熵,于是得到联合熵与条件熵的关系式:(
    Hleft( Y|X ight) =Hleft( X,Y ight) -Hleft( X ight))

    推导过程如下:

    上式中:

    • 第二行推到第三行的依据是边缘分布P(x)等于联合分布P(x,y)的和;
    • 第三行推到第四行的依据是把公因子logP(x)乘进去,然后把x,y写在一起;
    • 第四行推到第五行的依据是:因为两个sigma都有P(x,y),故提取公因子P(x,y)放到外边,然后把里边的-(log P(x,y) log P(x))写成log (P(x,y) / P(x) ) ;
    • 第五行推到第六行的依据是:P(x,y) = P(x) * P(y|x),故P(x,y) / P(x) = P(y|x)。

    相对熵:信息增益

    相对熵又称互熵、交叉熵、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)表示。互信息是信息论里一种有用的信息度量方式,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性。互信息是两个事件集合之间的相关性。

    互信息、熵和条件熵之间存在以下关系:( Hleft( Y|X ight) =Hleft( Y ight) -Ileft( X,Y ight))

    推导过程如下:

    通过上面的计算过程发现有: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的概率分布是( Pleft( x_i ight)) ,则其熵定义如下:

    熵满足下列不等式:

    式中,|X|是X的取值个数,当且仅当X的分布是均匀分布时右边的等号成立。也就是说,当X服从均匀分布时,熵最大。

    直观地看,最大熵原理认为:要选择概率模型,首先必须满足已有的事实,即约束条件;在没有更多信息的情况下,那些不确定的部分都是“等可能的”。最大熵原理通过熵的最大化来表示等可能性;“等可能”不易操作,而熵则是一个可优化的指标。


    参考文献

    1. Python官网
    2. 中文维基百科
    3. GitHub
    4. 图书:《机器学习实战》
    5. 图书:《自然语言处理理论与实战》

    完整代码下载

    源码请进【机器学习和自然语言QQ群:436303759】文件下载:自然语言处理和机器学习技术QQ交流

    作者声明

    本文版权归作者【白宁超】所有,转载请联系作者:1938036263@qq.com,但未经作者同意禁止转载,转载后需在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

     

  • 相关阅读:
    MySQL RR隔离 读一致性
    C++奥赛一本通刷题记录(高精度)
    CodeVs天梯之Diamond
    CodeVs天梯之Gold
    CodeVs天梯之Silver
    CodeVs天梯之Bronze
    【2018.1.14】本蒟蒻又回来了
    test
    UVa12545
    UVa1149
  • 原文地址:https://www.cnblogs.com/baiboy/p/bcsx.html
Copyright © 2011-2022 走看看