美文网首页周志华机器学习
程序员的机器学习笔记-第一篇 NFL定理

程序员的机器学习笔记-第一篇 NFL定理

作者: 沈先生的格物志 | 来源:发表于2018-01-22 02:54 被阅读0次

            在前一篇笔记中介绍了一些机器学习中的基本概念,其中提到了“模型”和“假设空间”的概念,也说过“统计学习首先要考虑的问题是学习什么样的模型,模型确定了,模型的假设空间自然就确定了,后面要做的就是从假设空间子搜索最优的假设”。那么,大家可能就会提出这样的问题“哪一种模型能提出最好的假设空间,从而得到性能最好的假设函数?”或者“有没有一个最强大的模型,使用它就可以解决所有的问题”或者更具体的“传统的机器机器学习技术和现在正火热的深度学习哪个更好?”。答案很简单:不结合具体的问题去比较哪个模型更好没有意义!接下来我们来看一个叫“没有免费午餐”(NFL,No Free Lunch)的理论,它会告诉我们为什么是这个答案。在接下来的讨论中我们不区分模型、策略和算法,将它们统称为“算法”或“机器学习算法”,将由“算法”最终训练出的最佳假设称为“模型”。

            首先看一个简单例子(来源:周志华《机器学习》):

            假设我们有6个样本点(xi, yi)组成的训练集,分布如下图:

            假设我们选择了两种不同的机器学习算法La和Lb在这个训练集上作训练,它们各自搜索出了各自假设空间中最佳的假设函数A和B,对应上图中的A和B两条曲线。那么对于A和B这两个模型到底哪一个对未来的新的数据的预测更好呢?

            我们也许倾向于结构更简单的A。好吧,如果我们的实际问题的数据分布如下图所示,那么A的性能的确比B好,A与训练集外的样本更一致,预测的比B准确:

    上图中,白点为测试样本,黑点为训练样本。

    但是,现实的问题也有可能是这样的:

    在上面的这种情况下,B的性能比A好。

            上面的例子说明了,不结合具体问题的情况下,对于一个学习算法La,若它在某个问题上比学习算法Lb好,则必然存在另一些问题,在那里Lb比La好。这个结论对任何算法都成立,哪怕La是一个非常先进的算法,而Lb只是“随机胡猜”算法。

            周志华《机器学习》中给出了一个简单的形式化的证明,我会在其基础上增加一些解释来说明某些式子的意义。

    周志华《机器学习》原文:

            我解释下为什么使用(1.1)式作为“训练集之外的所有样本上的误差”。

            首先,我们是这样定义一个假设函数h对一个样本点x的预测误差的:预测值h(x)与真实值f(x)一致则误差为0,不一致则误差为1,即I(h(x)≠f(x))

            由于x是一个随机变量,那么这个误差值也是一个随机变量,取值为0或1,其在训练集之外的所有样本上的期望可以看作假设函数h在训练集之外的所有样本上预测的错误率,即:

            我们就把这个错误率作为假设函数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的预测不一致,于是就有:

    等于

            上面是对于NFL的简化推导的说明。我们现在来看看这个NFL的结论。结论很有意思,总误差与学习算法无关,任意两个学习算法它们的期望性能是相同的。既然所有学习算法的期望性能都和随机胡猜差不多,那还有什么好学的?

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

            可行的做法是,针对我们要解决的问题,比较可能的模型的预测性能,选出针对该问题最好的模型。

            最后,加一点我的理解,不一定正确,仅供参考。在《机器学习中》只对f按均匀分布算了误差总和,其实我们可以算一下学习算法La在所有问题按均匀分布出现时的期望误差,这个期望误差其实就是学习算法La在均匀分布的所有问题上的不准确率,它的结果是:

            其中X是样本空间,D是训练数据集,x∈X-D就是训练集之外的所有样本。式子中求和的部分是对x的概率求和,所以有E<=1/2, 也就是说这个不准确率是有上界的。训练数据集越小,这个不准确率越接近1/2,即当训练数据不足时,学习算法想给均匀出现的所有二分类问题提供一个通用的模型其准确率和瞎猜差不多接近一半一半;但是如果能有充足的训练数据,虽然学习算法之间的性能无法评估,但是学出来的模型的准确率高于50%,学习总比不学强。

    相关文章

      网友评论

        本文标题:程序员的机器学习笔记-第一篇 NFL定理

        本文链接:https://www.haomeiwen.com/subject/tjicaxtx.html