零样本学习 Zero-Shot:语义嵌入驱动的未知类别识别

FreeGuideOnline 最新 2026-06-13

零样本学习 Zero-Shot:语义嵌入驱动的未知类别识别

你是否遇到过这样的情况:想让模型识别一种从未在训练数据中出现过的动物,比如“斑驴”,但训练时你只给过它马、斑马、老虎的图片。零样本学习(Zero-Shot Learning, ZSL)正是为了解决这个问题而生——它让模型能够“举一反三”,通过已有知识推断出全新类别的特征,从而在没有看过任何该类别样本的情况下完成识别。

本教程将带你从零理解零样本学习的核心思想、主流方法与应用场景,即使你只有基础的机器学习概念也能轻松跟上。


为什么需要零样本学习?

传统监督学习依赖大量标注样本,对于长尾类别(样本极少的类别)或动态新增类别(如新物种、新产品款式)往往无能为力。而现实世界中,新概念不断涌现,为每一个类别都收集充足训练数据代价高昂。

零样本学习的价值在于:

  • 无需重新训练:模型训练完毕后可以直接识别见所未见的类别。
  • 低成本扩展:只需提供新类别的语义描述(如一段文字或一组属性),即可扩展识别能力。
  • 模拟人类推理:人类可以通过“像马但有条纹”的描述想象出斑马,ZSL 正是让机器掌握类似能力。

零样本学习是如何工作的?

核心思想:共享的语义空间

零样本学习的关键是建立一个语义嵌入空间,该空间将视觉特征类别语义描述(如属性、词向量)映射到同一个可比较的表示中。模型学习的是“视觉特征 ↔ 语义表示”的映射关系,而不是直接记住某个类别长什么样。

测试时,面对未见过的类别图片,模型提取其视觉特征,然后在语义空间中寻找最匹配的语义描述,从而完成分类。

核心组件

  1. 视觉特征提取器:通常使用预训练的卷积神经网络(如 ResNet)将图像转换成固定长度的特征向量。
  2. 语义嵌入(Semantic Embeddings):将类别名称或描述转换为向量,常见形式包括:
    • 属性向量:人工定义的属性(如“有条纹”“有角”),每个类别用多维二值或连续值表示。
    • 词向量:利用 Word2Vec、GloVe 等语言模型将类别名称转换为分布式语义表示。
    • 文本描述嵌入:用句子编码器(如 Sentence-BERT)将类别的一段文字描述转化为向量。
  3. 对齐模型(投影函数):将视觉特征映射到语义空间的函数,通常是一个线性变换或小型神经网络。训练时通过已见类别学习该映射,使得同类别的视觉投影与语义向量尽可能接近。

主流方法分类

1. 基于属性预测的方法

早期代表性方法。先训练属性分类器,让模型学会从图像预测一组属性(如“毛茸茸的”“黑色的”“四条腿”)。推理时,将预测的属性向量与未见类别的预定义属性向量进行比较(如余弦相似度),最相似的即为预测类别。

  • 优点:可解释性强。
  • 缺点:属性设计依赖专家知识,且难以覆盖细粒度差异。

2. 基于语义嵌入对齐的方法

直接学习从视觉特征到语义空间的映射函数 f: X → S。训练时最小化映射后的视觉向量 f(x) 与真实类别语义向量 s_y 的距离。损失函数通常采用排序损失或交叉熵损失。

  • 经典模型:DeViSE 使用 dot-product + 排序损失;ALE 使用排序 SVM。
  • 扩展:加入正则化防止映射退化,或使用双向映射保持结构一致性。

3. 基于生成模型的方法

近年来性能最强的范式。利用生成对抗网络(GAN)或变分自编码器(VAE)为未见类别合成视觉特征。训练时,生成器根据类别的语义向量和随机噪声“凭空”创造出该类别的虚拟视觉特征,判别器分辨真假。如此一来,零样本学习转化成了普通的监督学习——用生成的假特征训练一个分类器,直接区分未见类别。

  • 代表模型:f-CLSWGAN、LisGAN、TF-VAEGAN。
  • 优点:避免了“投影域偏移”问题,性能大幅提升。
  • 缺点:生成样本质量影响识别率,训练较不稳定。

4. 广义零样本学习(GZSL)

在真实场景中,测试样本可能同时来自已见类别未见类别,单纯 ZSL 模型往往严重偏执于已见类别。广义零样本学习要求模型能同时处理好两者,常用技巧有:

  • 校准已见类别得分,抑制偏向。
  • 将已见和未见类别的语义向量联合训练一个兼容性函数。

训练与推理流程示例

假设要构建一个零样本动物分类系统,已见类别有“猫、狗、马、老虎”,未见类别是“斑马、狼”。

训练阶段(仅用已见类别):

  1. 为每个已见类别准备语义向量,例如用属性向量:[有蹄, 食肉, 有条纹, 群居, 毛发…],猫 → [0,1,0,0,1…]。
  2. 用已见类别图像训练对齐模型:输入图片 → CNN 视觉特征 → 线性投影 → 投影向量,与对应类别的语义向量计算损失,让两者靠近。
  3. 训练完成后,投影函数固定。

推理阶段(出现斑马图片):

  1. 提取斑马图片的视觉特征,经投影得到向量 v_proj
  2. 加载所有候选类别的语义向量,包括已见的和未见的。
  3. 计算 v_proj 与每个候选语义向量的相似度(如余弦距离),取相似度最高的类别作为预测结果。如果斑马的语义向量与投影向量最相似,模型便正确识别出“斑马”。

应用场景

领域 具体应用
图像分类 识别稀有物种、细粒度商品款式、新出现物体类别
目标检测 在图像中定位并识别训练时未见过的物体(Zero-Shot Detection)
文本分类 根据类别描述的语义对未见过的主题进行分类
视频动作识别 推理未见过的人体动作(如新运动姿态)
跨模态检索 用文本描述搜索从未标注过的图像类别
医学图像分析 识别罕见病病灶,训练样本极少时仍可辅助诊断

挑战与局限

  • 领域漂移(Domain Shift):已见类别的视觉数据分布与未见类别可能存在系统性差异,导致投影函数在未见类上表现差。这也是生成模型方法被提出的主要原因。
  • 语义表示的覆盖面:词向量可能无法展现细粒度视觉差异(如不同品种狗的区分),属性设计则依赖领域知识。
  • 枢纽度问题(Hubness):在高维语义空间中,某些向量会成为许多投影点的“近邻”,导致错误预置,常通过倒角距离或归一化缓解。
  • 数据偏见:若训练数据中已见类别的某些外观模式占据了映射的主导,会损伤对未见类的泛化能力。

未来趋势

  • 大规模预训练模型 + ZSL:利用 CLIP 这类对比语言-图像预训练模型,直接将图像和文本对齐,零样本能力得到极大提升,甚至无需专门训练属性映射。
  • 少样本与零样本的结合:当有极少几张未见类别样本时,用零样本架构迁移知识并微调。
  • 可解释的语义嵌入:结合知识图谱构建更语义丰富的类别表示,提升推理透明度。
  • 多模态泛化:融合文本、图像、语音甚至触觉信号,构建更通用的零样本学习框架。

小结

零样本学习打破了“见过才能识”的局限,让机器拥有了类比推理的能力。其核心在于利用语义嵌入作为桥梁,将已知类别的视觉知识迁移到未知类别上。从早期的属性预测到如今的生成式方法和超大规模跨模态模型,ZSL 正变得越来越实用。理解了这一范式,你便掌握了处理开放世界识别任务的一把钥匙。

如果你想亲自实践,建议从经典的 DeViSE 或基于 CLIP 的零样本分类开始,它们均提供了易于上手的开源实现。