机器学习中的lazy method与eager method的比较

一 分类方法

机器学习的算法进行分类的时候,一般是根据是否有监督分为:无监督学习,有监督学习,半监督学习。有时候会再加上强化学习(Reinforcement learning)。

但是,根据算法的原理,还有另一种分类方法。即:

如果算法对整个训练数据集并没有训练得到一个整体的模型,这样,对于每一个新的测试数据点,都需要根据该点和训练数据集来对目标函数进行预测,叫做lazy method。叫lazy的原因是因为他是“被动的”等待新的测试数据到来,才开始对其进行预测,而不是早早的根据训练数据集把模型建好,对与新的测试数据,只需要往模型中代入就可以得到结果了。后一种先算好模型再进行预测的算法叫做eager method

二 典型算法

lazy method的典型算法是KNN, LWR(locally weighted regression, LWR可以看作是KNN中将邻域概念进行推广), Case-based reasoning(这个算法还不太懂?);eager method算法则多了,除了lazy method中提到的三种算法之外,几乎所有的机器学习算法都可以认为是eager method,比如linear regression, logistic regression, ANN, SVM, decision tree, relation rule, etc., 因为他们都是根据训练数据集建立好模型从而对新数据进行预测的。其中,RBF(radical basis function networks)算是一种其中比较特殊的一种(特殊在哪里稍后讲)。

三 Lazy method与Eager Method的解释和比较

lazy method的特点相当于对于测试数据点,只在测试数据点附近的区域内,根据相应的训练数据训练出一个近似的模型(如:KNN只需要考虑最近邻的K个数据点即可)。与eager method算法相比,lazy method每次都在测试数据点周围训练得到一个新的局部最优的目标函数的近似,他们可选的hypothesis space比eager method更大,因此,lazy method算法可以看作是将不同位置的局部最优的目标函数近似进行拼接起来得到的。

eager method需要考虑全局最优,因此只能得到一个最终的目标函数的全局最优近似。由于受到模型需要满足全局最优的限制,因此,对于新的测试点的位置,eager method算法并不像lazy method算法那样可以根据不同的位置,不同的周围训练数据点等来选择不同的近似拟合函数,所以,在局部上,eager method可能表现要比lazy method要弱。

那么,是否可以说,lazy method效果就要比eager method方法要好?

当然不是。具体使用中,lazy method要受到:1.近邻域的合理选择;2.近邻域内局部最优目标函数的近似方法是否合适;3.每次预测均需临时计算,消耗时间长等问题的干扰。

lazy method可以使用不那么复杂的局部最优模型拼接成一个很复杂的模型,对目标函数有更好的模拟和近似,同时,由于并没有对训练数据集进行处理,所以没有丢失任何训练信息。但是由于之前提到的缺点,因此,lazy method并不适合计算量大,实时性高的应用场景。

那么,能否将eager method进行改进,从而获取类似lazy method的更好的预测效果呢?

RBF就是这样一种特殊的eager method。RBF本身是一种全局最优的模型,但该模型的每个局部都是由该局部的训练数据确定的局部最优,相当与根据局部的数据来进行构建的ANN网络。那么,RBF与lazy method的区别在哪里?在lazy method中,在测试数据到来之前,根本没有建立好的模型可以供预测。对于每一个新的测试数据点q,算法根据q的取值,选择附近的局部区域中的训练数据点来进行建模,得到局部最优模型,从而对q的结果进行预测。在RBF中,由于想要在测试数据来临之前就对所有的数据进行建模完毕,从而使得在新的测试数据点到来之后,可以直接根据模型来进行预测,减少了预测时的计算,因此,RBF中使用训练数据点来代替测试点,对于每一个训练数据点,都将其当作测试数据点,从而在该位置建立好局部最优模型,最终得到的就是根据整个训练数据集而建立的全局模型。这要,RBF既保留了局部最优的性质,又具有了全局模型的性质(可以根据模型直接对测试数据进行预测,无需临时建模)。当然,根据之前的定义,RBF还是归属于eager method中的。



参考:

Tom Mitchell的机器学习书,CH8。

你可能感兴趣的:(机器学习中的lazy method与eager method的比较)