灵感突至。终于搞懂信息熵里对数的含义。信息熵公式-p(x)logp(x)(这个对数以2为底,前面还有个求和符号,手机打不出)。
如果用计算机的bit来理解,比如说一门语言只有ABCD四个字母,而且知道它们各自在语言中的概率分布p(x).-logp(x)刚好等于某字母一个需要的bit数,比如A的概率分布是1/2,那一个A需要1个bit。
但是为什么?
其实并不复杂,但我当时没有想,过了几天,突然灵感来临。分享下。
因为p(x)是十进位表达,而信息熵是用于计算机的理论,计算机是用二进位表达的。所以以2为底的对数就是为了看看概率p(x)变成2进位有几位。准确讲是概率的倒数,因为概率小于1,对数小于0,负几位没意义,但倒数大于1,其对数大于0。这也应该是加负号的原因。
例如1/p(x)=2^7,对数就是7,2^7用二进位表达是8位,比7多1。更一般的1/p(x)=2^n,对数是n,二进位的2^n是n 1位。当然以上是整数,n也可能是小数,熟悉对数的就知道,整数部分叫首数,小数部分叫尾数。首数决定整数部分的位数,小数决定数是多少。如n=2.7326,由2知道位数是3,由0.7326可以知道数是多少。
如果n=2小数部分是零表明该数除了最大一位是1外,剩下两位都是0。
这样-logp(x)的含义就比较明确了。
,