信息熵的另一解释方法

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

你可能感兴趣的:(学习)