information theory——熵

来源:互联网 发布:me的域名 编辑:程序博客网 时间:2024/05/29 15:48

熵用来度量一个事件、一个变量取值所含有的信息的量的大小。


出发点:一个低概率事件发生——背后信息大;反之亦然。比如,找人算1+1,等于2是很显然的,但是某人算出个3出来,那背后就有很大空间可以让我们想象了。


实施:既然信息量和概率(以及发生)有关,那就从事件发生的概率角度度量信息量;p(X)

           设信息量用h(·)来表示

   低概率事件信息量>高概率事件:所以h(·)与p(X)是个负相关关系

   若两事件独立,则p(X,Y)=p(X)*p(Y),h(X,Y)应该等于h(X)+h(Y)。所以:h(p(X,Y))   能变成h(p(X))+h(p(Y))。  What?! 让变量之间乘法变加法? 是什么函数?必然是log啊


轮廓: h(p(X)) 大约是log(p(X))  的样子。

             但是!要是负相关关系啊!要是单调减的啊!前面再来个负号吧!~


结果:h(x) = −log 2 p(X) 


但是,如果是一个变量,这个变量取值多少呢(熵)?

 


质疑:具体到具体数据集的信息量?不知道概率还罢了。如果知道了概率(如通过训练样本得到),是否应该在测试集上,以训练集的概率,以及测试集事件发生概率结合,进行新的度量?比如Ptest(x)/Ptrain(x)进行估计?某种程度上可以反应我估计的特征之类的质量好坏?

或者训练集、测试集差别大小?


reference: PRML