zoukankan      html  css  js  c++  java
  • 信息论随笔

    近期补了一点信息论的知识,随笔记一下自己的理解;

    参考以下文章:

    《数学之美》第六章:信息的度量和作用

    http://blog.sina.com.cn/s/blog_5fc770cd0100ia5k.html

    http://blog.csdn.net/lk7688535/article/details/52529610

    自信息量

    一个事件e发生的自信息量

       ( I(e) = -log_{2}P(e) )

    即事件的概率越小,发生这个事件所带来的自信息量越大;

    不可能事件的自信息量是无穷,而必然事件的自信息量是0;

    从信息论的角度看,当我们听到一件小概率事件发生时会感到震惊,其本质是受到了巨大信息量的冲击;

    信息熵

    一个变量X,可能有多种取值,每个取值结果对应一个事件,则这个变量的信息熵是所有取值结果(事件)信息量的加权(概率)平均;

        ( H(X) =-sumlimits_{x} P(x) log_2P(x))

    熵反映不确定性;X每个取值结果(事件)发生概率越接近,不确定性越大,熵越大;

    熵也是X变量的平均信息量,是X每个取值结果(事件)自信息量的期望;

    联合熵

    一对变量X、Y,可能有多种取值,每个取值组合对应一个事件,其信息熵即为X、Y的联合熵;

       ( H(X, Y) =-sumlimits_{x} sumlimits_{y} P(x,y) log_2 P(x,y) )

    联合熵反映X、Y结果组合的不确定性;

    ( H(X,Y) <= H(X) + H(Y) ) 必定成立

    如果X、Y完全相关,则( H(X) = H(Y) ,H(X,Y) = H(X) = H(Y) )

    如果X、Y完全无关,则( H(X,Y) = H(X) + H(Y) )

    即联合熵全部是由X、Y的不确定性引入的不确定度,不可能大于两个变量各自信息熵的总和;

    条件熵

    一对变量X、Y,可能有多种取值,每个取值组合对应一个事件,在给定X的条件下,Y的条件熵为:

       ( H(Y|X) = -sumlimits_{x} sumlimits_{y} P(x,y) log_2 P(y|x) )

    与联合熵相比,虽然每个结果组合的出现概率没有变化,但出现时所带来的自信息量变为了-log2P(y|x);这是因为有了X做为先验;

    同时,根据先验概率公式:

       ( P(y|x) = frac{P(x, y)}{P(x)})

    对条件熵公式进行推导:

        ( H(Y|X) = -sumlimits_{x} sumlimits_{y} P(x,y) log_{2} frac{P(x, y)}{P(x)} )

       (              = -sumlimits_{x} sumlimits_{y} P(x,y)(log_{2}P(x, y) - log_{2}P(x)) )

       (              = -sumlimits_{x} sumlimits_{y} P(x,y)log_{2}P(x, y) + sumlimits{x} sumlimits{y} P(x,y)log_{2}P(x) )

       (              = H(X,Y) + sumlimits_{x}P(x)log_{2}P(x) )

       (              = H(X,Y) - H(X) )

    即,有X先验条件下的Y的条件熵,相比于无先验条件下的X、Y的联合熵,只少掉了一个H(X),即X的信息熵;

    即,有X先验条件下的Y的不确定度,相比于无先验条件下的X、Y的不确定度,少掉了X的不确定度;

    即,由于引入了X的信息,联合熵减少掉了一定的不确定度,剩余的不确定度就是条件熵;

     ( H(Y|X) <= H(Y) ) 必定成立

    如果X、Y完全相关,则( H(X) = H(Y),H(Y|X) = 0 )

    如果X、Y完全无关,则( H(Y|X) = H(Y) )

    即X先验条件的引入不会为Y增加不确定度,因而不可能大于Y自身的信息熵;

    互信息

    既然上面X的信息帮助联合熵消除不确定度,那么能否帮助Y消除不确定度呢?

    如果X能帮助Y消除全部不确定度,那么X与Y完全相关,如果X不能帮助Y消除不确定度,则X与Y完全无关;

    X通过消除Y的条件熵从而帮助Y消除掉不确定度,消除掉的不确定度即X与Y的互信息;

       (  I(X;Y) = H(Y) - H(Y|X) )

    互信息是Y自身信息熵与有X先验条件下的Y条件熵的差值;

    其公式推导的另一种结果为:

       ( I(X;Y) = -sumlimits_{x}sumlimits_{y}P(x,y)log_{2}frac{P(x,y)}{P(x)P(y)} )

    即,X、Y的每个结果组合出现时,为互信息提供的信息量为( -log_{2}frac{P(x,y)}{P(x)P(y)} );

    这个概率公式的意义我目前还想不明白;

    另外,因为已知条件熵( H(Y|X) = H(X,Y) - H(X) ),所以互信息公式可以进一步推导:

       (  I(X;Y) = H(Y) + H(X) - H(X,Y) )

    即互信息是联合熵比X、Y熵总和少的那部分不确定度;

    如果X、Y完全相关,则( I(X;Y) = H(X) ),X、Y的互信息完全消除了X或Y的不确定性,因而条件熵为0;

    如果X、Y完全无关,则( I(X;Y) = 0 ),X、Y没有互信息量,条件熵等同于无先验条件情况下的信息熵;

    最后补一张图:

  • 相关阅读:
    C#中的转义字符verbatim string
    how to use Inspector in fiddler
    how to use composer in fiddler
    CodeWars上的JavaScript技巧积累
    What's the difference between using “let” and “var” to declare a variable in JavaScript?
    Loop through an array in JavaScript
    Why does typeof array with objects return “Object” and not “Array”?
    Owin and Startup class
    Qt Widgets、QML、Qt Quick的区别
    飞舞的蝴蝶(GraphicsView框架)
  • 原文地址:https://www.cnblogs.com/ZisZ/p/8567675.html
Copyright © 2011-2022 走看看