机器学习中的统计思维(Python实现)
上QQ阅读APP看书,第一时间看更新

0.3.2 奥卡姆剃刀原理

· 公元前500多年,老子说:“大道至简”。

· 公元前300多年,亚里士多德说:“自然界选择最短的路径”。

· 17世纪,牛顿说:“如果某一原因既真实又足以解释自然事物的特性,则我们不应当接受比这更多的原因”。

· 20世纪初,爱因斯坦说:“任何事情都应该越简单越好”。

在人类历史中,总是会有人提出至简原理。可是,仍然有很多人前赴后继地追求复杂的解释,显得自己非常有学问的样子。14世纪的英国就是这个样子,一大批学者整日无休止地争论“共相”与“本质”之类的问题。奥卡姆的一位哲学家威廉(William)就著书立说,在《箴言书注》中表示:如无必要,勿增实体。后人称之为奥卡姆剃刀原理,即极简原则。这一原则主张选择与经验观察一致的最简单的假设。

Occam’s Razor(拉丁原文):

Numquam ponenda est pluralitas sine necessitate.(避重趋轻)

Pluralitas non est ponenda sine necessitate.(避繁逐简)

Frustra fit per plura quod potest fieri per pauciora.(以简御繁)

Entia non sunt multiplicanda praeter necessitatem.(避虚就实)

举个例子,曾有一家跨国公司生产香皂,但是在交货时遇到了一个难题——生产出的成品有很多是空盒。为此,公司特意聘请了一名专业工程师,成立科研小组。小组中的科研人员采用机械、X射线和自动化等技术,耗资数十万元,终于研发出X射线监视器。该设备能够检测每个成品是否为空盒。巧合的是,有一家小工厂也遇到了同样的问题。不过,这家小工厂只是在生产线旁边放置了一个马力十足的风扇就搞定了。因为空的香皂盒很容易被强风吹跑。如果仅仅是为了简单有效地解决问题,遵循奥卡姆剃刀原理,我们完全可以采用小工厂的方案检测空的香皂盒,没必要如同跨国公司那样搞研发。

其实,当我们学习了很多知识之后经常会陷入这样的误区,不由自主地用自己所认为的科学去解释或解决问题,还沾沾自喜。假如在一个夜晚我们看到地面上有个地方很亮,或许就会想这是月光照到小坑中光滑的水面上,反射出来的光线进入眼睛,就会感觉那个地方很亮。但是,如果你把同样的问题问一个无知的孩童,他(她)可能就会简单地告诉你“因为地面上有水啊”。安徒生童话里有一则故事是“皇帝的新装”,正是因为小孩没有成人那么多弯弯绕绕的想法,才能一语道破“他什么也没穿啊!”

在机器学习中,我们也是以某一目标为导向前进的。直白地说,我们都希望干净利落地达成目标,能简则简,不要被繁多的影响因素所迷惑。因此,如何在掌握了众多模型方法之后,仍然可以本着奥卡姆剃刀原理,在实际应用的时候选出最优的模型是非常重要的。直觉固然可以,但是机器的直觉是模式化的。因此,如何让奥卡姆剃刀原理以机器程序的形式嵌入其中,并且进行模型选择,就是需要我们思考的问题了。