在机器学习,特别是计算机视觉领域,我们经常希望模型能够像人类一样,通过极少量的样本甚至仅仅通过描述就能认识新事物。Zero-Shot, One-Shot, 和 Few-Shot 学习就是旨在实现这一目标的关键技术。这些术语描述了模型在面对一个从未见过的“新类别”时,学习和识别它所需要的样本数量。

基础:在“基类”上预训练

所有这些学习范式都有一个共同的起点:一个在大量标注数据(包含丰富的“基类”或“可见类”,Seen Classes)上预训练好的模型。这个预训练阶段的目的并非让模型记住这些基类,而是让它学习到一种通用的、可迁移的能力,例如:

  1. 学会提取鲁棒且有意义的视觉特征。
  2. 学会如何“学习”和“比较”(即元学习或度量学习)。
  3. 学会关联图像的视觉空间和文字的语义空间。

有了这个强大的预训练模型作为基础,我们才能讨论它如何应对“未见类别”。

Zero-Shot Learning (零样本学习)

当模型需要识别一个新类别,但没有任何(K=0)该类别的图像样本时,我们称之为零样本学习。

工作原理:

既然没有图像样本,模型依赖于辅助的语义信息 (Semantic Information) 来进行推理。这些信息为模型提供了关于新类别的描述性知识。

  • 学习依据:通常是类别的属性描述(例如,“斑马”的属性是“有条纹”、“像马”、“黑白色”)或词向量(Word Vectors)。
  • 核心能力视觉-语义匹配。模型必须是经过特殊设计的(例如,像CLIP这样的视觉-语言模型),它能够将输入图像的视觉特征,与不同类别的文字描述进行匹配,并找出匹配度最高的那个作为预测结果。
  • 关键点:一个标准的图像分类器(如在ImageNet上训练的ResNet)无法直接进行零样本学习,因为它不具备将视觉特征与任意语义描述关联的能力。

简而言之,零样本学习是给模型一本“字典”(语义描述),让它去识别一本没有插图的“书”(新类别的图像)。

One-Shot 与 Few-Shot 学习 (一样本与小样本学习)

当模型在识别新类别时,被允许接触少量标注样本时,我们称之为小样本学习。

  • One-Shot Learning (K=1):为每个新类别提供一个标注样本。
  • Few-Shot Learning (K>1):为每个新类别提供少数几个(K个,通常K很小,如5或10)标注样本。

核心区别:并非Fine-tuning,而是“比对”

一个常见的误区是认为 One-Shot/Few-Shot 学习就是用这 K 个样本对预训练模型进行微调 (Fine-tuning)。这种做法通常是不可行的,因为它会导致两个严重问题:

  1. 灾难性遗忘 (Catastrophic Forgetting):模型会忘记在预训练阶段学到的通用知识。
  2. 严重过拟合 (Severe Overfitting):模型会完美记住这 K 个样本的全部细节,但无法泛化到同类别其他稍有不同的图像上。

正确的范式是度量学习 (Metric Learning)元学习 (Meta-Learning)。在这个范式中,预训练模型的权重在测试阶段是冻结的,不进行更新。

  • 学习依据:提供的 K 个标注样本被用作**“参考样本” (Support Samples)**。
  • 核心能力特征相似度比较。模型作为一个强大的特征提取器和比较器,它会提取“查询样本”(待分类的图片)和“参考样本”的特征,并通过计算它们在特征空间中的距离来判断它们是否属于同一类别。

一个很好的类比是人脸识别系统:系统通过学习数百万张人脸,掌握了“比较两张脸是否为同一个人”的能力(预训练)。当你录入一个新的人脸时,只需一张照片(One-Shot),系统会将其特征存为参考,而不会重新训练整个网络。之后,它通过比较新照片与参考照片的特征相似度来进行识别。

总结对比

特性 Zero-Shot Learning (零样本) One-Shot Learning (一样本) Few-Shot Learning (小样本)
提供的新类别样本数 (K) K = 0 K = 1 K > 1 (通常很小)
学习依据 语义描述、属性、词向量 1个标注的参考样本 K个标注的参考样本
核心能力 视觉-语义关联与匹配 特征相似度比较 更鲁棒的特征相似度比较
模型权重 (测试阶段) 冻结 通常冻结 通常冻结

这些技术使得AI模型更加灵活和数据高效,向着仅需少量信息就能学习和泛化的目标迈出了重要一步,对于处理现实世界中类别众多且样本稀疏的场景至关重要。