有这样的想法并不奇怪,研究机器学习天生就有一种对“终极算法”的向往,与被热力学第二定律“判处死刑”之前的永动机一样,令许多人趋之若鹜。从“古”至今有很多这方面的论文,意图通过三个特例来说明自己改进的算法多么高效、适用于诸多应用场景,或者得出类似论断的比比皆是。
1997 年,两位数学家威廉·麦克雷迪(William Macready)和戴维·沃尔珀特(David Wolpert)深入研究并解决了“终极算法”问题,他们通过数理逻辑严格地证明了一个结论:
假设所有问题出现的机会相等,或者说所有问题都是同等重要的,那不论学习算法 A 有多“聪明”、学习算法 B 有多“笨拙”,它们的性能期望都是相同的。
这个结论蕴含了一个听起来颇违反直觉的事实:如果一个算法解决某类问题的效率比解决其他类型的问题的效率高,那么它一定不具有普适性,一定存在另外一类问题使得这个算法的性能低于随机选择的结果。简而言之,对于没有特定上下文和目标偏好的笼统问题,高效与普适是矛盾的。这个结论被麦克雷迪和沃尔珀特很形象地命名为“没有免费的午餐定理”(No Free LunchTheorem,NFLT)。“没有免费的午餐定理”让我们认清楚一个事实:若脱离实际情况,空谈哪种机器学习算法更是毫无意义的,无论算法怎样,无论它有多复杂,它和随机抛几枚硬币来胡乱猜测参数值这样的方法所取得的效果都是一样的。要谈论一种算法的优劣,一定是在具体问题上才有相对优和劣的概念,没有绝对最好的“终极算法”存在,在某些问题上表现好的算法,在另一个问题上一定会不尽如人意。
“没有免费的午餐定理”并不是说研究不同的模型算法没有意义,它生效的前提是“所有问题都同等重要”,而实际情形肯定不是这样。一般我们只需要关注自己真正要解决的问题,而不需要关心我们的解决方案在另一个问题上的表现是否同等出色。为了解决真实世界中的问题,我们可能需要提出多个不同的模型。对于每一种模型,我们同样有多种算法来训练模型。在实现算法的过程中,也同样存在算法准确度、效率和存储空间之间的折中。但是真正身处其中时,人们往往还是容易陷入盲目的算法崇拜,如在今天的机器学习研究中,很多人就沉迷于“深度学习”不可自拔,心中多少都有深度学习比其他算法更好的想法。其实有时候探究解决问题的具体步骤反而是其次的,深刻理解问题本身,因地制宜地制定解决问题的策略更为重要。
第 6 章 机器学习概览
227