一道智力题与信息熵

今天突然看到一道阿里招聘的智力题,内容大概是这样的:

一共有16瓶水,其中一瓶有毒,小白鼠喝了有毒的水就会在一个小时后死亡,问最少需要几只小白鼠才能在一个小时的时间里找到至少14瓶没有毒的水。


一开始,我只是努力去想该怎么安排每只小白鼠喝水,可是想了很久最后,还是靠提示才知道了答案:

把16瓶水分成8组,每组两瓶,这样只需要找到7组没有毒的水或者找到一组有毒的水就能满足条件了。先把8组水编个号从1到8。小白鼠A喝1-4号水,B喝1-2号水和5-6号水,C喝1号,3号,5号,7号水。如果A,B,C都死了,那么就是1号水有毒;如果是A,B死了,那么就是2号水有毒;如果就A死了,就是4号水有毒,以此类推。


之后,经过反思,我觉得自己思考的方式是有问题的。我一开始就想着去找出具体的解法,而没有从整体和系统的角度去思考这个问题。仔细看一下题干,很明显是让我们想一个办法从能够把这8组水一一分类。而一只小白鼠恰好有死或者活2种状态,那么如果要区分这8组水,需要2*2*2种状态,显然3只小白鼠就能产生出8种不同的死活的排列,我们只需要把这8种排列每种对应一组水,那么根据小白鼠的状态就能判断出是哪组水有问题了。


时隔两个月,今天在看信息熵的问题的时候又遇到了小白鼠的问题(小白鼠经常会在面试题中被毒死,太可怜了),所以顺便在这里也总结一下信息熵的东西。先列一下信息熵的数学定义:

一个值域为{x1, ..., xn}的随机变量 X 的熵值 H 定义为:

H(X)  =  \operatorname{E}(I(X))

其中,E代表了期望数,而I(X) 是 X 的信息量(又称为信息本体)。I(X)本身是个随机变量。如果p代表了X 的机率质量函数(probability mass function),则熵的公式可以表示为:

H(X) = \sum_{i=1}^n {p(x_i)\,I(x_i)} = -\sum_{i=1}^n {p(x_i) \log_b p(x_i)}

在这里b 是对数所使用的,通常是2, 自然常数e,或是10。当b = 2,熵的单位是bit;当b = e,熵的单位是nat;而当 b = 10,熵的单位是dit

下面来解释一下熵的公式的意义:

从第一个式子,能看出熵就是信息量的期望,信息量越大,自然期望就越大,熵也就越大,这符合我们的直观理解。但是这个信息量改如何表示呢?第二个式子中,把信息量表示成-log p(x)。p(x)代表x发生的概率,可以看到x发生的概率小,信息量就越大。这种定义也是符合直观的,比如我们这天天都是晴天,如果天气预报说明天还是晴天,你就会觉得这条消息没什么价值,因为明天是晴天的概率本来就很大,但是,如果天气预报说明天会下雨,你就会引起重视,因为这是小概率的事。那为什么要对p(x)取对数呢,假设我们知道A第晴天的概率是p(x),B地晴天的概率是p(y),那么A,B两地同时晴天这件事发生的概率就是p(x)*p(y),而这条信息的信息量怎么第一句话的信息量加上第二句话的信息量,把乘法转化为加法,正是取对数的原因。这样,整个公式的意义就明确了。

但是,这个熵虽然说是信息量的期望,可看起来意义总感觉不是很明确,这个期望有代表了什么呢?我们来换一种解释方式,假设掷硬币得到正反面的概率都是1/2,根据公式,计算出来的熵就是1,如果硬币不均匀,那么结果熵可定会小于1。因为熵是对信息量的期望,所以它是对一个事物所蕴含的信息量的综合度量,举个例子,假设天气只有晴天和下雨两种情况,我们在知道它们发生的概率的情况下,可以计算出明天晴天或者明天下雨这两句话的信息量,另外,我们还能计算出天气的熵。天气的熵越大,则第二天的天气就越难预测(晴天和下雨的概率就越接近),反之,则天气越容易预测。再打个比方,假设26个英文字母在各个单词中出现的概率都是一样的,则英语的熵为4.7,但是实际上英语的熵只是4多一点,这是因为英语中a,e,s这些字母出现的概率远比z,x,w的概率大。

所以,熵的大小其实是能说明事物的分布情况的,如果事物是均匀地分布的,那么每个点出现在任何位置的概率都是相同的,所以我们去预测点的位置的难度就越大,熵也就越大;反之,如果事物是按某种概率分布的,那么某些位置的点的数据可能就会比较多,那么我们在知道了这种概率的情况下,就倾向于预测点在那些位置,熵就越小。

事物中的每种状态所蕴含的信息量越大,那么这个事物的熵就越大,反之,则熵就越小。我认为,这里的熵减小的原因是因为我们先验地知道了事物分布的概率,减小的那部分熵其实是分散在了我们的先验知识中。再举个例子,英语的实际熵比理论上平均的熵小了大概0.7,所以这0.7是我们可以在英语中挖掘的规律,如果能完全了解这0.7的先验规律,或许我们就能更好地用机器去理解自然语言;反之,如果我们能用某种方法消除这0.7的先验规律,把英语的熵提高到4.7,那么每句话的信息量就会变大,我们就能让机器用更短的语句去表达更丰富的意思,这就起到了压缩文本的作用。

贝叶斯学派说,世界总是服从与某种先验的分布的,从信息熵的角度理解,那么正因为这种先验的分布,使得世界的熵取到了一个中间值,正是因为这个中间值的存在,才使得我们可以渴望去探寻这个世界的先验规律,去预测世界的发展,并且企图解释世界上发生的一切。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值