中学学的那些立体几何,解析几何很多人看来索然无味却基本上没有掉队的,就算是用背诵的方法,头悬梁锥刺股也要学,为什么?因为高考要考。
大学通信课学的那些排队论,信息论这些,在很多人看来也是索然无味,却再也没有人去为之付出了,为什么?因为大多数公司的面试题中都不会把这些包含在考查范围内。
2018年第一天,写一篇随笔吧,就想写一个关于那些索然无味的东西的。觉得这些理论性的东西还是挺有用的,就随便写写,正好昨天不是写了一篇关于CPU使用率100%的问题涉及到排队论了吗?本文介绍下信息论。
描述世界
你相信吗?不断地问“是不是”,你就能了解整个世界。
用二进制来描述世界是简单且优雅的。在创世之初神的世界,就有善恶二元之划分,世界本来就出自二元。这几乎是所有人的共识,同时也是几乎所有宗教的根基。
这里有河吗?是的。河里有鱼吗?是的。河里的鱼是红色的吗?不。河里的鱼有黑色的吗?是的。河里的鱼有黄色的吗?是的。…
根据上述描述,我们知道这里有一条河,河里有黑色以及黄色的鱼,但不确定是不是有红色的鱼。随着问题继续,整个世界都可以被完全描述出来,问题的多少取决于你如何组织问题,这简直就是一门学问,而且是一门真学问。同样的一个世界,问题组织的好,很少的问题就能描述,问题组织的不好,问题的数量就会很多。
信息论就是研究这个的。特别是,信息论中有个最大熵原则,遵循这个原则是解决问题效率的关键,本文我将用实例来说明。
香农的信息论
我们先来看信息是什么,再来看如何度量信息。
所谓的信息,就是以前不知道现在知道的事实,如果某件事以前就知道,当别人再告诉你时,你会忽略,这件事对你的认知没有任何影响,这就不叫信息,反之,如果某件事以前你不知道,有人告诉你了,你现在知道了,那么对你而言,这件事就是信息。
让我们更进一步,看一件事带来的信息量的大小如何来度量。顾名思义,信息量就是度量信息大小的一种量,让我们看一个形象的例子。有人告诉你巴西赢了世界杯,那么这件事对大多数人而言,并不值得关注,它并没有带来多少惊喜,如果是中国赢得了世界杯,那么这件事可能会刷新很多人的世界观,这件事带来的信息量就特别大,我们常说的黑天鹅事件就是概率极低但确实发生了的事件。定性的说,小概率事件带来的信息量大,大概率事件带来的信息量小。下面我们看下以上这句话如何定量的描述。
用概率来度量信息是合理的,这并不是空穴来风,半个多世纪之前,香农提出的信息论便是以概率论为基础。执果索因,我们先来看看香农为什么用事件发生概率的对数来度量信息量。
客观的说,如果你不能把一件事用数学描述出来,那它就是不严谨的,问题是,你要选用哪中形式。我们已经知道,在物理学中,宇宙中很多定律遵循平方反比律,退一万步到一个特定的拥塞控制领域,在TCP拥塞算法中,CUBIC算法所依据的是一条三次曲线。问题是,这些数学式子是怎么想出来的呢。这就不得不提到拟合。
首先你要罗列出你所要描述的事情的性质,然后靠突然发现或者创造某种函数的曲线正好完美拟合这些性质,那么就是它了,剩余的事情就是求常数因子并待定系数了,我有一篇文章说了这个事情,参见:TCP拥塞控制算法-从BIC到CUBIC http://blog.youkuaiyun.com/dog250/article/details/53013410
我们看下用概率描述信息量的重要性质:
- 事件发生的概率越低,信息量越大;
- 事件发生的概率越高,信息量越低;
- 多个事件同时发生的概率是多个事件概率相乘,总信息量是多个事件信息量相加。
通过前两点,我们知道信息量,信息量和概率之间一定是减函数的关系,第三点要求确定了对数关系:
y=log 2 x y=log2x时:
f(x)=−xlog 2 x−(1−x)log 2