一、零样本学习(Zero-Shot Learning, ZSL)概念总览
**零样本学习(ZSL)**指的是:
在训练阶段从未见过目标类别的样本的情况下,模型仍能对这些类别进行正确识别。
实现手段通常依赖:
-
语义侧信息:
- 属性向量(Attributes)
- 文本描述
- 词嵌入(word2vec, GloVe)
- CLIP 类图文嵌入
-
对齐机制:
- 将视觉特征映射到语义空间
- 或将语义嵌入映射到视觉空间
- 或联合嵌入(vision--language joint embedding)
二、狭义零样本学习(Conventional ZSL)
1. 定义
狭义零样本(Conventional ZSL)是最早、最理想化的一种ZSL设定:
测试阶段仅包含"未见类(Unseen Classes)"样本。
即:
text
训练集 = Seen Classes
测试集 = Unseen Classes
模型完全不用考虑对已见类的判断偏置问题。
2. 数学表述
-
训练类别集合:
\\mathcal{Y}_s = {y_1, y_2, ..., y_S}
-
测试类别集合:
\\mathcal{Y}*u = {y* {S+1}, ..., y_{S+U}}, \\quad \\mathcal{Y}_s \\cap \\mathcal{Y}_u = \\emptyset
-
测试标签预测范围仅限:
\\hat y \\in \\mathcal{Y}_u
3. 特点
✅ 优点
- 评估简单
- 无类别间严重偏置
- 易于展示模型的"语义迁移能力"
❌ 局限
- 严重不符合真实应用
现实中:
模型既要面对见过类,也要面对没见过类。
4. 农业场景举例
假设你训练模型仅见过:
text
Seen: 稻瘟病、稻曲病、白叶枯病
测试时只让模型识别:
text
Unseen: 稻条纹叶枯病、纹枯病
👉 这就是狭义ZSL。
模型不会需要判断输入是不是"老病害"还是"新病害",因此任务容易很多。
三、广义零样本学习(Generalized ZSL, GZSL)
1. 定义
**广义零样本(GZSL)**是现实世界的零样本版本:
测试阶段同时包含 Seen 类和 Unseen 类样本。
即:
text
训练集 = Seen Classes
测试集 = Seen ∪ Unseen
并且:
\\hat y \\in \\mathcal{Y}_s \\cup \\mathcal{Y}_u
2. 核心难点:Bias Problem(类别偏置)
在普通训练下:
模型对 Seen 类天然更熟悉 ,
因而会严重偏向预测 Seen 类。
典型现象:
- Unseen 类准确率很低
- 几乎所有样本都会被强行判为 Seen 类
3. GZSL 为什么更难?
本质难度
GZSL = 同时解决:
- 语义迁移(Seen → Unseen)
- 分布偏置校正
- 开放集感知(novelty detection)
4. 农业场景举例
部署无人机病害识别系统时,模型面临:
text
输入样本 = 老病害 + 新病害混合
模型必须:
✅ 既能正确识别:稻瘟病
✅ 还能识别:从未训练过的稻条纹叶枯病
实际应用中 你们做的 SCLOD + MoE + CLIP 微调 基本都是 GZSL 场景。
四、H-Mean 评价指标
1. 为什么要 H-Mean?
因为在 GZSL 中:
- seen 类准确率 ( Acc_s ) 通常很高
- unseen 类准确率 ( Acc_u ) 通常很低
如果只看总体准确率:
Acc = \\frac{N_{correct}}{N_{total}}
👉 会被 seen 类"掩盖",对 unseen 完全不敏感。
2. H-Mean 定义
**H-Mean(调和平均)**专门用于平衡 seen / unseen 性能:
\\boxed{ H = \\frac{2 \\cdot Acc_s \\cdot Acc_u}{Acc_s + Acc_u} }
3. 指标性质
✅ 平衡敏感
任何一方准确率趋近 0,整体得分即趋近 0:
text
Acc_s = 90%
Acc_u = 5% → H ≈ 9.5%
逼迫模型必须兼顾两类。
✅ 比算术均值更严格
算数均值:
M = \\frac{Acc_s + Acc_u}{2}
无法严厉惩罚极端失衡。
H-Mean 能有效揭示:
模型是否真正实现了 "Seen 与 Unseen 双均衡"。
4. 使用方式
在 GZSL 实验中,通常汇报:
text
Acc_s (Seen Accuracy)
Acc_u (Unseen Accuracy)
H-Mean
三项同时汇报,缺一不可。
五、三者关系速查表
| 项目 | 狭义 ZSL | 广义 GZSL |
|---|---|---|
| 测试类别 | 只有 Unseen | Seen + Unseen |
| 是否存在偏置问题 | ❌ 否 | ✅ 严重 |
| 实验难度 | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| 现实适用性 | ❌ 较弱 | ✅ 极强 |
| 是否需要 H-Mean | ❌ 不需要 | ✅ 必须 |
| 指标 | 适用范围 | 作用 |
|---|---|---|
| Acc_u | ZSL + GZSL | 测 unseen 类能力 |
| Acc_s | GZSL | 测已知类记忆能力 |
| H-Mean | GZSL 专用 | 综合平衡度评价 |
六、与你当前研究的关联
你目前在做:
- 病害零样本识别(SCLOD + MoE / CLIP)
- 多病害、多作物、跨域泛化
几乎全部属于 GZSL 的研究范式。
评估时:
✅ 你一定要使用:
Acc_s, Acc_u, H-Mean
❌ 只报单一准确率 = 论文不规范
七、论文可用标准表述模板
你可以直接用下面这一小段话写论文:
狭义零样本学习(Conventional ZSL)是指在测试阶段仅包含未见类别样本的识别任务设置,而广义零样本学习(Generalized ZSL, GZSL)则更贴合真实应用场景,其测试阶段同时包含已见类与未见类样本。由于模型在训练阶段仅见过已知类别,往往对 seen 类产生明显偏置,因此需分别评估两类识别准确率,并采用调和平均指标(H-Mean)对模型在 seen / unseen 类之间的综合平衡性能进行度量,其定义为:
H = \\frac{2 \\cdot Acc_s \\cdot Acc_u}{Acc_s + Acc_u}.