问题设定
训练阶段:
- 已知条件:训练样本\(x_{i} \in X=\{x_{i} | i=1, \cdots, N\}\),他所对应的标签\(y_{i} \in Y=\{y_{i} | i=1, \cdots, C\}\),所有类别的side information (SI) \(S = \{s_{c} | c=1, \cdots, C\}\), 值得注意的是,根据我的理解,SI和类别应该是一一对应的。
- 前传过程
- \(x_{i} \to D^{x} \to f_{i}\): 样本进入样本嵌入模型,输出样本的嵌入
- \(S \to D^{s} \to F^{s}\): SI进入SI嵌入模型,输出SI的嵌入
- 计算损失
- 计算score: score=\((f_{i})^{T} W F^{s} \in \mathbb{R} ^{C \times 1}\), \(W\)可能是需要训练的,也可以是对角矩阵计算欧式距离
- 根据score、标签、损失函数的形式计算损失
- output: D^{x}, D^{s}, W
测试阶段
- 已知条件: 测试样本\(\hat{x}_{i}\), 以及所有目标类别的SI \(\hat{S} = \{\hat{s}_{c} | c=1, \cdots, \hat{C}\}\)
- 前传:和训练过程一模一样
- 得到类别:计算score(同上),score最大对应的类别为预测标签\(Y^{p}\)
评估阶段
- 已知条件:测试样本的预测标签\(Y^{p}\),测试样本的真实标签\(\hat{Y}\),评价指标函数\(M(\cdot, \cdot)\)
- 计算评价指标\(M(Y^{p}, \hat{Y})\)
区分ZSL 和 Generalized ZSL (GZSL)
给定训练集 \(T = (x \in X, y \in Y)\), 测试集 \(E = (\hat{x} \in \hat{X}, \hat{y} \in \hat{Y})\)
- ZSL: $Y \cap \hat{Y} = \emptyset $
- GZSL: $Y \subset \hat{Y} $, testing instance could belong to either seen or unseen categories
基础的开源项目
一些好的综述 (读过)
- Recent Advances in Zero-Shot Recognition
- Zero-Shot Learning—A Comprehensive Evaluation of the Good, the Bad and the Ugly
- Knowledge-aware Zero-Shot Learning: Survey and Perspective