AI 基础

什么是元学习?

mm
将 Unite.AI 添加到您在 Google 上的首选来源

Meta-learning 在任务分布上训练系统,使其能够在有限的数据或计算资源下适应新的相关任务。它常被概括为“学习如何学习”,但技术目标更为精确: 优化学习者,使得先前任务的经验提升对后续任务的适应能力。

元学习与 few-shot learning 和 transfer learning 有交叉,但这些术语并不等同。few-shot 描述目标数据的数量;transfer 描述重用;元学习则明确将跨任务的适应过程纳入训练。

关键要点

  • 元训练使用大量任务,而不仅仅是大量独立样本。
  • 一个 N-way K-shot 训练集包含 N 个类别,每个类别有 K 个标记的支持示例。
  • 基于梯度、基于度量、基于记忆和学习优化器的方法以不同方式进行适应。
  • 性能在很大程度上取决于元训练任务是否与目标任务相似。
Meta-learning diagram showing sampled tasks, support and query sets, an inner adaptation loop, and an outer meta-optimization loop
元学习在任务之间进行优化,使学习者能够通过少量支持集进行适应。

任务、支持集和查询集

元学习数据集以任务的形式组织。在 few-shot 分类中,一个 episode 可能是 5-way 1-shot: 五个类别,每个类别一个标记的支持示例,以及用于评估适应性的额外查询示例。5-way 5-shot 任务为每个五个类别各提供五个支持示例——而不是总共只有五个示例。

在元训练期间,学习者在支持集上反复适应,并在查询集上进行评估。外层目标提升跨任务的未来查询性能。元验证在不同任务上调优选择,元测试则评估真正未见过的任务或类别。

基于梯度的元学习

模型无关元学习(Model-Agnostic Meta-Learning,MAML)学习一种初始化参数,使得通过少量 梯度 步即可在新任务上获得良好性能。内部循环使用支持数据来适应模型参数。外部循环则利用跨采样任务的查询损失来更新共享的初始化。

MAML 并不限于分类;当模型和任务可微分时,它也可用于回归和 强化学习。Reptile 提供一种更简洁的一阶方法,通过将参数朝向任务适应的解移动,而无需计算完整的 MAML 元梯度。

基于度量的元学习

基于度量的方法学习一种嵌入空间,使同一类别的样本彼此接近,不同类别的样本相互分离。原型网络对支持集的嵌入取平均,形成每个类别的原型,然后通过与这些原型的距离对查询进行分类。

匹配网络和 Siamese 风格的网络使用相关的相似性机制。这些方法并非仅检查模型是否“命中目标度量”;学习到的距离或表示本身就是预测过程的一部分。

基于记忆的方法和学习优化器

基于记忆的系统利用循环或注意力机制的状态来存储当前任务的信息。学习优化器以梯度或训练信号为输入,学习如何更新另一个模型。这些方法可以发现适应规则,但会增加参数、计算量以及潜在的过拟合风险。

元学习与上下文学习

大型 transformer 可以通过提示中提供的示例在不更新权重的情况下调整输出,这被称为上下文学习。它类似于元学习的行为,训练数据可能会促进任务推断,但上下文学习者并未自动使用经典的episodic 元学习目标进行训练。

元学习的适用场景

潜在的应用包括个性化、机器人、低资源识别、少量测量的科学任务以及对新环境的快速适应。当拥有大量相关源任务而目标任务数据稀缺时,元学习最具吸引力。

局限性

元学习可能计算成本高,因为训练将适应过程嵌套在优化之中。结果对任务构建、支持/查询泄漏、模型结构以及领域迁移非常敏感。基于狭窄、同质任务训练的模型在分布之外的适应性可能较差。

对比应包括普通的迁移学习和多任务基线。一个强大的预训练表示加上标准微调,往往比专门的元学习算法更简洁且更有效。

任务、适应以及内外部优化结构

元学习在任务分布上进行训练,使学习者能够在有限的数据或更新下适应新任务。每个 episode 采样一个任务,将示例划分为用于适应的支持集和用于评估的查询集,并在 episode 之间更新共享知识。基于度量的方法学习嵌入和比较规则;基于优化的方法学习初始化或更新行为;基于记忆和模型的方法则依据任务示例进行条件化。任务分布即真实的训练数据,必须与未来的适应问题相似。

在模型无关元学习中,内部循环在支持示例上适应参数,外部循环在适应后的查询示例上优化性能。高阶梯度计算成本高,一阶近似在保真度与成本之间进行权衡。原型网络通过支持集的中心点表示每个类别,并依据距离进行分类。这些方法假设类别几何、适应步数和 episode 构造能够反映实际部署。某些方法看似快速学习,却可能利用固定标签、采集伪影或源数据集之间的重叠。

评估、基线以及真实世界的局限性

需要使用独立的训练、验证和测试任务——而不仅是示例——来衡量对真正未见任务的适应能力。报告准确率或损失随 shots 与适应步数的变化、跨任务的置信区间、计算、内存以及对支持集组成的敏感性。与迁移学习、对预训练模型的微调、最近邻以及在所有源数据上联合训练的模型进行比较。当基线使用等价的骨干网络、数据增强和调优时,许多表面的元学习提升会显著收缩。

实际部署需要能够识别新任务是否超出元训练分布。质量差或标记错误的支持示例可能导致快速且自信的失败。限制更新幅度、验证适应后的模型、保留后备方案,并防止适应数据被投毒。跟踪基础模型、任务采样器、episode 种子和适应代码。元学习适用于大量小数据问题的重复族群,但它并不会从任意示例中创造通用学习能力,也不能消除对领域特定评估的需求。

案例演示:跨机器的 few-shot 适应

制造商将每种机器类型视为一个任务,并在大量具有已验证维护结果的机器上进行异常表示的元训练。测试机器在任务训练中被完全排除。对于新机器,使用少量支持集覆盖正常运行模式,而不是任意几分钟的数据。元学习与预训练的冻结编码器、最近邻以及使用相同支持示例和计算资源的普通微调进行比较。

评估重复多次支持集选择,并报告事件召回率、误报率、适应时间和方差。当新机器的传感器集合或动力学超出任务分布时,系统会选择弃权。适应更新受到限制并在影响维护前进行审查。支持标签和机器身份受到防投毒保护,每个适应模型都保留其基础版本和示例。只有在真实任务转移下持续优于更简单的迁移时,快速适应才被接受。

实施证据与运营准备度

生产决策需要的不仅是一次成功演示。必须明确预期用户、运行环境、输入、输出、依赖关系、负责人以及每项关键故障的后果。调优前建立可复现的基线和版本化的评估集。测试普通情况、边界条件、格式错误或缺失的输入、分布漂移、依赖中断、误用以及最可能被服务不足的群体或环境。测量任务质量同时关注校准或不确定性、延迟、吞吐量、资源成本、可访问性、隐私和安全。记录每一次转换和阈值,以便独立审查员能够复现结果并区分证据与吸引人的原型。

上线前,指定发布、例外、变更、回滚和退役的授权。采用分阶段发布,保留安全的后备方案,并通过有意注入的故障验证监控。运营遥测应揭示输入质量、输出行为、模型或规则版本、依赖健康状况、人为覆盖以及已确认的结果,而不收集不必要的敏感数据。定义警报阈值和响应负责人,然后在部署后审查真实世界的证据,而不是假设离线性能会持续。每当数据源、用户、模型、供应商、政策、硬件或目标变化时都需重新评估。维护中的系统还需有文档化的恢复、事故学习、删除与保留流程,以及明确的停用或替换时点。

常见问题解答

few-shot 提示是元学习吗?

few-shot 提示是一种上下文适应技术。它可能表现出跨任务学习的行为,但并未通过支持/查询 episode 或显式的元优化循环进行训练。

元学习最大的风险是什么?

元训练任务与目标任务之间的不匹配可能导致在基准测试中表现出快速适应的优势,却在实际部署中失效。任务划分和源数据来源必须像普通的训练/测试划分一样进行严格审计。

主要参考文献

博客作者和程序员,专攻 Machine Learning 和 Deep Learning 领域。Daniel 希望帮助他人利用 AI 的力量为社会做好事。