机器学习中的单次学习2025年6月4日 | 阅读 9 分钟 本文详细介绍了机器学习领域的一次性学习,回顾了其基本概念和关键技术,并列举了主要的算法。它还概述了在哪些应用领域一次性学习能产生卓越的效益。 什么是一次性学习?一次性学习是指一种机器学习方法,通过这种方法,模型只需一个示例即可准备识别和确定新对象或模式。这与需要大量数据进行训练的传统方法形成对比。一次性学习依赖于模型从有限数据中泛化的能力。凭借提取和应用相关特征的能力,模型可以在遇到未知类别时准确预测,这使得该技术在数据不足或难以获取时非常有用。 一次性学习的关键特征
架构一次性学习架构各不相同,但其中一种最常见且被证明是有用的架构是 Siamese 网络。这种架构有两个相同的子网络(双胞胎),具有相同的权重。该网络经过训练,使其将属于同一类别的实例的嵌入尽可能地相互靠近,并尽可能地远离不同类别的实例,从而学习相似性度量。 方法1. Siamese 网络 用于从一对实例中推导出相似性函数。非常适合数据量低的情况,尤其是因为网络只关注区分对,而不是太多的类别示例。 2. 数据增强 旋转、缩放和裁剪等技术人为地使额外的训练集样本多样化,这尤其有利于模型,因为模型可以在少量数据的基础上学习更稳健的特征。 3. 迁移学习 在大型数据上预训练的模型在小型数据集上进行微调,利用学习到的表示来提高一次性学习性能。 结果评估1. 对新类别的泛化:模型成功的特点是其分类在训练期间未见过的类别的准确性。 2. 对变化的鲁棒性:一个好的一次性模型应该能够应对输入数据的变化,如光照、背景和方向。 3. 与基线的比较:将性能相对有效性与不使用一次性学习模型进行比较以进行评估。 4. 迁移学习的影响:应用时,预训练知识的贡献应体现在准确性的提高和快速收敛上。 5. 在少量示例上的性能:评估指标关注模型在每个类别少量示例下的性能程度,这既包括类别级别又包括整体数据集的准确性。 一次性学习是如何工作的?通过一次性学习,模型将能够从每个类别中给出的单个示例中对新对象或模式进行分类或识别。一次性学习不同于依赖大量数据集的传统机器学习方法,因为它旨在通过少量标记数据最大限度地泛化。以下逐步解释其工作原理: 1. 数据集准备 在传统机器学习中,模型根据包含每个类别大量示例的大型数据集进行训练。对于每个类别只有一个或极少数示例的情况,一次性学习就是为此而设计的。数据集几乎总是按类别组织,每个类别都指一个单一的参考示例或一个小的支持集,因此对于所考虑的模型来说,学习非常少量的数据至关重要。 2. 特征提取 原始的原始输入数据(以图像、音频和文本的形式)必须转换为模型可以适当处理的格式。这需要提取捕获每个输入本质的特征。一次性学习中的特征提取非常重要,因为它允许模型优先处理最相关的信息,即使示例样本非常有限。 3. 模型架构 一次性学习采用专门的神经网络架构来解决数据不足的问题。一些流行的架构包括 Siamese 网络、Matching 网络和 Prototypical 网络。这些模型旨在通过学习示例之间的关系或相似性来比较输入形式,而不是学习如何用大量标记数据进行分类。 4. 训练 在模型训练中,会显示成对的示例。一个是查询(要分类的对象),另一个是支持(参考示例)——一个已知的类别示例。学习发生在模型中,它通过将相似对在空间中更靠近地放置,而将其他对远离,从而学习区分相似和不同的对。这种方法使模型能够评估以前未见过的类别。 5. 损失函数 损失函数指导模型学习过程,这因所选择的架构而异。例如,Siamese 网络倾向于使用对比损失,它将相似对的嵌入推近,并确保不相似对的嵌入远离。这有助于模型建立一个可靠的度量来比较输入,这对于高效的一次性学习至关重要。 6. 测试和推理 训练后,模型将在新的、未见过的查询示例上进行测试,以测试其性能。为了对查询进行分类,模型通过计算嵌入之间的距离或相似性分数,将给定的查询与显示的支持示例进行比较。查询获得与其支持示例最相似的类别标签。该方法即使每个类别只有一个实例也能进行准确分类。 7. 微调和迁移学习(可选) 为了进一步提高性能,一次性学习模型可以使用在大型通用数据集上训练的模型中的权重进行初始化。这个过程,称为迁移学习,将使模型对一般特征有很好的理解,但会对其进行微调,以便在一次性任务中应用它们。当泛化很重要且标记数据不多时,微调非常有用。 一次性学习的不同方法为了克服一次性学习中从有限数据中学习的问题,已经开发了几种有效的方法。每种方法都涉及略微不同的方法来帮助模型从一个或几个示例中进行泛化。 1. Siamese 网络 Siamese 网络教神经网络学习输入对之间的相似性度量。通过比较两个示例并判断它们是否代表同一类别,模型学会区分相似和不相似的实例。这使得 Siamese 网络特别适合人脸识别等任务,在这些任务中,将新示例与已知示例进行比较至关重要。 2. Matching 网络 Matching 网络使用注意力机制和循环神经网络,利用少量标记示例的上下文进行预测。在特征提取过程中,模型测量新实例与支持集之间的相似性,并相应地加权每个示例。这使得它能够快速学习并从极少量示例中准确预测。 3. Prototypical 网络 在此策略中,模型通过对支持示例的嵌入进行平均来学习每个类别的原型(代表性嵌入)。在推理时,新实例与这些原型进行比较,并分配最近原型的类别。Prototypical 网络简单而高效,适用于少量分类任务。 4. 记忆增强神经网络 这些模型结合了一个外部记忆单元,用于存储观察到的示例信息。通过这种方式,网络可以在预测期间引用和获取相关数据,即使训练数据很少,也能学习和回忆模式。 5. 迁移学习和微调 迁移学习是在大规模异构数据集上预训练模型,然后针对一次性学习问题进行微调。此策略利用从较大数据集中提取的通用知识,在少量标记示例可用时提高性能。 使用 Python 实现一次性学习指南借助 Python 和 深度学习 框架,例如 TensorFlow 或 PyTorch,可以成功实现一次性学习。以下是构建简单一次性学习模型的高级概述,以 TensorFlow 为例: 1. 数据准备 将您的示例分组到不同的类别中,每个类别包含一个或几个样本。为了训练,将数据组织成对(正例和负例)或模仿一次性学习设置的示例池。 2. 数据加载 借助数据加载器或生成器,以高效的方式将数据馈送到模型中。在训练期间,您必须动态生成并提供对(或支持-查询集),以帮助模型学习示例之间的关系。 3. 模型架构 创建适合比较输入的神经网络架构。一些选项是 Siamese 网络、Matching 网络或 Prototypical 网络。TensorFlow 或 PyTorch API 用于定义模型,使其能够从输入数据中学习特征嵌入。 4. 损失函数 选择一个鼓励或阻止输入相似性或不相似性的损失函数。例如,通常实现对比损失或三元组损失,以使相似示例在嵌入空间中靠近,不相似示例彼此远离。 5. 训练循环 添加一个训练循环,该循环将获取输入对或集合,计算损失,并通过优化器(如 Adam 或 SGD)更新模型权重。密切关注损失和性能,以提高学习效率。 6. 评估 训练后,使用验证集或测试集评估模型。通过准确率、F1 分数或精确召回率来衡量其泛化新类别的能力。这旨在确定模型在一次性场景中的表现。 7. 推理 在进行推理时,通过将新查询示例与属于已知类别的支持示例进行比较来测试模型。模型应该根据学习到的嵌入确定最合适的匹配,模拟一次性分类。 一次性学习有什么用?一次性学习在标记训练数据有限的情况下被证明特别有效,因此传统的机器学习方法变得不那么适用或干脆值得怀疑。它在以下领域表现出色:为每个类别积累大量数据集成本高昂、耗时或不可能。下面给出了一些关键应用:
通过一次性学习,模型可以仅从一个示例中学习特定的视觉模式或对象。这非常适合检测训练集中未包含的稀有或新颖对象。
应用于仅根据一张图像或少量样本识别人员,一次性学习在安全、监控和生物识别认证系统中具有极高的价值。
模型能够区分不同人的手写字符或单词,而无需依赖大量数据,这使得它们在个人手写解释或历史文献分析中非常有效。
由于标记的医疗数据很少(可能受隐私限制和专家需求限制),一次性学习可以在现有少量标记医疗图像的情况下帮助诊断疾病。
它使我们能够以有限的视觉信息找到稀有或濒危的动植物物种,这对于生态和保护目的非常重要。 结论一次性学习是机器学习应用的一大进步,因为模型可以从单个示例中学习识别和泛化。它受到人类认知的启发,在数据有限或快速学习是关键的情况下特别有用。Siamese 网络、Matching 网络、Prototypical 网络和 Relation 网络等核心技术以最少的输入实现了高质量的模式识别。 一次性学习在从医疗诊断、机器人技术和人脸识别到自然语言处理等各个领域都已证明其价值。这使其与传统模型不同,因为它可以很好地处理小型数据集。随着研究的深入,算法的进步和模型的效率很可能会增加其使用机会,这将使一次性学习变得更加强大和便捷。 下一个主题机器学习示例 |
我们请求您订阅我们的新闻通讯以获取最新更新。