什么是信息熵?

相信学过信息科学的朋友,讲到信息熵并不陌生,但是我发现很多学者对于这个名词的解释都过于书本化。比如信息熵的定义啊,信息熵来自物理学的概念啊,数学期望啊等等。这些解释确实没有错,但是这样的解释却让很多人更困惑,或者说解释者本身就没有搞明白。
1948年香农提出信息熵的概念,并以概率为基础给出了相关的定理,从而奠定了信息论的基础。但是学习信息论的朋友们却很鲜知道信息熵的真实意义,以及信息熵在各种编码领域的实际指导价值。
首先,我直接给大家灌输一个等式:
= 信息熵=最小比例值
为什么信息熵是等于最小比例值呢?在没有信息熵的概念之前就已经存在相关的编码算法,但是学者们一直存在一个困惑: “怎么样的无损编码才使得结果最小?”,也就是说,无损编码是不是存在一个极限,这个极限是什么?
比如,一个长度为n的随机序列,对其无损编码后最小应该是多长的?我们将无损编码后的长度设为c,显然存在一种比例关系 c n \frac{c}{n} 。这个比例一定有一个极小值,于是另一个问题来了,如何得到这个最小的比值 c min n \frac{c_{\min}}{n}
于是香农认为概率可以反映这一比例(得申明一下,在香农给出信息熵的概念之前熵是物理学的一个概念),我们可以这样想象一下,一个很有规律的文件就一定很好编码,比如长度为n的二进制序列为:01010101…01,我们可以用“ n 2 \frac{n}{2} 个01”就直接表达这个二进制序列,若n趋近于无穷时,显然比例关系 c n \frac{c}{n} 一定是趋近于0的。变成概率来描述,因为“01”出现的概率为1,于是应该存在一个极小比例值为0的表达式。反过来,一个没有任何数据的文件,其编码结果也应该为无,显然概率为0时也应该存在一个极小比例值为0的表达式。
接下来,我们可以得出一个实际现象,某些数据越是有规律,则其出现概率就一定会大;某些数据越是没有规律,则其概率就一定会越小。反过来也行,概率越大的符号出现在随机序列中,我们很容易利用一些规律去除掉,概率越小的符号,我们很难找到规律去除。同时,概率为0和1时,这个极小比例都是等于0的。
那么纵观物理、数学世界,能准确表达出这一特征的只有对数。于是就出现了一个表达式
log p ( x ) \log p(x)
显然,当p(x)=0时 log p ( x ) \log p(x) 无意义(不存在),在二进制序列中,当符号0的概率为0,则说明符号1出现的概率为1;当p(x)=1时 log p ( x ) = 0 \log p(x)=0 ,符合推论的条件。接下来就是由于 0 < p ( x ) < = 1 0 <p(x)<=1 ,这之间的对数值都是负数,而极小比例值应该是个正数,于是需要抵消负号,就有了
log p ( x ) -\log p(x)
上面的表达式仅仅只是表达了随机序列中一个符号为x的最小比例值,如果一个序列存在 c x c_{x} 个符号x,则所有符号x占总比例应该是 c x log p ( x ) -c_{x}\log p(x) 。我们假设随机序列是a,b,c,d四个符号组成的,总长度为n,其中符号a有 c a c_{a} 个,符号b有 c b c_{b} 个,符号c有 c c c_{c} 个,符号d有 c d c_{d} 个。显然整个随机序列的最小比例值为
c a log p ( a ) c b log p ( b ) c c log p ( c ) c d log p ( d ) -c_{a}\log p(a)-c_{b}\log p(b)-c_{c}\log p(c)-c_{d}\log p(d)
当我们平均到随机序列的每个符号(不论是a还是bcd)时,应该拿上面的式子除以n,就有
c a log p ( a ) c b log p ( b ) c c log p ( c ) c d log p ( d ) n \frac{-c_{a}\log p(a)-c_{b}\log p(b)-c_{c}\log p(c)-c_{d}\log p(d)}{n}
化简一下有
c a n log p ( a ) c b n log p ( b ) c c n log p ( c ) c d n log p ( d ) -\frac{c_{a}}{n}\log p(a)-\frac{c_{b}}{n}\log p(b)-\frac{c_{c}}{n}\log p(c)-\frac{c_{d}}{n}\log p(d)
那么从上式,大家看到了什么? p ( a ) = c a n p(a)=\frac{c_{a}}{n} p ( b ) = c b n p(b)=\frac{c_{b}}{n} p ( c ) = c c n p(c)=\frac{c_{c}}{n} p ( d ) = c d n p(d)=\frac{c_{d}}{n} ,这一特征被数学家们定义为了数学期望。所以就有了
p ( a ) log p ( a ) p ( b ) log p ( b ) p ( c ) log p ( c ) p ( d ) log p ( d ) -p(a)\log p(a)-p(b)\log p(b)-p(c)\log p(c)-p(d)\log p(d)
相信到了这里,学过信息熵的朋友就发现了,信息熵就是
H ( X ) = p ( a ) log p ( a ) p ( b ) log p ( b ) p ( c ) log p ( c ) p ( d ) log p ( d ) H(X)=-p(a)\log p(a)-p(b)\log p(b)-p(c)\log p(c)-p(d)\log p(d)
那么大写的X是什么?其实就是随机序列X,而信息熵H(X)是无损编码的最小比例值了,于是存在一个这样的关系
c min n = H ( X ) \frac{c_{\min}}{n}=H(X)
c min = n H ( X ) c_{\min}=nH(X) 。显然,信息熵可以在实际应用中用于确定编码方法是否优越,因为越接近信息熵(最小比例值)的编码方法越优秀。而且,无损编码后的最小长度 c min c_{\min} 是可以通过上式计算得出,这样就不难理解香农的无失真定理了。因为,无损编码的极限是编码后的结果最小为 c min c_{\min} ,如果比这个值还低,说明就是有损的了。

发布了27 篇原创文章 · 获赞 38 · 访问量 7573

猜你喜欢

转载自blog.csdn.net/wjlxueshu/article/details/89856897