信息增益辅助决策

目录

本文将利用信息增益解释几个常见的问题。

猜数字

问题:小明在1~64一共64个整数中选定了一个数\(x\),我们来猜是哪个数。小明每次会告诉我们大了或者小了。问最少经过几次提问可以猜到\(x\).

一般的解法就是不断2分即可。
下面我们以熵的视角来看到这个问题。

\(x\)一共有64种可能性,事件的熵为\(H(X)=\sum_{i=1}^{64} -\frac{1}{64} *\log_{2} \frac{1}{64} = 8\).
假设我们第一次猜这个数是\(s\),之后数\(x\)落入\([1, s]\)的概率为\(\frac{s}{64}\),落入\((s, 64]\)的概率为\(\frac{64-s}{64}\)
此时事件的条件熵为\(H(X|s)=\frac{s}{64}*\log s + \frac{64-s}{64}*\log (64-s)\).

这两次事件中熵减少的值称为信息增益(information gain),为\(IG(X, s)=H(X)-H(X|s)\)
显然为了让信息增益最大,我们选择\(s\)为32,和二分的策略不谋而合。

  • 决策树中,我们利用信息增益来选择特征;
  • 在这里,我们利用信息增益来做决策,让可能性更均匀地分布在各个分支

称球

问题:有12个球,其中11个球一模一样,有1个球可能重了可能轻了。现在有一个天平,问至少称几次能找出这个小球,且确定它是重或轻。

直观的想法是,先将12个球分为6-6去称,但是这并不是最优策略。
同样的,我们以熵的视角解释。

给小球编号1~12,每个球可能重或轻,故一共有24种可能性,最后结果是其中一个。
每称一次,天平会告诉我们3种答案分支。依据信息增益理论,我们需要让24种可能性均匀分布在3个分支中。

按6-6称法,天平必然不平衡,左倾或右倾,2个分支下各有12种可能性。
按4-4称法,天平等概率左倾、右倾和平衡,3个分支下各有8种可能性。如下图。

一般的,对于n个球,我们至少需要称的次数为\(\lceil \log_{3}{2n} \rceil\).

基于比较的排序算法时间下界

n个数的排列共有\(n!\)可能性,每次比较2个数,2个分支下各有一半的可能性。故最后的比较次数为\(O(\log_2 n!) = O(n \log_2 n)\).

快排比堆排比较次数更少

  • 快排:选择好的枢纽元素时,原数组的每个元素等概率的大于或小于枢纽元素,则枢纽元素能将数组等分为2个部分。
  • 堆排:在排序阶段,每次将堆底元素与堆顶元素互换,然后将新堆顶往下push。假设是大顶堆,则新堆顶往往是小数值,大概率往下push,则比较的次数就增多了。

信息论

在做决策时,目标是缩小结果所在的可能性空间,即减少不确定性,减少熵。
所以,需要让各个分支所代表的可能性空间尽可能均等。

参考

数学之美番外篇:快排为什么那样快
Heapsort, Quicksort, and Entropy

猜你喜欢

转载自www.cnblogs.com/yuanquanxi/p/10236736.html