机器学习开篇之没有免费午餐定理

       当我们拿到数据之后,构建机器学习算法的第一步应当是:观察数据,总结规律。

       目前由于大数据和深度学习的发展,很多人会认为,只要收集足够多的数据,从网上的开源算法模型中随便找一个,直接将数据丢到模型中去训练,就可以获得很好的结果。这样的观点在大多数情况下都是不正确的。我们需要对数据有一个感性的认识,如果我们对数据没有感性的认识,我们就很难设计出好的算法,也很难估计算法可能达到的性能极限。

       对于不同的机器学习任务,我们怎么样去选择一个更好的机器学习算法呢?

没有免费午餐定理(No Free Lunch Theorem)

       1995年,Wolpert和Macerday提出了没有免费午餐定理。该定理的大致内容概括为:任何一个预测函数,如果在一些训练样本上表现好,那么必然在另一些训练样本上表现不好。如果不对数据在特征空间的先验分布有一定的假设,那么表现好与表现不好的情况一样多。因此,没有任何情况下都最好的机器学习算法。

 

       通俗地说,没有免费午餐(No Free Lunch, NFL)定理证明了任何模型在所有问题上的性能都是相同的,其总误差和模型本身是没有关系的。也就是每种问题出现的概率是均等的,每个模型用于解决所有问题时,其平均意义上的性能是一样的。

        所有模型在等概率出现的问题上都有同样的性能,这件事可以从两个角度来理解:

       一是从模型的角度来看,如果单独拿出一个特定的模型来观察的话,这个模型必然会在解决某些问题时误差较小,而在解决另一些问题时误差较大

       二是从问题的角度来看,如果单独拿出一个特定的问题来观察的话,必然有某些模型在解决这些问题时具有较高的精度,而另一些模型的精度就没那么理想了。

       举个例子来说,如果把不同模型看成一个班级里的不同学生,不同问题看成考试时的不同科目,NFL 定理说的就是在这个班里,所有学生期末考试的总成绩都是一样的,既然总成绩一样,每一科的平均分自然也是一样的。这一方面说明了每个学生都有偏科,数学好的语文差,语文好的数学差,如果数学语文都好,那么英语肯定更差;另一方面也说明了每个科目的试题都有明显的区分度,数学有高分也有低分,语文有高分也有低分,不会出现哪一科上大家都是 90 分或者大家都是 30 分的情形。

       NFL 定理最重要的指导意义在于先验知识的使用,也就是具体问题具体分析。机器学习的目标不是放之四海而皆准的通用模型,而是关于特定问题有针对性的解决方案。因此在模型的学习过程中,一定要关注问题本身的特点,也就是关于问题的先验知识。这就像学习数学有学习数学的方法,这套方法用来学习语文未必会有良好的效果,但它只要能够解决数学的问题就已经很有价值了。脱离问题的实际情况谈论模型优劣是没有意义的,只有让模型的特点和问题的特征相匹配,模型才能发挥最大的作用。

       在周志华的《机器学习》也就是通常所说的西瓜书中有这样一个例子:

       图中的黑点代表训练集。如果采用两种不同的算法,他们有着不同的归纳偏好,或者说训练策略,可能会训练出 A 和 B 两个模型(即假设),那么对于第一张图中的测试数据集(白点),显然 A 比 B 拟合得更好,即 A 的泛化能力更强;而对于第二张图则相反,B 在测试数据集上表现更出色。

       即便左边的图中的数据点的平滑分布似乎是一个更”常见“,更”合理“的现实问题,但很遗憾这只是你的一厢情愿。从数学上讲左右两张图所描述的问题,它们的地位是一样的,出现的可能也是一样,并不存在谁比谁更常见更符合现实。

       ”没有免费的午餐“定理正是要告诉我们,没有什么算法是适用于所有的现实问题的,任何两个算法,以及它们训练出来的模型,在所有的现实问题的集合面前是无优劣的,它们的性能的数学期望值是一样的。对于不同的现实问题,要选择相应的算法来解决。

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lion丶Dream

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值