为什么信息熵要定义成-segmma(p*log(p))

大牛解释

  • 选用log的原因
    一条信息的可能性数量随着位数的增加是指数的。如果用二进制bit表示,1bit有2个状态,2bit有4个状态,Nbit有2^N个可能状态。可能性的数量随指数上升,指数那么变回线性的形式就是log咯~
  • log的底
    至于对数的底是e还是2无所谓,只是一个比例因子而已。
  • segmma
    一条信息是log,N条信息就是Nlog咯。
  • 负号
    最后,熵表示混乱度,考虑到符合物理意义理解的话,加上负号。

最后就是形如-segmma(p*log(p))

个人理解

信息熵代表编码长度,编码越长,信息量越大,信息熵也就越大。所以有这样一个等式:
p=1/a^n
p表示取到某个值的概率,a表示存储单元能够存储的数量,如果是bit那就是2,n表示编码长度,可以用信息熵来理解,所以总的可能性应该是a^n,那取到单个值的概率就是p=1/a^n。反推信息熵的公式就是:
n=-loga(p)
信息量是可以叠加的,所以总的信息熵应该是所有信息之和,还是以所有存储单元都是bit为例,且每个bit都是等概率分布,也就是说每个bit代表的信息量完全相同,那最终信息熵的公式应该为:
-segmma((1/a^n)*loga(p))也就是-segmma(p*log(p))
写成第一种形式,只是想展示所谓的信息熵,就是表示在一段确定编码长度的数据里面,所截取数据的长度,长度越长,信息量就越大。如果说计算机内存是以bit来划分,那一个word的信息熵就比一个byte的信息熵大。扩展一下,如果取到每个值的概率不相等,那就应该用第二种形式了,为了方便理解,个人称呼p为瞬时概率,log(p)为瞬时信息量,积分求和之后就是总的信息量。如果第一次就看到第二种形式,那真是非常的不解。

以上的表述非常不严谨,不过能够理解意思就行,发现问题的朋友也帮忙指点一下,thx~

参考资源

作者:清雨影
链接:https://www.zhihu.com/question/30828247/answer/61047733
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(为什么信息熵要定义成-segmma(p*log(p)))