NFL定理及背景前提

  • 什么是NFL(No Free Lunch Theorem)

我们在做模型时,都会在算法的选择上花费了大部分时间,会纠结在算法的好坏以及各自的优缺点,最终实现我们的目标函数和现实函数之间的总误差最小。我们也会平时挂在嘴边,哪个算法比哪个好。但是在周志华老师《机器学习》的书中提到一个概念NFL。

周志华老师写道:

通过公式的推导,我们发现总误差竟然与学习算法无关,对于任意两个学习算法,无论哪个算法更加”聪明“或者更加”笨拙”,它们的期望性能竟然相同。这就是”没有免费的午餐“定理(No Free Lunch Theorem,简称NFL定理)

那么照周老师的说法,既然所有学习算法的期望性能跟随机胡乱猜测差不多,那还有什么必要去学习算法呢? 

我在网上搜索了一些信息,发现很多人对周老师的理解还是有理解错误的,在此发表个人看法。

  • NFL是有前提的!

聪明的人,肯定一下子能想出NFL肯定是有前提的,不然是有悖于我们的现实操作的。

以一个简单例子为例,假设我们有6个样本点(xi, yi)组成的训练集,分布如下图:

现在选择两个算法,LA和LB,它们各自模拟了各自假设空间中最佳的假设函数A和B,对应上图中的A和B两条曲线。我们会倾向于较为结构简单的A,因为在相同数据集下,A符合现存的数据集,同时可以简单化模型,所以大多数情况下我们会选择较为简单的A。

现实中的实际问题可能是如下所示:

上图中,百点为测试样本,黑点为训练样本。可以发现A的性能的确比B好,A于训练集的样本更一致,预测比B准确。

于此同时,现实的问题也可以是如下图:

由图的,B的性能比A好。

上面的例子是为了说明:在比对学习算法的优劣时,是需要结合具体问题的。对于一个学习算法LA,若它在莫i个问题上比学习算法LB好,则必然存在另一些问题,在那里LB比LA好。

以上的例子是符合我们的现实逻辑的。那么我们现在来看看周老师所说的NFL的来源:

原文:

————————————————————————————————————————————————-

我解释下文中使用(1.1)作为训练集之外的所有样本的误差原因:

首先,我们是这样定义一个假设函数h对一个样本点x的预测误差的:预测值h(x)与真实值f(x)一致则误差为0,不一致则误差为1,即I(h(x)≠f(x)),由于x是一个随机变量,那么这个误差值也是一个随机变量,取值为0或1,其在训练集之外的所有样本上的期望可以看作假设函数h在训练集之外的所有样本上预测的错误率,即:

注:此处求和下标中的大X为训练集数据集,下边小x表示训练集外的数据。

因此, 我们就把这个错误率作为假设函数h在训练集之外的所有样本的误差。

与此同时,

在算法La的假设空间中可能会存在多个假设函数与训练集一致,每一个假设函数的产生是有概率的,令算法La在训练数据集X上产生某个假设h的概率为P(h|X, La),那么,我们接下来要做的是定义算法La在“训练集之外的所有样本上的误差”,而不只是La产生的一个假设h的误差。

我们已经定义了假设函数h在训练集之外的所有样本上的误差,由于h是算法La以概率P(h|X, La)产生的,那么我们可以定义算法La的误差为所有可能的h的误差的期望,即:

 上面的说明就是(1.1)是的含义了。

再来解释下(1.2式):

这里考虑的是二分类问题,而且假设真实目标函数f可以是任何输入空间X到输出空间{0, 1}的映射,那么整个函数空间的大小就应该是2^|X|。(指数)

 假设在整个函数空间中所有可能的目标函数f是均匀分布的(也就是说现实中的真实的问题是均匀出现的(因此这个就是我开头所说的前提!!!))。

在二分类问题中,对于一个样本点x,假设函数h(x)的预测值要么是0要么是1,不妨假设为0,那么由于f是均匀分布的,所有将x映射为0的真实函数f的数量和所有将x映射为1的真实函数f的数量应该是一样的,那么,在函数空间中就有一半数量的可能的f于假设函数h的预测不一致,于是就有:

等于

由此可以的到结论中的公式

公式结论为:总误差竟然跟学习算法无关!!!

因此读者在看的时候,会以为算法对总误差是没影响的。 其实细心的人,会看到我上文强调了一个前提,那就是”假设在整个函数空间中所有可能的目标函数f是均匀分布的

我们需要注意到,NFL定理有一个主要的前提:所有“问题”出现的机会相同,或所有问题同等重要。但实际情况并不是这样。很多时候,我们只关注自己正在试图解决的问题(例如某个具体应用任务),希望为它找到一个解决方案,至于这个解决方案在别的问题、甚至在相似的问题上是否为好方案,我们并不关心。所以,NFL定理最重要的寓意,是让我们清楚地认识到,脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有学习算法都一样好。要谈论算法的相对优劣,必须要针对具体的学习问题;在某些问题上表现好的学习算法,在另一些问题上却可能不尽如人意。

因此NFL原理中,算法的比较是需要基于某一现实问题才能进行比较,如果脱离现实问题,所有的算法都是同等高度的。

 

 

 

 

            </div>
### 机器学习绪论:头歌平台介绍和基础概念 #### 什么是机器学习? 机器学习是人工智能的一个子领域,专注于研究如何使计算机能够在不进行明确编程的情况下从经验中学习并改进性能[^1]。通过构建预测模型或决策规则,机器学习旨在处理各种复杂的数据集,并从中提取有价值的信息。 #### 头歌平台上机器学习课程的特点 在头歌实训平台上的《机器学习》系列课程中,学生可以接触到全面而系统的理论讲解以及实践操作机会。该平台提供了丰富的案例分析与项目实战环节,帮助学员深入理解不同类型的算法及其应用场景。特别是对于初学者而言,《机器学习——绪论》部分尤为重要,它涵盖了基本定义、历史背景和发展趋势等内容[^4]。 #### 基础概念解析 - **监督学习**:给定带有标签的数据样本作为输入,在此基础上训练得到映射函数f(x),使得新来的未见过的测试样例也能被正确分类或者回归预测。 - **无监督学习**:只提供特征向量而不给出对应的类别标记,目的是发现隐藏于数据内部结构模式,如聚类分析等任务。 - **强化学习**:智能体(agent)在一个环境中采取行动(action), 并根据环境反馈(reward/penalty)调整自己的行为策略(policy),以达到长期累积奖励最大化的目标[^2]。 ```python # Python代码示例 - 使用sklearn库实现简单的K近邻(KNN)分类器 from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier(n_neighbors=3) X_train, y_train = [[0], [1], [2], [3]], ['cat', 'dog', 'cat', 'dog'] knn.fit(X_train, y_train) print(knn.predict([[1.5]])) # 输出: ['dog'] ``` #### NFL定理的意义 No Free Lunch (NFL) 定理指出,在没有任何先验知识的前提下比较两个不同的优化算法是没有意义的;也就是说,不存在一种通用的最佳解决方案适用于所有可能遇到的问题实例。因此,在实际应用过程中应当针对特定场景选择合适的工具和技术路线[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值