全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
3676 1
2017-06-22
举个简单的例子来理解一下这件事情:假设有个考试作弊团伙,需要连续不断地向外传递4选1单选题的答案。直接传递ABCD的ascii码的话,每个答案需要8个bit的二进制编码,从传输的角度,这显然有些浪费。信息论最初要解决的,就是数据压缩和传输的问题,所以这个作弊团伙希望能用更少bit的编码来传输答案。很简单,答案只有4种可能性,所以二进制编码需要的长度就是取2为底的对数:
2个bit就足够进行四个答案的编码了(00,01,10,11)。在上面这个例子中,其实隐含了一种假设,就是四个答案出现概率是相等的,均为p=1/4,所以编码需要长度的计算可以理解为如下的形式:
此时已经有些像熵的定义了。回顾一下熵的定义,正是求-log2(p)的期望值,所以我们把这个思路也套用一下:

这正是熵,因为ABCD出现的概率均为p=1/4,所以上面式子算出来结果刚好是2。从这个角度,熵就是对每个可能性编码需要长度的期望值。

答案出现概率相等的例子可能并不贴近实际,在中国考试界,坊间传闻:“不知道选什么的时候就蒙C”,这个信息是可以帮助作弊团队改善编码长度的。假设A出现的概率不变仍为1/4,C出现的概率变成了1/2,B和D则分别是1/8:P(A)=1/4,P(B)=1/8,P(C)=1/2,P(D)=1/8。在这种情况下,考虑到传递答案的过程中,C出现的次数(概率)最高,所以可以为C用短一些的编码,而出现次数较少的B和D则可以考虑用长一些的编码。这样的话,平均下来,对于一定的信息总量,需要的编码总长度就会少一些。根据熵的定义的思路,对于出现概率为p的事件,考虑用长度为-log2(p)的二进制进行编码。所以考虑如下面的编码:

A: 10
B: 110
C: 0
D: 111

对照熵的公式来计算一下编码长度的期望值,也就是平均编码长度:

再详细点,假设作弊团伙要传递200个答案出去。为了方便说明,这200个答案中ABCD出现的次数恰好都严格和其出现概率成比例,也就是A:50次,B:25次,C:100次,D:25次。所以传递200个答案一共需要的bit数是:

那么平均下来每个答案耗费了350/200=1.75个bit编码长度。

在实际情况中,并不是每个信息都可以单纯按照上面的两个例子进行二进制编码。比如一个事件出现概率为0.3,那么我们也不知道该如何用一个-log2(0.3)=1.74个bit的二进制编码表示。但是平均编码长度的概念是可以拓展的,代表了对随机变量的平均不确定度的度量。比如ABCD四个答案出现概率相等时,是一种最无序最不确定的状态,谁也蒙不准下一个答案是什么;但是如果C出现概率高了,那么答案出现就不是那么没规律,我们蒙C时的信心就高了一些。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-12-23 10:05:43
厉害~!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群