术语 | 定义 | 示例(以翻译任务为例) |
---|---|---|
Zero-Shot | 模型不依赖任何示例,直接根据任务描述生成结果。 | 输入:将英文翻译为中文: "Hello" → 输出:你好 |
One-Shot | 模型接收1个示例后,理解任务规则并应用于新输入。 | 输入:示例:Apple → 苹果。翻译:Banana → ? → 输出:香蕉 |
Few-Shot | 模型接收少量示例(通常2-5个),学习任务模式后泛化到新问题。 | 输入:示例:Dog → 狗,Cat → 猫。翻译:Bird → ? → 输出:鸟 |
维度 | Zero-Shot | One-Shot | Few-Shot |
---|---|---|---|
示例数量 | 0 | 1 | 通常2-5个 |
输出质量 | 不稳定,依赖描述质量 | 显著优于Zero-Shot | 通常最优(任务复杂时) |
适用场景 | 简单、通用任务 | 需明确格式的任务 | 复杂或专业领域任务 |
计算成本 | 最低 | 低 | 较高(长上下文消耗) |
错误敏感性 | 高(易偏离意图) | 中(示例错误易误导) | 低(多示例互校验) |
一、Zero-Shot(零样本学习)
1.1 定义
Zero-Shot Learning(ZSL) 指模型在未接收任何任务专属样本 的条件下,仅通过任务描述 或语义关联 完成对新类别/任务的识别或生成。其核心是知识迁移------将预训练阶段学到的通用能力泛化到未知领域。
类比理解 :
人类若已知"斑马有黑白条纹",即使从未见过"斑驴",也能根据描述"斑驴是斑马与驴的杂交后代"推测其形态------这正是ZSL的思维本质。
1.2 解决的核心问题
当面临以下场景时,传统监督学习失效,需依赖ZSL:
-
样本稀缺:获取标注数据成本高(如罕见疾病诊断)。
-
类别动态扩展:需实时识别新增类别(如电商平台每日新增商品)。
-
长尾分布:大量类别仅有极少数样本(如生物物种识别)。
1.3 技术实现原理
1. 核心架构

2. 关键组件
-
特征提取器:CNN/ViT等提取数据特征(如图像纹理、文本语义)。
-
语义空间:
-
人工定义属性(如"有翅膀""可飞行")。
-
词向量(Word2Vec/GloVe)。
-
知识图谱嵌入(如TransE)。
-
-
兼容性函数 :计算特征向量与语义向量的匹配度(常用余弦相似度 或双线性映射)。
3. 训练与推理流程
训练阶段:
-
使用已见类别(Seen Classes) 数据训练特征提取器和兼容性函数。
-
构建语义描述库(所有类别的属性向量)。
推理阶段:
-
输入新样本(未见类别/Unseen Classes)。
-
模型计算其与所有语义向量的兼容性得分。
-
选择得分最高的语义向量对应类别作为预测结果。
示例 :
训练集:已学习"老虎"(条纹)、"猎豹"(斑点)的语义。
预测新样本:提取特征→与语义库匹配→若与"条纹"兼容性高→输出"斑马"。
1.4 两类主流方法
1. 基于嵌入的方法(Embedding-Based)
-
原理 :将数据特征和类别语义映射到共享向量空间。
-
经典模型:
-
ALE(Attribute Label Embedding):双线性兼容函数。
-
DEVISE:使用词向量,通过排序损失优化兼容性。
-
-
优势:计算高效,泛化性强。
2. 基于生成的方法(Generative)
-
原理 :利用GAN/VAE为未见类别生成虚拟样本,将ZSL转化为监督学习。
-
代表工作:
-
f-CLSWGAN:生成对抗网络合成样本。
-
CE-GZSL:解耦特征生成缓解过拟合。
-
-
优势:可复用成熟分类器,避免语义鸿沟问题。
1.5 核心挑战与解决方案
挑战 | 原因 | 解决方案 |
---|---|---|
语义鸿沟 | 特征空间与语义空间结构不一致 | 跨模态对齐(如CMM模型) |
领域漂移 | 已见/未见类别分布差异大 | 生成方法+领域自适应(如LSA) |
偏见问题 | 模型倾向预测已见类别 | 校准偏移(如COSMO) |
多模态语义融合 | 单一语义描述不充分 | 混合属性(人工+词向量+知识图谱) |
1.6 应用场景举例
-
计算机视觉:
-
开放类别识别:自动驾驶中识别未知障碍物。
-
细粒度分类:鸟类子类识别(仅通过文字描述)。
-
-
自然语言处理:
-
零样本文本分类:新闻归类到新增主题(如突发疫情)。
-
意图识别:对话系统理解用户新指令(如"帮我预约火星旅行")。
-
-
生物医学 :罕见病诊断:根据基因描述识别未收录疾病。
-
工业检测 :缺陷检测:通过语义描述识别新型缺陷模式。
1.7 前沿进展(2023-2024)
-
大语言模型(LLM)赋能ZSL:
-
提示词工程 :GPT-4通过任务描述实现零样本分类(如:
"这是关于气候变化的文章吗?"
)。 -
语义增强 :LLM自动生成类别属性描述(如:
"斑马:哺乳动物,黑白条纹,栖息于非洲草原"
)。
-
-
视觉-语言模型突破:
-
CLIP(OpenAI):400M图像-文本对预训练,零样本ImageNet分类准确率超监督基线。
-
Flamingo(DeepMind):多模态上下文学习支持开放域识别。
-
-
知识图谱融合 :KG-ZSL:利用知识图谱关系路径增强语义表示(如"斑马→食草→栖息地→草原")。
1.8 总结
Zero-Shot Learning是AI泛化能力的终极考验,其技术演进分为三阶段:
-
传统ZSL(2010-2018):依赖人工属性,解决语义鸿沟。
-
生成式ZSL(2018-2022):GAN/VAE合成样本缓解数据稀缺。
-
大模型时代ZSL(2022-):LLM+多模态模型重塑范式。
核心价值 :在医疗、工业、安全等高价值低数据场景中,Zero-Shot是突破监督学习天花板的关键路径。随着LLM对语义理解的深化,其性能边界正快速逼近Few-Shot,成为实用化AI的核心组件。
二、One-Shot(单样本学习)
2.1 定义
One-Shot Learning 指模型仅通过单个训练样本 学习一个新类别或任务的能力。其核心挑战是:在极度数据稀缺条件下实现泛化,突破传统深度学习对大数据量的依赖。
类比理解 :
人类看过一张"鸭嘴兽"照片后,能识别其他姿态的鸭嘴兽------单样本学习旨在赋予机器类似的泛化能力。
2.2 解决的核心问题
当面临以下场景时,传统深度学习失效,需依赖单样本学习:
-
样本获取困难:医学影像、稀有物种识别等标注成本极高。
-
动态类别扩展:安防系统实时新增嫌疑人、电商平台每日上架新品。
-
小样本场景:冷启动推荐、个性化服务等缺乏用户历史数据。
2.3 技术实现原理
1. 核心思想:从"记忆"到"比对"
传统深度学习通过大量样本记忆特征,而单样本学习转向相似性度量:

2. 三大技术路线
(1) 基于度量学习(Metric Learning)
-
原理:学习一个嵌入空间,使同类样本距离近、异类样本距离远。
-
经典模型:
-
孪生网络(Siamese Network):输入:[样本A, 样本B] → 共享权重的CNN → 特征向量 → 距离计算(如L1)→ 相似度得分
-
三元组损失(Triplet Loss) :
Anchor - Positive
的距离 <Anchor - Negative
的距离 + 裕度(margin)
-
-
优势:简单高效,适合细粒度分类。
(2) 基于元学习(Meta-Learning)
-
原理:训练模型掌握"如何学习新任务"的能力。
-
代表方法:
-
MAML(Model-Agnostic Meta-Learning) :
在多个任务上预训练,找到一组快速适应新任务的初始参数。
-

-
-
Prototypical Networks :
计算类别原型中心(单个样本的特征均值),新样本按欧氏距离归类。
-
(3) 基于数据增强与生成
-
原理:用单个样本生成虚拟样本扩充训练集。
-
技术:
-
对抗生成网络(GAN):生成同类样本变体(如不同角度的同一人脸)。
-
特征空间变换:对样本特征施加旋转、裁剪等模拟变换。
-
2.4 关键模型对比
模型 | 核心机制 | 适用场景 | 准确率*(Omniglot) |
---|---|---|---|
Siamese Network | 相似度对比 | 图像验证、人脸识别 | 92.3% |
MAML | 元优化初始参数 | 多任务快速适应 | 95.7% |
Prototypical Nets | 类别原型匹配 | 分类任务 | 98.8% |
Matching Networks | 注意力加权匹配 | 复杂模式识别 | 93.5% |
*注:Omniglot(1623类手写字符)是单样本学习基准数据集,5-way 1-shot任务准确率
2.5 应用场景
1. 计算机视觉
-
人脸识别:通过1张证件照识别监控中的人脸(如公安系统)。
-
工业质检:仅需1个缺陷样本检测同类缺陷。
-
生物识别:保护动物追踪(如通过单张雪豹照片识别个体)。
2. 自然语言处理
-
个性化对话:用户提供1条偏好示例(如"用诗词风格回复"),模型即时适配。
-
冷启动推荐:新用户仅表达1次喜好(如点击某商品),生成推荐列表。
3. 医疗诊断
- 罕见病识别:仅1例标注的医学影像辅助诊断(如新发传染病)。
2.6 核心挑战与解决方案
挑战 | 原因 | 解决方案 |
---|---|---|
特征泛化性差 | 单样本无法覆盖类内多样性 | 生成式数据增强(如StyleGAN) |
类别混淆 | 相似类别在嵌入空间重叠 | 混合监督训练(结合已见类别数据) |
领域敏感 | 训练/测试数据分布差异大 | 领域自适应(如DANN) |
计算成本高 | 元学习需多轮任务训练 | 轻量化模型(如MobileNet主干) |
2.7 前沿进展(2023-2024)
-
大模型赋能单样本学习:
-
CLIP + 提示工程:用文本描述增强单样本信息(如:"这是一只长尾猴,尾巴占身长150%")。
-
视觉提示(Visual Prompting):在预训练模型上添加可学习参数适配新样本。
-
-
神经图灵机(NTM):外部记忆存储支持样本,实现类比推理(如DeepMind的MERLIN模型)。
-
自监督预训练增强:SimCLR、MoCo等对比学习模型提供强特征提取器。
2.8 总结
单样本学习的本质是"以一推万"的泛化艺术,其技术演进分为三阶段:
-
度量学习时代(2015-2018):孪生网络、三元组损失解决简单比对。
-
元学习革命(2018-2021):MAML、Prototypical Nets实现"学会学习"。
-
大模型融合期(2022-):CLIP/LLM提供通用先验知识,突破信息瓶颈。
核心价值 :在高价值低数据场景(安防、医疗、定制化服务)中,单样本学习是唯一可行的技术路径。随着多模态大模型的普及,其性能边界正逼近少样本学习,成为实用化AI的关键支柱。

三、Few-Shot(少样本学习)
3.1 概念
Few-Shot Learning 是机器学习 (特别是深度学习 )的一个子领域,其目标是训练模型,使其能够在仅使用非常少量的标注示例 (通常每个类别只有几个,甚至只有一个)的情况下,有效地学习和泛化到新的、未见过的任务或类别。
-
核心挑战: 克服传统深度学习模型对海量标注数据的依赖。在数据稀缺或获取成本高昂的场景下,Few-Shot Learning 至关重要。
-
核心思想: 模型并非从零开始学习新任务,而是利用在大量相关任务或数据上预先学习到的"知识"或"先验",快速适应到只有少数样本的新任务上。这模拟了人类快速学习新概念的能力(例如,给你看一张"鸭嘴兽"的照片,你就能认出其他鸭嘴兽)。
3.2 为什么需要 Few-Shot Learning?
-
数据获取困难或昂贵: 在许多实际应用中(如医疗影像分析、罕见事件检测、小语种处理、个性化推荐),获取大量高质量标注数据极其困难、耗时或昂贵。
-
快速适应新任务: 在动态环境中,需要模型能够快速学习识别新出现的类别或概念(如社交媒体上的新趋势、制造业中的新缺陷类型),而无需重新收集海量数据并从头训练。
-
资源限制: 标注数据需要人力物力,Few-Shot Learning 可以显著降低部署AI解决方案的门槛。
-
处理长尾分布: 现实世界的数据往往呈现长尾分布,即少数类别有大量样本,而大量类别只有极少样本。Few-Shot Learning 是解决长尾问题尾部类别识别的重要手段。
3.3 关键设定与术语
-
N-Way K-Shot:
-
N-Way: 指在目标任务中需要区分的类别总数(N个类别)。
-
K-Shot: 指在目标任务中,模型可用于学习每个类别的标注样本数量(K个样本)。
-
示例:
5-Way 1-Shot
表示模型需要在5个类别中进行区分,并且每个类别只提供1个标注样本供学习。5-Way 5-Shot
则表示每个类别提供5个样本。
-
-
Support Set(支撑集):
-
提供给模型用于学习新任务的少量标注样本集合。
-
在
N-Way K-Shot
设定下,Support Set 包含 N * K 个样本(每个类 K 个)。
-
-
**Query Set(查询集):**需要模型进行预测的、来自新类别的未标注样本集合。模型需要利用 Support Set 学到的知识来预测 Query Set 的标签。
-
Episode(情节)训练:
-
元学习(Meta-Learning)中常用的训练方式。每个训练"情节"都模拟一个小的
N-Way K-Shot
任务:-
从训练数据中随机抽取 N 个类别。
-
从这 N 个类别中,为每个类别随机抽取 K 个样本组成 Support Set,再抽取若干样本组成 Query Set。
-
模型在这个模拟的小任务上进行学习和优化。
-
-
通过大量这样的"情节"训练,模型学会如何快速从少量样本中学习。
-
-
与相关概念的对比:
-
Zero-Shot Learning: 新类别完全没有标注样本可供学习,模型只能依赖类别的语义描述(如属性、文本描述)或与其他类别的关联进行推理。
-
One-Shot Learning: 是 Few-Shot Learning 的一个特例,其中 K=1(每个新类别只提供1个样本)。
-
Transfer Learning(迁移学习): 在源任务上预训练模型,然后在目标任务(通常数据量相对较多)上微调。Few-Shot Learning 可以看作是一种极端情况下的迁移学习,目标任务的数据量极少(K很小),因此需要更精巧的设计来利用源知识并防止过拟合。
-
Meta-Learning(元学习/学会学习): 一种实现 Few-Shot Learning 的强大框架,其目标是训练模型"学会如何学习",使其在遇到新任务时能快速适应。模型学习的是跨任务的通用学习策略或算法。
-
3.4 Few-Shot Learning 的主要方法
实现 Few-Shot Learning 有多种策略,以下是几种主流方向:
-
基于度量学习:
-
核心思想: 学习一个嵌入空间 和一个距离度量函数 。在这个空间中,同一类别的样本彼此靠近,不同类别的样本彼此远离。预测时,将 Query 样本映射到该空间,计算它与 Support Set 中所有样本的距离,然后分配给距离最近(或最相似)的 Support 样本所属的类别。
-
代表性模型:
-
Siamese Networks(孪生网络): 学习一个共享权重的孪生网络,输入两个样本,输出它们之间的相似度分数。预测时,将 Query 样本与每个 Support 样本配对输入网络,选择相似度最高的 Support 样本的类别。
-
Matching Networks(匹配网络): 使用注意力机制,让 Query 样本根据与 Support 样本的相似度来"加权查看"整个 Support Set,从而进行分类。
-
Prototypical Networks(原型网络): 对每个类别,计算其 Support Set 样本在嵌入空间中的均值向量(原型)。预测时,计算 Query 样本到每个类别原型的距离(如欧氏距离),选择最近的类别。
-
Relation Networks(关系网络): 学习一个关系模块,输入两个样本的嵌入向量,输出它们之间的关系得分(0-1之间)。预测时,计算 Query 样本与每个 Support 样本(或原型)的关系得分,然后聚合(如求和、平均)得到 Query 样本属于每个类别的得分。
-
-
-
基于元学习:
-
核心思想: 在大量相似的
N-Way K-Shot
任务上训练一个元学习器。元学习器的目标是学会如何根据 Support Set 快速更新模型参数(或初始化一个良好的起点),使其在 Query Set 上表现良好。 -
代表性模型:
-
MAML(Model-Agnostic Meta-Learning): 最著名的方法之一。它学习一组模型参数的初始化值。对于新任务,从这个初始化点出发,使用该任务的 Support Set 进行少量几步梯度下降更新(微调),就能在该任务的 Query Set 上取得好效果。核心是优化初始化值,使得在这个初始化点上进行少量更新就能快速适应新任务。
-
Reptile: MAML 的简化版,也学习一个好的参数初始化,但更新规则更简单高效。
-
Meta-SGD / Meta-Net: 学习如何调整优化过程本身,如学习率、更新方向等。
-
Memory-Augmented Neural Networks: 引入外部记忆模块(如 Neural Turing Machine, Memory Networks),在训练过程中存储和检索任务相关信息,用于快速适应新任务。
-
-
-
基于数据增强:
-
核心思想: 在有限的 Support Set 样本上应用各种变换(如旋转、裁剪、颜色抖动、添加噪声等),人工生成更多样化的样本,增加数据量,缓解过拟合。虽然简单,但在图像领域常作为其他方法的补充。
-
高级方法: 利用生成对抗网络或变分自编码器学习数据的分布,然后生成符合该分布的新样本。
-
-
基于迁移学习 + 微调:
-
核心思想: 在大型数据集(如 ImageNet, Wikipedia)上预训练一个强大的基础模型(Backbone),学习通用的特征表示能力。当遇到只有少量样本的新任务时:
-
将基础模型的特征提取器冻结(或仅微调最后几层)。
-
在 Support Set 上训练一个简单的分类器(如线性分类器、最近邻分类器)。
-
-
优势: 简单易行,利用了大模型强大的表征能力。
-
挑战: 如果 Support Set 太小,微调仍然容易过拟合;基础模型学到的特征如果与新任务域差异太大,效果会下降。
-
-
基于提示学习:
-
核心思想(尤其在 NLP 中): 利用大型预训练语言模型(如 GPT-3, BERT)本身蕴含的丰富知识。通过设计合适的提示 ,将 Few-Shot 任务"包装"成模型在预训练时见过的形式(如完形填空、文本生成),激发模型利用内部知识完成新任务,而几乎不更新或只更新极少量参数。
-
示例: 对于情感分类任务(Positive/Negative),提供提示:"这句话 '
[输入句子]
' 的情感是[MASK]
。" 然后在 Support Set 上给出几个示例(如 "这部电影很棒。
情感是 积极"),模型学习根据上下文填充[MASK]
为 "积极" 或 "消极"。
-
3.5 应用领域
Few-Shot Learning 在许多领域都有广泛应用:
-
计算机视觉:
-
图像分类(识别稀有物体、新物种)。
-
目标检测与分割(检测新出现的物体类别)。
-
人脸识别与验证(识别新加入的人)。
-
图像生成与编辑(根据少量示例生成特定风格或对象的图像)。
-
-
自然语言处理:
-
意图识别与槽位填充(理解用户新提出的请求或新领域的指令)。
-
文本分类(对新闻、评论进行细粒度分类,尤其是新增类别)。
-
机器翻译(快速适应新语种或特定领域的翻译)。
-
问答系统(回答关于新主题或新文档的问题)。
-
命名实体识别(识别新类型的实体)。
-
-
语音识别: 适应新口音或新词。
-
医疗健康: 医学影像分析(诊断罕见病、识别新病灶),药物发现。
-
工业检测: 识别新的产品缺陷类型。
-
推荐系统: 快速适应新用户(冷启动)或新物品。
-
机器人学: 让机器人快速学习新技能或适应新环境。
3.6 挑战与未来方向
-
域差异: 如果预训练/元训练的数据域(Domain)与目标任务的数据域差异很大,模型学到的"先验"知识可能不适用,性能会显著下降。
-
任务多样性: 如何让模型能够适应差异极大的各种新任务(如从图像分类跳到机器翻译)。
-
可解释性: Few-Shot 模型做出的决策有时难以解释,尤其是在复杂模型中。
-
理论理解: 对 Few-Shot Learning 为何有效以及其泛化能力的理论基础仍需深入研究。
-
结合大模型: 如何更有效地利用日益强大的基础模型(LLMs, LVMs)来实现更通用、更强大的 Few-Shot Learning。
-
多模态 Few-Shot Learning: 利用来自不同模态(文本、图像、音频等)的少量信息进行学习。
-
无监督/自监督 Few-Shot Learning: 减少对标注 Support Set 的依赖,利用未标注数据进行 Few-Shot 学习。
3.7 总结
Few-Shot Learning 是解决机器学习模型在数据稀缺场景 下学习和泛化问题的关键技术。它通过迁移知识 、学习通用表示 或优化学习过程本身,使得模型能够像人类一样,仅凭少数几个例子就能理解和适应新的概念或任务。随着基础模型能力的不断提升和新算法的涌现,Few-Shot Learning 将在推动人工智能更广泛、更灵活地应用于现实世界方面发挥越来越重要的作用。