没有免费午餐定理(no free lunch theorem)
/ noh free lunch THEER-um /
「没有免费午餐」定理,是一个让人谦卑的数学结论:在所有可能的问题上取平均,没有哪种学习方法会优于另一种——甚至不会优于随机瞎猜。不存在一种放之四海皆胜的算法。任何在某类问题上表现卓越的方法,作为交换,必定在另一类问题上表现得相应糟糕。这个名字把精髓捕捉得恰到好处:你别想不花代价就白得好处。
其中的推理出奇地干净。一种方法之所以能胜过对手,靠的是它对「世界往往具有什么样的模式」做了假设。这些假设在与手头问题相符时给你回报——不符时则让你付出代价。如果你设想出由一切可以想象的问题构成的全宇宙,连那些模式纯属混沌的怪异问题也算进去,那么每种方法的胜与负就恰好相互抵消。你也许指望的那顿免费午餐——一个真的样样精通的「万能算法」——在数学上根本不可能。
如果那些怪异问题在实践中从不出现,又何必在意?因为这条定理重塑了整件工作。它说,「哪个算法最好?」这个问题,若不把句子说完,就毫无意义:对哪一类问题而言最好?现实世界的问题并非随机——它们带着结构——成功来自于挑一个其假设(它的归纳偏置)与那种结构相契合的方法。定理并不是说所有方法在你这项任务上都一样好;它是说,你逃不开「让方法去匹配问题」这桩功夫,绕过「理解你的数据」是没有捷径的。
在一个答案取决于几条干脆的是/否规则的问题上,决策树也许大获全胜;而在杂乱的图像数据上,神经网络更胜一筹。把它俩对调,两个都会栽跟头。没有谁是「最好的学习者」——它们各自是不同形状问题的最佳匹配,恰如定理所预言。
每种方法在一个问题上的长处,都由它在另一个问题上的短处来偿付。
这条定理常被误读成「所有算法都一样好,挑哪个都无所谓」。错了:它是在所有可能的问题上取平均,而那些问题大多是纯噪声。在我们真正面对的、带有结构的问题上,方法的选择关系重大。