基于实例的学习,又称基于记忆的学习,是一类机器学习算法,通过将新问题实例与存储在内存中先前见过的训练实例进行比较来做出预测。由于计算被推迟到观察到新实例之后才进行,这些算法有时被称为“懒惰”学习。这与急切学习方法形成对比,后者在训练期间构建泛化模型,然后丢弃原始数据。
这种方法被称为基于实例的,是因为它直接从训练实例本身构建假设,而不是推导出独立的函数或规则集。它是模式识别和数据挖掘等领域中的核心技术,并支撑了许多训练数据丰富但模型可解释性不那么重要的实际系统。
方法
基于实例的学习算法的一个例子是k近邻(k-NN)算法。它存储训练集的一个子集;当预测新实例的值或类别时,它计算该实例与训练实例之间的距离或相似度以做出决策。对于分类,k个最近实例可以通过多数投票或距离加权投票进行组合;对于回归,其目标值可以通过均值或加权均值进行组合。
距离度量和特征缩放的选择可以改变哪些实例被识别为最近邻。常见度量包括欧几里得距离、曼哈顿距离和闵可夫斯基距离,后者是前两者的推广。特征缩放,如归一化或标准化,确保具有较大范围的维度不会主导距离计算。其他基于实例的方法包括局部加权回归、基于案例的推理,以及按难度组织训练示例的课程学习变体。
计算特性
假设复杂度可以随数据增长。在最坏情况下,假设是n个训练项的列表,如果比较两个实例的成本被视为常数,则分类单个新实例的计算复杂度为O(n)。推迟计算使训练成本低廉,但将计算转移到预测时间。
对于使用简单闵可夫斯基距离的基本k-NN分类器,对n个存储样本(由d个特征描述)进行穷举搜索需要O(dn)时间。平衡k-d树可以将检索时间减少到O(d log n),尽管随着特征数量的增加,这种优势会减弱。在高维空间中,“维度灾难”会降低性能,因为距离变得不那么有区分度。为了减少训练实例所需的存储量以及对训练集中噪声的敏感性,已提出实例缩减算法,如压缩最近邻和编辑最近邻,这些算法移除冗余或噪声点。
应用与变体
基于实例的学习广泛应用于推荐系统、医学诊断和异常检测。在人工智能应用中,它作为评估更复杂模型(如深度学习网络)的基线。变体包括加权k-NN,其中较近的邻居具有更大的影响,以及基于原型的方法,将训练数据聚类为代表性样本。对于大规模数据集,通常采用近似最近邻搜索技术,如局部敏感哈希,以加速检索。
与其他学习范式的关系
与用于现代大型语言模型的神经网络或变换器不同,基于实例的方法不需要对参数进行迭代优化。它们是非参数化的,意味着模型复杂度随训练实例数量增长。这使得它们易于用新数据更新,但对于大规模数据集而言内存密集。相比之下,急切学习方法如残差网络或U-Net架构将信息压缩为固定大小的参数,实现更快的推理,但代价是更新时需要重新训练。
局限性与扩展
一个关键局限性是预测时的计算成本,尤其是在高维数据下。实例缩减和索引结构缓解了这一问题,但引入了开销。对不相关特征和噪声的敏感性可以通过特征加权或距离度量学习来解决。像数据增强这样的扩展可以生成合成实例以提高鲁棒性。在实践中,基于实例的学习对于中小型数据集以及可解释性和增量学习优先的问题仍然是一个有价值的工具。