资讯

懒惰学习是什么?训练时什么都不做,等到预测时再干活

2026-11-053 分钟阅读百科
TL;DR懒惰学习(Lazy Learning)是一类在训练阶段只把训练样本存储起来、几乎不做计算,直到收到预测请求时才利用这些样本进行推理的机器学习方法,K 近邻算法是典型代表,与先训练出模型的急切学习相对,优点是适应新数据方便,缺点是预测慢、存储开销大。

懒惰学习(Lazy Learning),也叫惰性学习,是一类特殊的机器学习方法:在训练阶段,它几乎什么也不做,只是把训练样本简单地存储起来;直到需要对一个新样本进行预测时,它才开始利用存储的训练样本进行计算,给出结果。与之相对的是急切学习(Eager Learning),它在训练阶段就从数据中学习出一个模型,预测时直接使用这个模型,而不再需要原始的训练数据。

一个形象的比喻

可以把两种学习方式比作两种备考的学生。急切学习的学生在考试之前就认真地总结出了所有的知识要点和解题方法,考试时直接运用这些总结好的规律来答题,不需要再去翻书。懒惰学习的学生考试之前什么也不总结,只是把所有的书和练习题都带在身边,考试时遇到一道题,就去翻找跟它最相似的那几道练习题,参考它们的答案来作答。这有点像“开卷考试”。

典型代表:K 近邻算法

K 近邻算法是懒惰学习最典型的例子。它的“训练”过程只是把所有的训练样本保存下来。当需要预测一个新样本的类别时,它计算这个新样本与所有训练样本之间的距离,找出离它最近的 K 个样本,然后看这 K 个样本中哪个类别最多,就把新样本归为这个类别;对于回归问题,则取这 K 个样本目标值的平均。除了 K 近邻,局部加权回归、基于案例的推理等方法也属于懒惰学习。而决策树、逻辑回归、支持向量机、神经网络等大多数常见的方法都属于急切学习。

优点

训练几乎不需要时间,只需要存储数据。容易加入新数据:有了新的训练样本,只需要把它们加进存储中就可以了,不需要重新训练整个模型,非常适合数据不断更新的场景。能够适应复杂的局部规律:它不需要假设数据服从某种全局统一的规律,而是根据每个新样本附近的局部情况来做判断,因此可以很灵活地拟合复杂的决策边界。另外,预测的理由比较直观:可以直接展示新样本是因为与哪几个训练样本相似而得出这个结论的。

缺点

预测速度慢:每次预测都需要与大量的训练样本进行比较,当训练数据很多时,预测会非常耗时。存储开销大:需要一直保存全部的训练数据。对无关特征和特征的尺度很敏感:在计算距离时,无关的特征会干扰判断,不同特征的取值范围差异大时也需要先进行标准化。在高维数据上效果会变差:由于维度灾难,在高维空间中样本之间的距离会变得越来越相近,“最近的邻居”也不再那么有意义。

为了加快预测的速度,人们发展了 KD 树、球树等数据结构,以及各种近似最近邻搜索算法,可以快速地找到大致最近的邻居,而不需要和每一个样本逐一比较。

与今天的技术的联系

懒惰学习的思想在今天的人工智能中仍然可以找到影子。检索增强生成就有类似的特点:大语言模型在回答问题时,先从一个知识库中检索出与问题最相关的资料,再参考这些资料来生成回答,而不是把所有的知识都预先学习到模型的参数中,更新知识库也不需要重新训练模型。大语言模型的“上下文学习”也有几分相似:在提示词中给出几个示例,模型在回答时参考这些示例完成任务,而不需要更新模型的参数。