“没有免费的午餐定理”就是由 Wolpert and Macready 在 1997 年在优化领域中提出的 No Free Lunch Theorems(NFL),可以简单理解为:针对某一具体域内的所有优化问题 Q,经过 m 步迭代之后达到目标函数给定值的所有可能性的累加和是相等。用在机器学习中就是刚刚说的“ 针对某一域的所有问题,所有算法的期望性能是相同的”, 在该域的有些问题上算法 La 比 Lb 好,其余问题上则有 Lb 比 La 好。
现在来理解一下书中的证明过程(Page 8),这个没什么 tricky,希望有耐心些很好理解。需说明书中这里讨论的是二分类问题,假设数据空间 X 和假设空间 H 都是离散的,样本空间记作 X ;且真实目标函数对所有可能的 f 均匀分布。
首先需要明确这里算法性能是通过衡量训练集外误差得到的,即 off-training error(ote),本题所说的“训练集外”就是 X−X 。“误差”也就是机器学习所说的损失函数(Loss function),Page 8 已经要求了损失函数为 L(h,f(x))=1(h,f(x)) 。算法 La 在所有训练集外的误差其实就是机器学习中说的风险函数,即
符号说明:
1) ∑fEote(La)|X,f) 表示在该域所有问题上算法 La 在训练集外即 X−X 上的所有误差;
2) P(h|X,La) 表示用算法 La 基于训练集 X 产生假设 h 的概率。
(5) 式:即简单的概率求和, P(h|X,La) 对 h 求和当然就是 1 了。还不理解的话?其实就是 P(A|B) 对 A 求和的形式。
所以最终得到了 任意两个算法 La 与 Lb 的期望误差相等,即
上面的证明损失函数用的是 1(h(x)≠f(x)) ,为了继续完善,考察定理是否对于任何性能度量都是成立,我们回到书中习题上:
习题 1.4 二分类问题中,若用其它性能度量 l ,请证明书中 1.4 节的“没有免费的午餐定理”仍然成立。
解答:这里要求“用其它度量 l ”, 事实上就是 (1) 式中用的损失函数 1(h(x)≠f(x)) 换作了
最后需要明确:NFL 的一重要前提是“对某一域的所有问题”讨论。所以 NFL 只是告诉我们“脱离具体问题去讨论选择什么算法更好是毫无意义的”,因为若对所有潜在的问题考虑,则所有算法性能是一样的。但机器学习是针对某一特定问题去考虑的,所以我们仍然有选择算法优劣的必要性和可行性。
比如考虑问题:从一个几km的大坡顶 A 地到坡底 B 什么交通工具划算(即算法)?我们会觉得自行车比汽车火车飞机都靠谱。但你非要说飞机可以从中国飞到美国,所以飞机这种交通工具也很好,你凭什么说自行车好?这就是在脱离实际问题了。这是因为我们在针对“从 A 到 B”这一具体问题讨论交通工具(算法)的选择。