前言
本文提出了用于few-shot learning的原型网络(prototypical network),它的基本思想是,在一个embedding空间中,每个类都有一个原型表示(prototypical representation),每个类的点都聚集在这个原型表示周围。具体来说就是,通过一个非线性映射将输入映射到一个embedding空间中,提取每个类别中样本的均值(mean)作为该类在embedding空间中的原型(prototype),那么对于一个embedded point来说,分类就是找到离它最近的类原型。使用属于Bregman divergence的欧几里得距离作为度量距离,在训练时,让测试样本到自己所属的类的原型的距离越近越好,到其它的类原型越远越好;测试时,对测试样本到各个类原型的距离做softmax,预测测试样本的类别标签。
原型网络
在few-shot分类中,给定一个支持集 S S S,其中有 N N N个带标签的样本,即 S = { ( x 1 , y 1 ) , . . . , ( x N , y N ) } S=\lbrace(x_1,y_1),...,(x_N,y_N) \rbrace S={ (x1,y1),...,(xN,yN)},每个 x i ∈ R D x_i \in \Bbb R^D xi∈RD是一个样本的 D D D维的特征向量, y i ∈ { 1 , . . . , K } y_i \in \lbrace 1,...,K \rbrace yi∈{ 1,...,K}是其对应的类别标签, S k S_k Sk表示类别为 k k k的支持集。
原型网络通过一个嵌入函数 f ϕ : R D → R M f_{\phi}: \Bbb R^D \to \Bbb R^M fϕ