零样本学习
定义: 模型在训练阶段从未见过目标类别的任何样本,但在测试时需要识别出这些新类别。

核心思想: “触类旁通”或“知识迁移”,模型不是学习具体的视觉特征到类名的映射,而是学习一个共享的语义空间。
关键要素:
- 可见类别: 训练时使用的、有充足样本的类别。
- 不可见类别: 测试时需要识别的、训练时从未见过的类别。
- 语义嵌入: 一个连接视觉特征和类别概念的桥梁,通常用属性、词向量或语言模型描述来表示。
- 属性: 人工定义的(有毛发、四条腿、会飞、有轮子)。
- 词向量: 从大型语料库中学习到的单词分布式表示(如 Word2Vec, GloVe)。
- 语言描述: 使用大型语言模型(如 BERT, CLIP 的文本编码器)生成的类别文本描述。
工作原理:
- 训练: 模型学习将图像特征映射到其对应类别的语义嵌入上,学习“老虎”的图片应该靠近“有毛发、有条纹、是猫科动物”这个语义向量。
- 测试: 当输入一个“斑马”(不可见类别)的图片时,模型提取其视觉特征,并将其投射到同一个语义空间中,然后在这个空间中,寻找与“斑马”的语义嵌入(“有毛发、有条纹、是马科动物”)最接近的点,从而完成分类。
经典比喻: 你从未见过“独角兽”,但我告诉你它“像马,但有螺旋角”,当你看到一张独角兽的图片时,你就能凭借对“马”和“角”的理解认出它。
典型应用:
- 识别稀有或新物种。
- 场景理解中的新物体识别。
- 多模态模型的基础(如 CLIP, DALL-E)。
小样本学习
定义: 模型在每个新类别上,只提供极少量(通常是1个、5个或10个)的标注样本,就能快速学习并泛化。
核心思想: “学会如何学习”,目标是训练一个模型,使其具备强大的从少量样本中快速归纳的能力,而不是记忆大量的特征。
关键设定:
- 支持集: 提供的少量标注样本(如 1-shot 就是每个新类别1个样本)。
- 查询集: 需要分类的测试样本。
- N-way K-shot: 最常用的测试基准,N 个类别,每个类别 K 个样本作为支持集。
主流方法:
-
基于度量学习:
- 学习一个通用的、可迁移的特征提取器,将图像映射到一个特征空间。
- 在这个空间中,同类样本距离近,不同类样本距离远。
- 测试时: 计算查询样本与支持集中所有样本在特征空间中的距离(如余弦距离、欧氏距离),通过最近邻等方式分类。
- 代表模型: 孪生网络、原型网络、关系网络。
-
基于元学习:
- 在训练阶段模拟测试时的“小样本”场景,训练过程由许多小任务组成。
- 模型的目标是优化其初始参数,使得在面对一个由支持集和查询集构成的新任务时,经过少量几步梯度更新就能在查询集上表现良好。
- 代表算法: MAML。
-
基于数据增强与正则化:
对极少的样本进行强力的数据增强(旋转、裁剪、颜色变换等),或引入特殊的正则化技术,防止模型对这几个样本过拟合。
经典比喻: 你是一个擅长快速学习新概念的“学霸”,老师给你看一个全新的数学公式和1-2个例题(支持集),你就能解出同类型的新题目(查询集)。
典型应用:
- 工业缺陷检测(缺陷样本极少)。
- 个性化推荐(新用户/新商品只有少量交互)。
- 医疗图像诊断(罕见病病例稀少)。
| 特性 | 零样本学习 | 小样本学习 |
|---|---|---|
| 目标 | 识别完全未见的类别 | 从极少样本中快速学习新类别 |
| 数据依赖 | 依赖外部语义知识/描述 | 依赖目标类别的少量示例图片 |
| 核心 | 语义关联与迁移 | 度量学习与快速适应 |
| 测试输入 | 测试样本本身 | 测试样本 + 支持集(少量样本) |
| 挑战 | 语义鸿沟、领域偏移 | 过拟合、任务多样性 |
| 关系 | ZSL 可以看作是 0-shot 的 FSL | FSL 是 K-shot(K>0) 学习 |
发展趋势与联系
- 广义零样本学习: 更现实的设定,测试集同时包含可见类和不可见类,避免模型偏向于预测可见类。
- 跨模态赋能: 像 CLIP 这样的模型,通过在互联网级别的“图像-文本对”上进行预训练,同时兼具了强大的零样本和小样本能力。
- 零样本: 直接输入类别名称或描述即可分类。
- 小样本: 提供少数几个样本作为“上下文”,能极大提升在特定领域的性能。
- 与大模型结合: 大语言模型本身是强大的零样本/少样本学习者,视觉领域也通过视觉-语言大模型走向了同样的道路。提示学习和上下文学习成为实现少样本学习的新范式。
- 零样本学习依赖于先验语义知识来桥接未知。
- 小样本学习依赖于从少量样本中归纳的通用能力。
它们共同代表了人工智能从“需要大量数据喂养”走向“具备人类-like 学习能力”(举一反三、触类旁通)的关键技术路径,随着多模态大模型的爆发,这两类任务正被统一到一个更强大的框架之下。