1. Introduction
- 本文提出了一种可以用于few-shot learning 的原型网络(prototypical networks),该网络能识别出在训练过程中从未见过的新类别,并且对于每个类别只需要很少的样例数据。
2. Methods
(1) Notation
在few-shot分类任务中,$S=\left{\left(\mathbf{x}{1}, y{1}\right), \dots,\left(\mathbf{x}{N}, y{N}\right)\right}$为一组小规模的N标签的训练数据集
x是D维的原始数据的向量化表示,y为其对应的类别,$S_k$代表类别为k的数据集合
(2) Few-shot learning
Train
-
原型网络通过一个embedding函数$ f_{\phi}: \mathbb{R}^{D} \rightarrow \mathbb{R}^{M}$,将每个类别中D维的样例数据映射到一个M维度量空间(metric space)中。
-
类别的原型Prototype通过对训练集中所有的向量化样例数据取均值得到:
- 使用欧几里得距离作为距离度量,训练过程是通过随机梯度下降法最小化目标函数:
Test
- 在测试时,原型网络使用softmax作用在embedding后的测试向量点$f_\phi(x)$到$c_k$的距离
- 分类问题转化为在embedding空间中的最近邻,即将测试样本embedding后,与三个原型进行距离计算,并经过softmax得到$p_{\phi}(y=k \mid x )$,即测试样本的类别概率:
(3) Zero-shot learning
-
零样本学习不同于少样本学习,其meta-data向量$v_k$不是由训练集中的样本生成的,而是根据每个类的属性描述、原始数据等学习得到的。
\[\mathbf{c}_{k}=g_{\vartheta}\left(\mathbf{v}_{k}\right)\]
通过embedding zero-shot中的meta-data,即$v_k$(对类别特点的描述性内容等)来获得类别的embedding向量$c_k$作为原型的另一种形式,之后步骤与few-shot learning类似。