沒有免費午餐定理(no free lunch theorem)
/ noh free lunch THEER-um /
「沒有免費午餐」定理,是一個讓人謙卑的數學結論:在所有可能的問題上取平均,沒有哪種學習方法會優於另一種——甚至不會優於隨機瞎猜。不存在一種放之四海皆勝的演算法。任何在某類問題上表現卓越的方法,作為交換,必定在另一類問題上表現得相應糟糕。這個名字把精髓捕捉得恰到好處:你別想不花代價就白得好處。
其中的推理出奇地乾淨。一種方法之所以能勝過對手,靠的是它對「世界往往具有什麼樣的模式」做了假設。這些假設在與手頭問題相符時給你回報——不符時則讓你付出代價。如果你設想出由一切可以想像的問題構成的全宇宙,連那些模式純屬混沌的怪異問題也算進去,那麼每種方法的勝與負就恰好相互抵消。你也許指望的那頓免費午餐——一個真的樣樣精通的「萬能演算法」——在數學上根本不可能。
如果那些怪異問題在實踐中從不出現,又何必在意?因為這條定理重塑了整件工作。它說,「哪個演算法最好?」這個問題,若不把句子說完,就毫無意義:對哪一類問題而言最好?現實世界的問題並非隨機——它們帶著結構——成功來自於挑一個其假設(它的歸納偏好)與那種結構相契合的方法。定理並不是說所有方法在你這項任務上都一樣好;它是說,你逃不開「讓方法去匹配問題」這樁功夫,繞過「理解你的資料」是沒有捷徑的。
在一個答案取決於幾條乾脆的是/否規則的問題上,決策樹也許大獲全勝;而在雜亂的影像資料上,神經網路更勝一籌。把它倆對調,兩個都會栽跟頭。沒有誰是「最好的學習者」——它們各自是不同形狀問題的最佳匹配,恰如定理所預言。
每種方法在一個問題上的長處,都由它在另一個問題上的短處來償付。
這條定理常被誤讀成「所有演算法都一樣好,挑哪個都無所謂」。錯了:它是在所有可能的問題上取平均,而那些問題大多是純雜訊。在我們真正面對的、帶有結構的問題上,方法的選擇關係重大。