Few-Shot Learning
小样本学习(FSL)通过度量学习、元学习、微调或提示词,仅凭少量带标签示例识别新类别。
少样本学习(FSL)是指只用每个类别的少量标注样本来学习新任务(通常是识别新类别),一般每个类别只有 1 到 10 个样本。标准的监督学习每个类别需要数百或数千张标注图像,而对于罕见缺陷、罕见疾病或昨天才上市的产品,这些数据往往难以收集,甚至根本无法收集。少样本方法利用已有知识弥补这一差距:在大量相关数据上预训练的模型已经能够生成有助于区分新类别的特征,因此只需少量样本就足以定义新类别。语言模型中也有同样的思路:在提示中加入几个示例,就能引导模型执行新任务,无需训练。
N 路 K 样本任务#
少样本问题通常用 N 路 K 样本来描述:有 N 个新类别,每个类别有 K 个标注样本。这些标注样本组成支持集,模型则根据它对同一 N 个类别中另一组查询样本的分类效果接受评估。因此,一个 5 路 1 样本任务会给模型提供五个从未见过的类别各自的一个样本,并要求它将新图像归入这些类别。单样本学习是 K = 1 的情况,零样本学习则是 K = 0,此时类别由文本或属性描述,而不是通过样本提供。研究基准会使用训练期间未出现过的类别进行评估,例如 Omniglot(包含来自 50 种字母表的 1,623 个手写字符)和 miniImageNet(包含 100 个 ImageNet 类别,每类 600 张图像)。
少样本学习方法#
度量学习方法会训练网络,将图像映射到嵌入向量空间,使同一类别的样本彼此靠近,因此查询样本会被赋予最相似支持样本的标签。原型网络会将每个类别支持集中的嵌入向量取平均,形成一个原型,再将查询样本分配给最近的原型;新类别出现时无需重新训练。
其他方法会调整模型权重或模型输入:
- 元学习:使用基础类别中抽取的数千个小型模拟任务进行训练,让模型学会如何适应新任务。模型无关元学习(MAML)会学习一个初始化权重;在新任务的支持集上执行几步梯度更新,就能得到效果良好的权重。
- 迁移与微调:先在大型数据集上预训练骨干网络,然后只训练新的分类头,或使用较小的学习率在支持集上训练整个网络。这个简单基线在标准小样本基准上足以与专用元学习方法竞争;对大型预训练模型进行线性探测仍是强有力的小样本基线。
- 提示基础模型:大型语言模型可以根据提示中的少量示例执行新任务,无需更新权重;GPT-3 在二十多个语言基准测试中展示了这一能力。视觉模型也能以同样的方式使用视觉提示,例如示例边界框。
使用视觉提示进行少样本目标检测#
检测为少样本问题增加了定位要求:模型必须找到每个未经训练的类别实例。YOLO26 还为 YOLOE-26 提供支持。YOLOE-26 是一个开放词汇变体,其视觉提示编码器会将示例边界框转换为类别嵌入,然后无需训练,就能在新图像中检测和分割匹配的物体。具有相同类别 ID 的边界框会合并为一个提示,因此某个类别的两个示例就构成一个 2 样本支持集。本例将一张图像中的两个人作为支持集,并在另一张图像中查找相似对象:
import numpy as np
from ultralytics import YOLOE
from ultralytics.models.yolo.yoloe import YOLOEVPSegPredictor
# 支持视觉提示的 YOLOE-26 检查点
model = YOLOE("yoloe-26s-seg.pt")
# 支持集:参考图像中同一类别(人员)的两个示例框
boxes = np.array([[221.52, 405.8, 344.98, 857.54], [669.47, 392.19, 809.72, 877.04]])
support = {"bboxes": boxes, "cls": np.array([0, 0])}
# 查询:无需训练,在另一张图像中查找与示例相似的物体
results = model.predict(
"https://ultralytics.com/images/zidane.jpg",
refer_image="https://ultralytics.com/images/bus.jpg",
visual_prompts=support,
predictor=YOLOEVPSegPredictor,
)
result = results[0]
result.save(filename="few_shot_result.jpg")视觉提示无需为示例命名就能将其分组,因此结果中的匹配项会标记为 object0、object1 等,每个类别 ID 对应一个名称。
实际应用#
- 制造业检测:新类型的缺陷(例如新推出零件上的裂纹)在检验人员希望将其标记出来之前,可能只出现过几次;少样本检测或异常检测无需大量新数据集就能识别这类缺陷。
- 医学影像:罕见疾病的标注扫描图像很少,因此医学图像分析模型会利用少量专家标注病例,让预训练特征适应新的发现。
- 零售和机器人:商店不断上架新产品,机器人也不断遇到新物体;只需几张参考照片,系统就能识别货架上或夹爪中的每个物体。










