皮埃尔-西蒙,拉普拉斯侯爵(1749-1827),法国著名的天文学家和数学家:
曾经提出一个问题:千百万年以来,每天太阳都会升起。但是,可以就此推断明天太阳一定会升起吗?
这个问题似乎有点古怪,但仔细想想,如果不具备其它的关于太阳的知识,仅凭数据确实没有办法肯定地说,明天太阳一定会升起。英国哲学家波特兰.罗素曾经描述过一个类似的问题:
“太阳没有升起”这个事件从未发生,那怎么去估计它的概率呢?来做一个思想实验,让我们把时间回溯,来到人类第一次观察太阳的时候,假设那是100万年前:
此时我们并不知道明天太阳是否升起,可以假设两者概率相同;也就是假设昨天太阳升起了,而前天没有。再加上今天的观察结果是太阳升起了,因此可以得到下列表格:
接着连续观察5天,发现:
在上面表格中,最开始两天是假设的,后面6天是观察所得,因此可以说“太阳升起”的概率为:
在之后的100万年间,人类观察到了每天太阳都是升起的,总共升起了
这也是拉普拉斯的计算结果(他的方法和这里不太一样,是假设“太阳升起”的概率服从均匀分布,然后通过类似贝叶斯推断的方式计算出来的,这里就不再赘述细节了)。
因为
但如果放到更大的尺度下,这个概率告诉我们,总有一天太阳是会熄灭甚至消失不见,该事件的发生对人类的整体是毁灭性的。当我们意识到这一点,人类应该对这样的从未发生但是又有重大后果的事件做一些准备,比如星际移民:
当然也可能像那群火鸡一样,就算知道,也无能为力。
说点接地气的,在机器学习中常常会碰到对从未发生过的事件的预测,拉普拉斯的方法就可以发挥作用。比如下面是一些邮件的数据,左边两列是邮件中的是否包含某些关键字,第三列是该邮件是否为垃圾邮件,最后一列是这样的邮件有多少封:
根据上面的数据容易得到,包含“发票”和“微信”且是垃圾邮件(表中第八行)的概率为(机器学习中一般是计算条件概率,这里为了解释方便,只去计算了如下概率):
仔细观察会发现,只包含“微信”的情况是没有数据的(表中第五、六行),此时就可用拉普拉斯的办法,给每一项都加上1(“太阳升起”问题中只有两种状态,这里有八种状态,在思想实验中,可以给每种状态都预先加上1,表现出来的结果就是在表格中给每一项都加上1):
这样就可以估计只包含“微信”且是垃圾邮件(表中第六行)的概率为:
这种方法在机器学习中也常称为拉普拉斯平滑。